#N canvas 433 97 448 561 10;
#N canvas 0 0 450 300 (subpatch) 0;
#X array table20 44103 float 0;
#X coords 0 1.02 44100 -1.02 130 84 1;
#X restore 281 213 graph;
#X obj 14 370 hip~ 5;
#X floatatom 63 42 0 0 0 0 - - -;
#X text 92 42 <-- frequency (Hz.);
#X floatatom 145 66 0 0 0 0 - - -;
#X obj 145 88 * 441;
#X obj 61 175 +~ 1;
#X obj 63 66 phasor~ 0;
#X msg 106 277 bang;
#X obj 152 356 adc~ 1;
#X obj 152 378 hip~ 5;
#X msg 167 401 bang;
#N canvas 0 0 450 300 (subpatch) 0;
#X array graph20 44100 float 0;
#X coords 0 44100 44100 0 130 84 1;
#X restore 283 330 graph;
#X obj 14 346 *~;
#X obj 78 225 line~;
#X obj 145 170 * 441;
#X floatatom 145 146 0 0 0 0 - - -;
#X obj 78 203 pack 0 100;
#X obj 62 271 +~;
#X text 140 277 <-- graph table index;
#X obj 78 247 samphold~;
#X obj 77 125 samphold~;
#X obj 62 151 *~;
#X text 202 401 <-- record;
#X obj 14 396 output~;
#X obj 13 96 -~ 0.5;
#X obj 13 120 *~ 0.5;
#X obj 13 143 cos~;
#X obj 106 304 tabwrite~ graph20;
#X obj 62 326 tabread4~ table20;
#X obj 152 425 tabwrite~ table20;
#X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header sliding_stable_loops_without_doppler_shift
20 10 1 18 -261139 -33289 0;
#X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp
;
#X text 21 451 This example differs from the previous one in having
[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.;
#X text 192 81 (100ths of a second);
#X text 192 163 (100ths of a second);
#X text 175 66 <-- chunk size;
#X text 175 147 <-- read point;
#N canvas 0 0 392 214 init 0;
#X obj 42 27 loadbang;
#X text 90 44 v-- re-read the original sample;
#X obj 51 88 soundfiler;
#X msg 42 114 \; graph20 ylabel 48000 0 44100;
#X msg 51 64 read ../sound/voice.wav table20;
#X connect 0 0 3 0;
#X connect 0 0 4 0;
#X connect 4 0 2 0;
#X restore 376 444 pd init;
#X text 283 297 --- 44103 samples ---;
#X text 279 417 ------ 1 second ------;
#X obj 1 539 cnv 15 445 20 empty \$0-pddp.cnv.footer empty 20 12 0
14 -233017 -33289 0;
#N canvas 44 246 494 284 META 0;
#X text 12 125 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 105 AUTHOR Miller Puckette;
#X text 12 85 LIBRARY PDDP;
#X text 12 5 GENRE tutorial;
#X text 12 45 LICENSE SIBSD;
#X text 12 145 HELP_PATCH_AUTHORS Updated for release 0.37. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 65 DESCRIPTION sliding stable loops without doppler shift
;
#X text 12 25 KEYWORDS signal;
#X restore 392 541 pd META;
#N canvas 13 202 428 190 References 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -261139 -33289 0;
#X text 7 2 Hello World- Related Help Documents;
#X text 19 37 Mention the help link \, and the fact that you can basically
click on anything to get a help patch on it. Also be sure to see the
FAQ at puredata.info as you start out with Pd. A link can be found
in the "Help" menu above.;
#X text 18 90 Another hello world can be found in the mailing lists.
You can search for answers to questions on there \, and if you're having
a hard time finding info you can always ask questions \, too. (See
the netiquette page before posting \, though.);
#X text 69 159 rethink calling that an "atom";
#X restore 103 541 pd References;
#X obj 6 541 pddp/pddplink ../5.reference/pddp/help.pd -text help;
#X connect 1 0 24 0;
#X connect 1 0 24 1;
#X connect 2 0 7 0;
#X connect 4 0 5 0;
#X connect 5 0 21 0;
#X connect 6 0 18 0;
#X connect 7 0 20 1;
#X connect 7 0 21 1;
#X connect 7 0 22 0;
#X connect 7 0 25 0;
#X connect 8 0 28 0;
#X connect 9 0 10 0;
#X connect 10 0 30 0;
#X connect 11 0 30 0;
#X connect 13 0 1 0;
#X connect 14 0 20 0;
#X connect 15 0 17 0;
#X connect 16 0 15 0;
#X connect 17 0 14 0;
#X connect 18 0 28 0;
#X connect 18 0 29 0;
#X connect 20 0 18 1;
#X connect 21 0 22 1;
#X connect 22 0 6 0;
#X connect 25 0 26 0;
#X connect 26 0 27 0;
#X connect 27 0 13 0;
#X connect 29 0 13 1;
