1# 2# Controls via sliders for csound in tcl/tk 3# John ffitch 2000 May 14 4# Modified for stdin/out use May 21 5# 2001 January: added text boxes 6# 7 8# Create a new slider 9proc displayslider num { 10 global lastsl 11 set sl ".s$num" 12 set ex [winfo exists $sl] 13 if {$ex == 0} { 14 scale $sl -label Control$num -from 0 -to 127 -orient horizontal -length 10c -command "newval $num" 15 pack $sl -after $lastsl 16 set lastsl $sl 17 } 18} 19 20proc newval {num val} { 21 puts "$num $val" 22} 23 24# Output controls 25 26proc setvalue {which val} { 27 set sl ".s$which" 28 displayslider $which 29 $sl set $val 30} 31 32proc setmin {which val} { 33 set sl ".s$which" 34 displayslider $which 35 $sl configure -from $val 36} 37 38proc setmax {which val} { 39 set sl ".s$which" 40 displayslider $which 41 $sl configure -to $val 42} 43 44proc setlab {which val} { 45 set sl ".s$which" 46 displayslider $which 47 $sl configure -label $val 48} 49 50# AND NOW THE BUTTONS AND CHECKS 51 52# Create a new button 53proc displaybutton num { 54 global lastb 55 set bt ".b$num" 56 set ex [winfo exists $bt] 57 if {$ex == 0} { 58 button $bt -text Button$num -command "buttonpush $num" 59 pack $bt -pady 2m -after $lastb 60 set lastb $bt 61 } 62} 63 64proc buttonpush num { 65 puts "0 $num" 66} 67 68# Create a new check 69proc displaycheck num { 70 global xxx 71 set ch ".x$num" 72 set ex [winfo exists $ch] 73 if {$ex == 0} { 74 checkbutton $ch -text Check$num -variable xxx -command "checkpush $num" 75 pack $ch -pady 2m 76 } 77} 78 79proc checkpush num { 80 global xxx 81 puts "-$num $xxx" 82} 83 84proc settext {num txt} { 85 global lasttxt 86 set wl ".flashtxt$num" 87 set ex [winfo exists $wl] 88 if {$ex == 0} { 89 toplevel $wl 90 message $wl.msg -text $txt -width 10c -justify left -relief raised -bd 2 91 pack $wl.msg 92 } else { 93 $wl.msg configure -text $txt 94 } 95} 96 97proc deltext num { 98 set wl ".txt$num" 99 destroy $wl 100} 101 102# ending 103 104message .title -width 10c -justify center -font -*-times-bold-r-normal--*-180-*-*-*-*-*-* -text "Csound Controls" 105pack .title 106set lastsl .title 107message .title1 -width 10c -justify center -font -*-times-bold-r-normal--*-100-*-*-*-*-*-* -text " " 108pack .title1 109set lastb .title1 110#displayslider 1 111# # # Experimental 112# displayslider 2 113# displaybutton 1 114# displayslider 3 115# displaybutton 2 116# displaycheck 1 117# # # End 118 119puts "Ready" 120