#N canvas 0 0 618 425 10; #X text 14 13 Extending PureData with Haskell; #X text 14 26 AngloHaskell 2007 Presentation; #X text 14 39 Claude Heiland-Allen ; #X text 14 69 02: Patcher Programming; #X text 14 99 A Pd ``patch'' starts as an empty canvas.; #X text 14 119 Then you add some ``objects'' \, and connect them together. ; #X obj 26 141 bng 15 250 50 0 empty empty empty 17 7 0 10 -24198 -1 -1; #X obj 78 273 t f f; #X obj 131 259 - 1; #X obj 26 162 t b b; #X obj 78 248 float; #X msg 108 190 10; #X obj 26 224 metro 1000; #X msg 26 200 1; #X obj 78 304 select 0; #X obj 108 366 bng 15 500 50 0 empty empty empty 17 7 0 10 -258699 -1 -1; #X obj 78 327 t b b; #X obj 129 339 nbx 3 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 -260818 -1 -1 1 256; #X msg 78 391 0; #X text 187 341 <-- see the countdown in progress; #X text 145 367 <-------- the countdown stops with a bang; #X text 118 394 <------------ finally stop the metronome object; #X text 153 305 <------- any unmatched messages are output to the right ; #X text 161 259 <------ a counter that counts down by one each ``bang'' ; #X text 141 191 <--------- initial value for the counter; #X text 126 222 <----------- metronome \, outputs a ``bang'' once every 1000ms; #X text 107 162 <-------------- the ``trigger'' object outputs right to left; #X text 72 140 <------------------- start the countdown with a ``bang'' ; #X connect 6 0 9 0; #X connect 7 0 14 0; #X connect 7 1 8 0; #X connect 8 0 10 1; #X connect 9 0 13 0; #X connect 9 1 11 0; #X connect 10 0 7 0; #X connect 11 0 10 1; #X connect 12 0 10 0; #X connect 13 0 12 0; #X connect 14 0 16 0; #X connect 14 1 17 0; #X connect 16 0 18 0; #X connect 16 1 15 0; #X connect 18 0 12 0;