#N canvas 440 63 820 641 12;
#X declare -stdpath ./;
#N canvas 0 0 450 300 (subpatch) 0;
#X array table20 44103 float 2;
#X coords 0 1.02 44103 -1.02 200 130 1;
#X restore 507 116 graph;
#X obj 501 439 loadbang;
#X floatatom 119 101 5 0 0 2 Hz \$0-freq - 0;
#X floatatom 187 174 6 0 0 0 - - - 0;
#X obj 119 334 +~ 1;
#X obj 354 434 adc~ 1;
#X text 540 464 v-- re-read the original sample;
#X obj 172 447 *~;
#X floatatom 249 216 6 0 0 0 - - - 0;
#X obj 190 370 +~;
#X obj 208 343 samphold~;
#X obj 137 281 samphold~;
#X obj 119 307 *~;
#X text 527 250 ---- 44103 samples ---;
#X obj 501 508 soundfiler;
#X obj 172 514 output~;
#X obj 56 293 -~ 0.5;
#X obj 56 317 *~ 0.5;
#X obj 56 340 cos~;
#X obj 190 405 tabread4~ table20;
#X obj 354 513 tabwrite~ table20;
#X msg 501 484 read ../sound/voice.wav table20;
#X text 396 475 <-- record;
#X obj 372 476 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#X obj 59 29 cnv 5 5 25 empty empty Sliding\ Stable\ Loops\ Without\ Doopler\ Shift 15 13 0 16 #dfdfdf #202020 0;
#X obj 249 240 * 44.1;
#X obj 187 199 * 44.1;
#X obj 119 135 phasor~;
#X obj 190 129 hsl 162 19 0 1000 0 0 empty \$0-size chunk\ size\ (ms) -2 -10 0 12 #dfdfdf #000000 #000000 0 1;
#X obj 252 185 hsl 162 19 -250 1000 0 0 empty \$0-read-point read\ point\ (ms) -2 -10 0 12 #dfdfdf #000000 #000000 0 1;
#N canvas 623 232 323 359 init 0;
#X text 57 23 This subpatch initializes the patch and loads values in number boxes., f 29;
#X obj 79 94 loadbang;
#X obj 79 149 f \$0;
#X msg 79 173 \; \$1-freq 5 \; \$1-read-point 0 \; \$1-size 250;
#X obj 79 121 bng 19 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000;
#X obj 79 266 declare -stdpath ./;
#X connect 1 0 4 0;
#X connect 2 0 3 0;
#X connect 4 0 2 0;
#X restore 381 233 pd init;
#X text 390 298 This example includes [samphold~] objects which allow the chunk size and especially the read point to change only at points where the phase wraps around. This removes signal discontinuities (when the chunk size changes) and doppler shift when the read point is changing., f 49;
#X connect 1 0 21 0;
#X connect 2 0 27 0;
#X connect 3 0 26 0;
#X connect 4 0 9 0;
#X connect 5 0 20 0;
#X connect 7 0 15 0;
#X connect 8 0 25 0;
#X connect 9 0 19 0;
#X connect 10 0 9 1;
#X connect 11 0 12 1;
#X connect 12 0 4 0;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 18 0 7 0;
#X connect 19 0 7 1;
#X connect 21 0 14 0;
#X connect 23 0 20 0;
#X connect 25 0 10 0;
#X connect 26 0 11 0;
#X connect 27 0 10 1;
#X connect 27 0 11 1;
#X connect 27 0 12 0;
#X connect 27 0 16 0;
#X connect 28 0 3 0;
#X connect 29 0 8 0;
