#N canvas 234 90 647 662 12;
#X floatatom 41 204 0 0 0 0 - - -;
#X obj 254 382 print~;
#X msg 254 347 bang;
#X obj 41 338 loop~;
#X floatatom 66 279 0 0 0 0 - - -;
#X msg 55 252 bang;
#X obj 183 382 print~;
#X msg 183 347 bang;
#N canvas 0 0 450 300 (subpatch) 0;
#X array array2 150000 float 0;
#X coords 0 1 150000 -1 200 150 1;
#X restore 393 464 graph;
#X msg 393 622 \; array2 resize 150000;
#X obj 25 613 soundfiler;
#X obj 16 453 tabread4~ array2;
#X obj 16 407 *~;
#X obj 16 522 dac~;
#X obj 16 499 hip~ 5;
#X obj 62 411 samphold~;
#X obj 16 430 +~;
#X floatatom 96 303 0 0 0 0 - - -;
#X obj 96 326 *~ 1000;
#X msg 43 568 read /usr/pkg/share/doc/pd/doc/sound/bell.aiff array2;
#X msg 47 229 set 0.5;
#X text 95 196 left signal input is transposition (1 is normal \, 2
is up an octave \, etc);
#X text 82 4 loop~ - phase generator for looping samplers;
#X text 116 228 set phase (0 to 1);
#X text 104 253 reset phase to 0;
#X text 104 278 right signal input is window size in samples;
#X text 134 302 here's how to handle onsets;
#X obj 16 476 *~;
#X floatatom 167 432 0 0 0 0 - - -;
#X obj 167 501 line~;
#X obj 167 455 dbtorms;
#X obj 167 478 pack 0 50;
#X text 201 431 output level 0-100;
#X text 187 326 print outputs;
#X text 33 32 loop~ takes input signals to set a window size and transposition
\, and outputs a phase and a sampled window size. The window size only
changes at phase zero crossings and the phase output is adjusted so
that changing window size doesn't change the transposition.;
#X text 33 112 You can send "bang" or "set" message to force the phase
to zero--you should mute the output before doing so. This may be desirable
if you've set a large window size but then want to decrease it without
waiting for the next phase crossing.;
#X msg 43 591 read /usr/pkg/share/doc/pd/doc/sound/voice.wav array2;
#X connect 0 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 6 0;
#X connect 3 0 12 0;
#X connect 3 0 15 1;
#X connect 3 1 1 0;
#X connect 3 1 12 1;
#X connect 4 0 3 1;
#X connect 5 0 3 0;
#X connect 7 0 6 0;
#X connect 11 0 27 0;
#X connect 12 0 16 0;
#X connect 14 0 13 0;
#X connect 14 0 13 1;
#X connect 15 0 16 1;
#X connect 16 0 11 0;
#X connect 17 0 18 0;
#X connect 18 0 15 0;
#X connect 19 0 10 0;
#X connect 20 0 3 0;
#X connect 27 0 14 0;
#X connect 28 0 30 0;
#X connect 29 0 27 1;
#X connect 30 0 31 0;
#X connect 31 0 29 0;
#X connect 36 0 10 0;
