#N canvas 823 297 791 704 12; #N canvas 0 22 450 300 (subpatch) 0; #X array mlab2 242868 float 2; #X coords 0 1 242868 -1 200 140 1 0 0; #X restore 291 29 graph; #X obj 290 220 soundfiler; #X floatatom 290 246 5 0 0 0 - - -; #X obj 348 272 expr 44100 / $f1; #X obj 290 329 *~; #X obj 290 303 phasor~; #X obj 47 370 phasor~; #X floatatom 47 345 5 0 0 0 - - -; #X obj 46 512 *~ 256; #X obj 290 507 samphold~; #X obj 47 593 +~; #X obj 47 672 dac~; #X text 538 194 load sound file; #X text 342 246 size of sound file; #X text 357 303 runs at original speed; #X text 45 325 playback speed you want; #X text 105 500 window \, here 256; #X text 103 519 samples in size; #X obj 551 143 openpanel; #X obj 571 109 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 290 190 read -resize \$1 mlab2; #X text 288 566 converters to eliminate variations in input signal that can corrupt the conversion process; #X text 317 380 After a grain is played \, there is a jump to the next position \; this position is taken from the current position of the "main indicator". There is a special object to accomplish this; #X obj 47 628 tabread4~ mlab2; #X floatatom 89 447 5 0 0 0 - - -; #X floatatom 236 279 5 0 0 0 - - -; #X text 333 641 modified from the original patch by Johannes Kreidler Sound and Music Interaction course 2015; #X text 378 482 each sample point is reproduced in differetn speed ; #X text 372 499 sound is fractioned becaouse it shortens every spample ; #X text 365 525 it stores the sample and and we effect speed; #X text -28 540 the window is the range of samples to; #X text -8 567 effect; #X connect 1 0 2 0; #X connect 2 0 4 1; #X connect 2 0 3 0; #X connect 3 0 5 0; #X connect 4 0 9 0; #X connect 5 0 4 0; #X connect 6 0 8 0; #X connect 6 0 9 1; #X connect 7 0 6 0; #X connect 8 0 10 0; #X connect 9 0 10 1; #X connect 10 0 23 0; #X connect 18 0 20 0; #X connect 19 0 18 0; #X connect 20 0 1 0; #X connect 23 0 11 0; #X connect 23 0 11 1; #X connect 24 0 8 1; #X connect 25 0 5 0;