#N canvas 183 59 806 642 10; #X text 20 14 Karplus-Strong plucked-string synthesis; #X text 48 34 three components:; #X text 81 54 1 noise generator to load delay line; #X text 82 72 2 delay line with feedback (= recirculating wavetable) ; #X text 81 90 3 filter (= averaging); #X obj 75 229 noise~; #X obj 130 229 line~; #X msg 130 203 1 1; #X msg 162 203 0 1; #X obj 162 180 delay 8; #X obj 130 157 trigger bang bang; #X msg 130 133 bang; #X text 171 132 excite system with noise; #X text 224 180 wait before switching off noise; #X obj 75 255 *~; #X text 105 255 actual on/off switching; #X obj 75 336 delwrite~ karplus-strong 1000; #X obj 76 396 delread~ karplus-strong 10; #X floatatom 76 371 5 0 0; #X text 125 371 change delay length = pitch shift; #X obj 143 471 *~; #X floatatom 159 448 5 0 0; #X text 206 449 feedback coefficient = decay time; #X obj 76 421 biquad~ 0 0 0.5 0.5 0; #X obj 143 495 throw~ feedback; #X obj 116 284 catch~ feedback; #X obj 75 310 +~; #X text 261 495 feedback input; #X text 230 284 feedback output; #X text 234 420 biquad filter = lowpass = averaging; #X text 287 336 delay input; #X text 270 397 delay output; #X text 4 228 noise gen; #X obj 76 555 *~; #X floatatom 92 530 5 0 0; #X text 141 529 output volume control; #X obj 76 588 dac~; #X connect 5 0 14 0; #X connect 6 0 14 1; #X connect 7 0 6 0; #X connect 8 0 6 0; #X connect 9 0 8 0; #X connect 10 0 7 0; #X connect 10 1 9 0; #X connect 11 0 10 0; #X connect 14 0 26 0; #X connect 17 0 23 0; #X connect 18 0 17 0; #X connect 20 0 24 0; #X connect 21 0 20 1; #X connect 23 0 20 0; #X connect 23 0 33 0; #X connect 25 0 26 1; #X connect 26 0 16 0; #X connect 33 0 36 0; #X connect 33 0 36 1; #X connect 34 0 33 1;