#N canvas 388 59 583 675 10;
#X obj 22 506 hip~ 5;
#X floatatom 22 42 0 0 100 0 - - -;
#X obj 22 70 * 441;
#X obj 23 377 +~ 1;
#X text 54 41 <-- chunk size (100ths of a second);
#X obj 23 455 *~;
#X obj 23 211 line~;
#X obj 23 167 * 441;
#X floatatom 23 145 0 0 100 0 - - -;
#X obj 23 189 pack 0 100;
#X text 54 145 <-- read point in 100ths of a second;
#X obj 23 406 +~;
#X obj 69 405 samphold~;
#X obj 23 305 samphold~;
#X obj 23 352 *~;
#X obj 158 366 r~ phase;
#X obj 298 216 s~ phase;
#X obj 101 305 r~ phase;
#X obj 38 329 r~ phase;
#X obj 89 380 r~ phase;
#X obj 74 92 s chunk-size;
#X floatatom 298 65 0 0 0 0 - - -;
#X obj 74 70 * 0.01;
#X text 156 71 chunk size;
#X text 156 87 in seconds;
#X obj 309 117 r chunk-size;
#X obj 309 142 t b f;
#X obj 298 166 /;
#X obj 298 42 loadbang;
#X obj 158 390 -~ 0.5;
#X obj 158 414 *~ 0.5;
#X obj 158 437 cos~;
#X obj 22 531 output~;
#X obj 298 90 expr pow(2 \, $f1/120);
#X text 429 90 speed change;
#X obj 298 190 phasor~;
#N canvas 56 366 660 275 table 0;
#N canvas 0 0 450 300 (subpatch) 0;
#X array table22 44103 float 0;
#X coords 0 1.02 44100 -1.02 200 130 1;
#X restore 442 61 graph;
#X text 444 195 --- 44103 samples ---;
#X obj 41 148 loadbang;
#X obj 45 44 adc~ 1;
#X obj 45 69 hip~ 5;
#X msg 60 91 bang;
#X obj 41 202 soundfiler;
#X text 101 91 <-- record;
#X text 134 155 v-- re-read original table;
#X obj 45 118 tabwrite~ table22;
#X msg 41 175 read ../sound/voice.wav table22;
#X connect 2 0 10 0;
#X connect 3 0 4 0;
#X connect 4 0 9 0;
#X connect 5 0 9 0;
#X connect 10 0 6 0;
#X restore 177 234 pd table;
#X obj 22 114 s chunk-size-samples;
#X text 158 114 ... and in samples;
#X obj 23 234 s~ read-pt;
#X obj 70 357 r~ read-pt;
#X obj 385 219 +~ 0.5;
#X obj 385 241 wrap~;
#X obj 385 263 s~ phase2;
#X obj 23 283 r chunk-size-samples;
#X obj 247 388 +~ 1;
#X obj 247 466 *~;
#X obj 247 417 +~;
#X obj 292 416 samphold~;
#X obj 247 316 samphold~;
#X obj 247 363 *~;
#X obj 382 401 -~ 0.5;
#X obj 382 425 *~ 0.5;
#X obj 382 448 cos~;
#X obj 293 368 r~ read-pt;
#X obj 247 294 r chunk-size-samples;
#X obj 326 317 r~ phase2;
#X obj 262 340 r~ phase2;
#X obj 382 377 r~ phase2;
#X obj 302 391 r~ phase2;
#X obj 22 484 +~;
#X text 333 65 <-- transposition \, halftones/10;
#X text 336 166 loop frequency;
#X text 448 216 second phase signal;
#X text 448 234 out of phase from;
#X text 448 253 first one;
#X text 64 263 copy 1;
#X text 290 274 copy 2;
#X text 111 492 Here is the previous patch modified to use two copies
of the sample reader \, 180 degrees out of phase. The second sawtooth
signal is derived from the first one by adding a constant (0.5) and
wrapping the result to fit again between zero and one. The result is
the "phase2" signal.;
#X text 110 556 The computation of "chunk-size-samples" (as a message)
and "read-pt" (an audio signal) is the same for both copies and is
separated out at top left. At top right is the same loop frequency
calculation as before.;
#X text 110 609 Finally \, the two copies' outputs are added and the
result sent to the audio output.;
#X obj 23 431 tabread4~ table22;
#X obj 247 442 tabread4~ table22;
#X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header two_overlapping_sample_read_elements
20 10 1 18 -261139 -33289 0;
#X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp
;
#X obj 1 653 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 two overlapping sample read elements;
#X text 12 25 KEYWORDS signal array;
#X restore 392 655 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 overlapping samples- Related Help Documents;
#X text 19 37 links:;
#X restore 103 655 pd References;
#X obj 6 655 pddp/pddplink ../5.reference/pddp/help.pd -text help;
#X connect 0 0 32 0;
#X connect 0 0 32 1;
#X connect 1 0 2 0;
#X connect 1 0 22 0;
#X connect 2 0 37 0;
#X connect 3 0 11 0;
#X connect 5 0 60 0;
#X connect 6 0 39 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X connect 9 0 6 0;
#X connect 11 0 71 0;
#X connect 12 0 11 1;
#X connect 13 0 14 0;
#X connect 14 0 3 0;
#X connect 15 0 29 0;
#X connect 17 0 13 1;
#X connect 18 0 14 1;
#X connect 19 0 12 1;
#X connect 21 0 33 0;
#X connect 22 0 20 0;
#X connect 25 0 26 0;
#X connect 26 0 27 0;
#X connect 26 1 27 1;
#X connect 27 0 35 0;
#X connect 28 0 21 0;
#X connect 29 0 30 0;
#X connect 30 0 31 0;
#X connect 31 0 5 1;
#X connect 33 0 27 0;
#X connect 35 0 16 0;
#X connect 35 0 41 0;
#X connect 40 0 12 0;
#X connect 41 0 42 0;
#X connect 42 0 43 0;
#X connect 44 0 13 0;
#X connect 45 0 47 0;
#X connect 46 0 60 1;
#X connect 47 0 72 0;
#X connect 48 0 47 1;
#X connect 49 0 50 0;
#X connect 50 0 45 0;
#X connect 51 0 52 0;
#X connect 52 0 53 0;
#X connect 53 0 46 1;
#X connect 54 0 48 0;
#X connect 55 0 49 0;
#X connect 56 0 49 1;
#X connect 57 0 50 1;
#X connect 58 0 51 0;
#X connect 59 0 48 1;
#X connect 60 0 0 0;
#X connect 71 0 5 0;
#X connect 72 0 46 0;
