#N canvas 144 158 793 471 12; #X obj 48 109 dac~; #X obj 270 105 fluid.pitch~; #X msg 270 129 \$2; #X obj 270 153 change; #X obj 270 177 > 0.7; #X obj 270 204 sel 1; #X obj 270 249 +; #X msg 270 228 1; #X obj 270 321 change; #X obj 270 297 > 7; #X obj 49 428 expr pow(2 \, random(-10000 \, 10001)/ 20000.); #X obj 115 105 fluid.loudness~; #X msg 115 129 \$1; #X obj 115 153 change; #X obj 115 201 sel 1; #X obj 115 177 < -70; #X obj 115 378 spigot; #X obj 115 402 t b b; #X msg 177 390 0; #N canvas 0 23 636 335 scratchy-looping-reader 0; #X obj 244 98 r pd-dsp-started; #X obj 145 53 loadbang; #X obj 145 97 soundfiler; #X obj 146 228 *~, f 10; #X obj 146 185 /~; #X msg 146 163 1; #X obj 146 206 phasor~; #X obj 288 146 samplerate~; #X obj 216 163 / 1; #X obj 145 119 t b f b; #X obj 244 120 t b b b; #X obj 365 260 array define scratchy; #X msg 145 75 read -resize media/Tremblay-ASWINE-ScratchySynth-M.wav scratchy, f 63; #X obj 146 250 tabread4~ scratchy; #X obj 146 274 outlet~; #X obj 80 138 inlet; #X connect 0 0 10 0; #X connect 1 0 12 0; #X connect 2 0 9 0; #X connect 3 0 13 0; #X connect 4 0 6 0; #X connect 5 0 4 0; #X connect 6 0 3 0; #X connect 7 0 8 1; #X connect 8 0 4 1; #X connect 9 0 5 0; #X connect 9 1 3 1; #X connect 9 1 8 0; #X connect 9 2 7 0; #X connect 10 0 5 0; #X connect 10 1 8 0; #X connect 10 2 7 0; #X connect 12 0 2 0; #X connect 13 0 14 0; #X connect 15 0 4 0; #X restore 115 60 pd scratchy-looping-reader; #X floatatom 115 33 5 0 0 0 - - -; #X text 162 32 varyspeed; #X obj 270 346 sel 0; #X text 316 238 1 here we count how many consecutive frames have a confidence of at least 0.7, f 40; #X msg 114 8 0; #X obj 270 273 t f f; #X text 160 9 3 stop the player; #X text 269 375 2 when we reach that count we open the gate to enable the next time we reach a loudness of less than -70LU to trigger a change of playback speed (plus/minus a natural fifth); #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 5 0 7 0; #X connect 5 1 6 1; #X connect 6 0 25 0; #X connect 7 0 6 0; #X connect 8 0 22 0; #X connect 9 0 8 0; #X connect 10 0 20 0; #X connect 11 0 12 0; #X connect 12 0 13 0; #X connect 13 0 15 0; #X connect 14 0 16 0; #X connect 15 0 14 0; #X connect 16 0 17 0; #X connect 17 0 10 0; #X connect 17 1 18 0; #X connect 18 0 16 1; #X connect 19 0 11 0; #X connect 19 0 1 0; #X connect 19 0 0 1; #X connect 19 0 0 0; #X connect 20 0 19 0; #X connect 22 1 16 1; #X connect 24 0 20 0; #X connect 25 0 9 0; #X connect 25 1 6 1;