#N canvas 2 22 675 530 10;
#X declare -path .. -path .;
#X obj 39 474 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144
-1 -1;
#X obj 42 95 hsl 250 30 0 1 0 0 empty empty scrub -2 -8 0 10 -257985
-1 -1 0 1;
#X obj 39 167 *;
#X text 161 252 attack sustain decay;
#X text 477 255 half window for one grain;
#X floatatom 109 211 5 0 0 0 - - -, f 5;
#X text 299 102 0...1;
#X obj 39 188 nbx 10 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 0 256;
#X obj 377 142 sample \$0-sample;
#X obj 39 421 list prepend \$0-sample;
#X text 160 222 change attack+decay;
#X obj 27 11 cnv 15 600 40 empty empty Universal_Polyphonic_Player
10 10 0 14 -233017 -66577 0;
#X text 34 34 granular scrubbing through audio buffer;
#X floatatom 276 473 5 0 0 0 voices_active - -, f 5;
#X obj 507 276 wnd-sin \$0-wnd 1024;
#X obj 442 450 out-stereo;
#X obj 39 292 t a b;
#X obj 402 426 catch~ \$0-bus-1;
#X obj 524 426 catch~ \$0-bus-2;
#X text 159 295 random panning;
#X text 182 421 this is the tag;
#X obj 39 381 list prepend;
#X obj 108 293 random 2;
#X obj 108 336 list prepend \$0;
#X msg 108 358 symbol \$1-bus-\$2;
#X obj 108 315 + 1;
#X text 218 358 \$0-bus-1 or \$0-bus-2;
#X text 122 381 prepend bus name;
#X text 512 96 to find voice patch;
#X text 511 13 grrrr.org \, 2012-15;
#X obj 480 76 declare -path .. -path .;
#X obj 378 206 upp.ms2s;
#X text 137 187 position in buffer(smps);
#X obj 109 228 upp.ms2s;
#X obj 39 253 pack 0 5000 0 5000;
#X obj 39 450 upp 20 spat-varbus syn-grain \$0-wnd 1024;
#X connect 1 0 2 0;
#X connect 2 0 7 0;
#X connect 5 0 33 0;
#X connect 7 0 34 0;
#X connect 8 0 31 0;
#X connect 9 0 35 0;
#X connect 16 0 21 0;
#X connect 16 1 22 0;
#X connect 17 0 15 0;
#X connect 18 0 15 1;
#X connect 21 0 9 0;
#X connect 22 0 25 0;
#X connect 23 0 24 0;
#X connect 24 0 21 1;
#X connect 25 0 23 0;
#X connect 31 0 2 1;
#X connect 33 0 34 3;
#X connect 33 0 34 1;
#X connect 34 0 16 0;
#X connect 35 0 0 0;
#X connect 35 2 13 0;
