Jagernot: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
Livecoding with [http://code.google.com/p/din din] | |||
din has an integrated Tcl/Tk interpreter for livecoding sound and gui. Tcl/Tk is a convenient choice for livecoding in din because din commands have the form: command_name ? | din has an integrated Tcl/Tk interpreter for livecoding sound and gui. Tcl/Tk is a convenient choice for livecoding in din because din commands have the form: *command_name* _?arg_ _?arg_ _?arg_ which is the same as a Tcl/Tk command. | ||
an example: | an example: | ||
Line 7: | Line 7: | ||
<pre> | <pre> | ||
set code1 {set_bpm fm $v; set_bpm gate-l $v; set_bpm gate-r $v} ;# | # some code snippets we will execute to change different sound parameters of din. | ||
set code2 {key $v} ;# changes the key of din. | |||
set code1 {set_bpm fm $v; set_bpm gate-l $v; set_bpm gate-r $v} ;# changes FM bpm and gater L and gater R bpm. | |||
set code2 {key $v} ;# changes the key of din. $v is value in Hz. | |||
set code3 {set_delay all feedback [expr $v/100.0]} ;# changes feedback of L and R delay lines | set code3 {set_delay all feedback [expr $v/100.0]} ;# changes feedback of L and R delay lines | ||
# set_bpm, key and set_delay are built-in din commands. | # set_bpm, key and set_delay are built-in din commands. | ||
# make a Tk based slider | |||
package require Tk; | |||
scale .s ;# slider is called scale in Tk. | |||
grid .s | |||
# slider will now show up in a window | |||
# slider handler | # slider handler | ||
proc slide {code v} { | proc slide {code v} { | ||
eval $code | eval $code ;# evaluate code snippet when you move the slider knob. | ||
} | } | ||
# lets change FM bpm and gater L and R bpm. | |||
set code $code1 | |||
.s configure -from 0 -to 240 -command {slide $code} | |||
# other possibilities | # other possibilities | ||
# | # change key of din | ||
set code $code2 | set code $code2 | ||
.s configure -from 261 -to [expr 4*261] ;# slider range from middle C to 2 octaves above middle-C | .s configure -from 261 -to [expr 4*261] ;# slider range from middle C to 2 octaves above middle-C | ||
# | # change feedback on all delays | ||
set code $code3 | set code $code3 | ||
.s configure -from 0 -to 100 ;# slider range from 0 to 100 | .s configure -from 0 -to 100 ;# slider range from 0 to 100 | ||
</pre> | </pre> |
Revision as of 18:07, 18 May 2010
Livecoding with din
din has an integrated Tcl/Tk interpreter for livecoding sound and gui. Tcl/Tk is a convenient choice for livecoding in din because din commands have the form: *command_name* _?arg_ _?arg_ _?arg_ which is the same as a Tcl/Tk command.
an example:
# some code snippets we will execute to change different sound parameters of din. set code1 {set_bpm fm $v; set_bpm gate-l $v; set_bpm gate-r $v} ;# changes FM bpm and gater L and gater R bpm. set code2 {key $v} ;# changes the key of din. $v is value in Hz. set code3 {set_delay all feedback [expr $v/100.0]} ;# changes feedback of L and R delay lines # set_bpm, key and set_delay are built-in din commands. # make a Tk based slider package require Tk; scale .s ;# slider is called scale in Tk. grid .s # slider will now show up in a window # slider handler proc slide {code v} { eval $code ;# evaluate code snippet when you move the slider knob. } # lets change FM bpm and gater L and R bpm. set code $code1 .s configure -from 0 -to 240 -command {slide $code} # other possibilities # change key of din set code $code2 .s configure -from 261 -to [expr 4*261] ;# slider range from middle C to 2 octaves above middle-C # change feedback on all delays set code $code3 .s configure -from 0 -to 100 ;# slider range from 0 to 100