Jagernot
Livecoding with din
din has a Tcl / Tk interpreter for livecoding sound and GUI. Tcl/Tk is a convenient choice for livecoding in din because both din and Tcl/Tk commands have the form:
command_name arg1 arg2 ... argN
You can mix din commands with Tcl/Tk commands, take advantage of powerful dynamic programming features of Tcl, GUI widgets of Tk but most important of all code while din is running.
an example:
# code snippets we will execute to change different sound parameters in 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 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. } # change FM bpm and gater L and R bpm. set code $code1 .s configure -from 0 -to 240 -command {slide $code} # 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