#N canvas 499 38 737 882 12;
#X declare -stdpath ./;
#X floatatom 96 213 5 0 100 0 - - - 0;
#X obj 42 590 +~ 1;
#X obj 72 686 *~;
#X floatatom 102 384 5 0 100 0 - - - 0;
#X obj 42 619 +~;
#X obj 89 617 samphold~;
#X obj 42 518 samphold~;
#X obj 42 565 *~;
#X obj 201 579 r~ phase;
#X obj 374 378 s~ phase;
#X obj 130 518 r~ phase;
#X obj 60 542 r~ phase;
#X obj 124 592 r~ phase;
#X obj 96 268 s chunk-size;
#X floatatom 374 171 5 0 0 0 - \$0-cents - 0;
#X obj 385 229 r chunk-size;
#X obj 385 254 t b f;
#X obj 374 278 /;
#X obj 201 603 -~ 0.5;
#X obj 201 627 *~ 0.5;
#X obj 201 650 cos~;
#X obj 72 800 output~;
#X obj 374 327 phasor~;
#X obj 35 295 s chunk-size-samples;
#X text 184 294 ... and in samples;
#X obj 450 364 +~ 0.5;
#X obj 450 390 wrap~;
#X obj 450 415 s~ phase2;
#X obj 42 493 r chunk-size-samples;
#X obj 282 589 +~ 1;
#X obj 282 699 *~;
#X obj 282 618 +~;
#X obj 337 617 samphold~;
#X obj 282 517 samphold~;
#X obj 282 564 *~;
#X obj 443 605 -~ 0.5;
#X obj 443 629 *~ 0.5;
#X obj 443 652 cos~;
#X obj 282 492 r chunk-size-samples;
#X obj 371 518 r~ phase2;
#X obj 300 541 r~ phase2;
#X obj 443 581 r~ phase2;
#X obj 359 592 r~ phase2;
#X obj 72 757 +~;
#X text 433 303 loop frequency;
#X text 92 475 copy 1;
#X text 337 472 copy 2;
#X obj 42 644 tabread4~ table22;
#X obj 282 643 tabread4~ table22;
#X obj 53 16 cnv 5 5 25 empty empty Two\ Overlapping\ Sample\ Read\ Elements 15 13 0 16 #dfdfdf #202020 0;
#X obj 374 199 expr pow(2 \, $f1/1200);
#X text 419 171 <-- transposition in cents;
#X obj 102 439 s read-pt;
#X obj 89 569 r read-pt;
#X obj 337 567 r read-pt;
#X obj 96 243 / 1000;
#X text 194 269 chunk size in seconds;
#X text 511 348 second phase signal out of phase from first one, f 13;
#X floatatom 374 302 7 0 0 0 - - - 0;
#N canvas 1007 202 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 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 msg 79 173 \; \$1-cents 0 \; \$1-read-point 0 \; \$1-size 250;
#X connect 1 0 3 0;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X restore 622 223 pd init;
#X text 77 57 Here is the previous patch modified to use two copies of the sample reader \, 180 degrees out of phase. The computation of "chunk-size-samples" and "read-pt" is the same for both copies. We have the same loop frequency calculation as before for the first phase and the second phase signal (named "phase2") is derived from the first one by adding a constant (0.5) and wrapping the result to fit again between zero and one., f 79;
#X text 103 759 sum the two copies;
#X obj 99 184 hsl 162 19 0 1000 0 0 empty \$0-size chunk\ size\ (ms) -2 -10 0 12 #dfdfdf #000000 #000000 0 1;
#X obj 105 359 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 0 0 450 300 (subpatch) 0;
#X array table22 48003 float 2;
#A color 0;
#A width 2;
#X coords 0 1.02 48003 -1.02 200 130 1;
#X restore 462 714 graph;
#X obj 564 579 adc~ 1;
#X obj 564 653 tabwrite~ table22;
#X obj 584 612 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#X text 609 611 <-- record;
#X obj 473 461 loadbang;
#X obj 473 531 soundfiler;
#X text 519 483 v-- re-read original table;
#X msg 473 504 read ../sound/voice.wav table22;
#X obj 35 258 * 48;
#X obj 102 409 * 48;
#X text 483 848 --- 48003 samples ---;
#X connect 0 0 55 0;
#X connect 0 0 73 0;
#X connect 1 0 4 0;
#X connect 2 0 43 0;
#X connect 3 0 74 0;
#X connect 4 0 47 0;
#X connect 5 0 4 1;
#X connect 6 0 7 0;
#X connect 7 0 1 0;
#X connect 8 0 18 0;
#X connect 10 0 6 1;
#X connect 11 0 7 1;
#X connect 12 0 5 1;
#X connect 14 0 50 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X connect 16 1 17 1;
#X connect 17 0 58 0;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 20 0 2 1;
#X connect 22 0 9 0;
#X connect 22 0 25 0;
#X connect 25 0 26 0;
#X connect 26 0 27 0;
#X connect 28 0 6 0;
#X connect 29 0 31 0;
#X connect 30 0 43 1;
#X connect 31 0 48 0;
#X connect 32 0 31 1;
#X connect 33 0 34 0;
#X connect 34 0 29 0;
#X connect 35 0 36 0;
#X connect 36 0 37 0;
#X connect 37 0 30 1;
#X connect 38 0 33 0;
#X connect 39 0 33 1;
#X connect 40 0 34 1;
#X connect 41 0 35 0;
#X connect 42 0 32 1;
#X connect 43 0 21 0;
#X connect 47 0 2 0;
#X connect 48 0 30 0;
#X connect 50 0 17 0;
#X connect 53 0 5 0;
#X connect 54 0 32 0;
#X connect 55 0 13 0;
#X connect 58 0 22 0;
#X connect 62 0 0 0;
#X connect 63 0 3 0;
#X connect 65 0 66 0;
#X connect 67 0 66 0;
#X connect 69 0 72 0;
#X connect 72 0 70 0;
#X connect 73 0 23 0;
#X connect 74 0 52 0;
