#N canvas 244 10 836 909 10;
#X floatatom 323 374;
#X obj 567 238 tabwrite~ insamp;
#X msg 567 196 bang;
#X floatatom 214 370;
#X floatatom 94 369;
#N canvas 94 44 1055 820 fft-analysis 0;
#X obj 307 349 *~;
#X obj 271 349 *~;
#X obj 271 375 -~;
#X obj 383 351 *~;
#X obj 347 351 *~;
#X obj 347 377 +~;
#X obj 400 150 *~;
#X obj 364 150 *~;
#X obj 330 150 *~;
#X obj 294 150 *~;
#X obj 294 176 +~;
#X obj 259 210 *~;
#X obj 101 654 *~;
#X obj 431 295 rfft~;
#X obj 455 62 rfft~;
#X obj 561 749 *~;
#X obj 630 574 tabread4~ insamp;
#X obj 806 339 r window-size;
#X obj 884 236 r sample-rate;
#X obj 717 275 f;
#X obj 709 61 r sample-rate;
#X obj 680 34 r window-size;
#X obj 707 115 t b f;
#X obj 680 142 /;
#X obj 596 749 *~;
#X obj 102 630 *~;
#X obj 121 604 rifft~;
#X obj 102 685 outlet~;
#X obj 735 525 print~;
#X msg 734 492 bang;
#X text 179 604 inverse real FFT;
#X obj 693 247 bang~;
#X obj 607 499 line~;
#X obj 680 168 * 1000;
#X text 741 160 window size (msec);
#X obj 709 89 * 4;
#X obj 744 187 r speed;
#X obj 834 188 r location;
#X obj 753 276 +;
#X obj 745 235 *;
#X msg 835 221 0;
#X obj 717 401 +;
#X obj 706 350 t f f;
#X msg 607 466 \$1 \, \$2 \$3;
#X obj 607 434 pack 0 0 0;
#X obj 885 269 / 1000;
#X obj 717 317 *;
#X text 752 318 reading location (samples);
#X obj 749 448 / 4;
#X text 787 454 hop size (samples);
#X obj 664 546 sig~;
#X obj 628 545 +~;
#X obj 591 603 tabread4~ insamp;
#X text 751 97 (overlap times parent SR);
#X text 751 81 local sample rate;
#X obj 27 60 tabreceive~ phase-real;
#X obj 223 210 *~;
#X obj 223 236 +~;
#X obj 223 265 rsqrt~;
#X obj 364 176 -~;
#X obj 272 300 *~;
#X obj 342 300 *~;
#X obj 233 60 tabreceive~ phase-imag;
#X obj 124 448 sig~;
#X obj 104 366 t b f;
#X msg 104 390 1;
#X obj 120 418 /;
#X obj 267 513 tabsend~ phase-real;
#X obj 301 480 tabsend~ phase-imag;
#X obj 122 156 sig~ 1.5e-20;
#X obj 744 212 * 0.01;
#X obj 813 249 s speed;
#X obj 550 295 s see-location;
#X obj 704 727 block~ 2048 4;
#X floatatom 790 423;
#X obj 788 399 *;
#X obj 974 281 r transpo;
#X obj 974 304 * 0.01;
#X obj 976 328 + 69;
#X obj 978 353 mtof;
#X obj 979 376 / 440;
#X obj 811 372 t b f;
#X obj 104 341 r window-size;
#X floatatom 982 415;
#X obj 648 639 tabreceive~ hanning;
#X connect 0 0 2 1;
#X connect 1 0 2 0;
#X connect 2 0 67 0;
#X connect 2 0 26 0;
#X connect 3 0 5 1;
#X connect 4 0 5 0;
#X connect 5 0 68 0;
#X connect 5 0 26 1;
#X connect 6 0 59 1;
#X connect 7 0 59 0;
#X connect 8 0 10 1;
#X connect 9 0 10 0;
#X connect 10 0 60 1;
#X connect 10 0 56 0;
#X connect 10 0 56 1;
#X connect 11 0 57 1;
#X connect 12 0 27 0;
#X connect 13 0 1 1;
#X connect 13 0 3 1;
#X connect 13 1 0 1;
#X connect 13 1 4 1;
#X connect 14 0 9 1;
#X connect 14 0 7 1;
#X connect 14 1 6 1;
#X connect 14 1 8 1;
#X connect 15 0 14 0;
#X connect 16 0 24 0;
#X connect 17 0 75 0;
#X connect 18 0 45 0;
#X connect 19 0 38 0;
#X connect 19 0 46 0;
#X connect 19 0 72 0;
#X connect 20 0 35 0;
#X connect 21 0 23 0;
#X connect 22 0 23 0;
#X connect 22 1 23 1;
#X connect 23 0 33 0;
#X connect 24 0 13 0;
#X connect 25 0 12 0;
#X connect 26 0 25 1;
#X connect 29 0 28 0;
#X connect 31 0 19 0;
#X connect 32 0 28 0;
#X connect 32 0 51 0;
#X connect 32 0 52 0;
#X connect 33 0 44 2;
#X connect 33 0 39 1;
#X connect 35 0 22 0;
#X connect 36 0 70 0;
#X connect 37 0 40 0;
#X connect 37 0 19 1;
#X connect 38 0 19 1;
#X connect 39 0 38 1;
#X connect 40 0 71 0;
#X connect 41 0 44 1;
#X connect 42 0 44 0;
#X connect 42 1 41 0;
#X connect 43 0 32 0;
#X connect 44 0 43 0;
#X connect 45 0 46 1;
#X connect 46 0 42 0;
#X connect 48 0 50 0;
#X connect 50 0 51 1;
#X connect 51 0 16 0;
#X connect 52 0 15 0;
#X connect 55 0 9 0;
#X connect 55 0 6 0;
#X connect 56 0 57 0;
#X connect 57 0 58 0;
#X connect 58 0 60 0;
#X connect 58 0 61 0;
#X connect 59 0 61 1;
#X connect 59 0 11 0;
#X connect 59 0 11 1;
#X connect 60 0 1 0;
#X connect 60 0 4 0;
#X connect 61 0 0 0;
#X connect 61 0 3 0;
#X connect 62 0 7 0;
#X connect 62 0 8 0;
#X connect 63 0 25 0;
#X connect 64 0 65 0;
#X connect 64 1 66 1;
#X connect 65 0 66 0;
#X connect 66 0 63 0;
#X connect 69 0 10 0;
#X connect 70 0 39 0;
#X connect 74 0 48 0;
#X connect 74 0 41 1;
#X connect 75 0 74 0;
#X connect 76 0 77 0;
#X connect 77 0 78 0;
#X connect 78 0 79 0;
#X connect 79 0 80 0;
#X connect 80 0 81 0;
#X connect 80 0 83 0;
#X connect 81 0 75 0;
#X connect 81 1 75 1;
#X connect 82 0 64 0;
#X connect 84 0 24 1;
#X connect 84 0 15 1;
#X connect 84 0 12 1;
#X restore 44 496 pd fft-analysis;
#X obj 44 598 dac~;
#N canvas 0 0 600 400 in-sample 0;
#X graph graph1 0 -1 441000 1 200 320 600 20;
#X array insamp 441000 float;
#X pop;
#X msg 193 331 \; insamp resize 441000;
#X restore 500 538 pd in-sample;
#N canvas 260 23 647 768 phase-tables 0;
#X graph graph2 0 -1 4096 1 202 641 602 341;
#X array phase-imag 4096 float;
#X pop;
#X graph graph3 0 -1 4096 1 200 320 600 20;
#X array phase-real 4096 float;
#X pop;
#X msg 197 663 \; phase-real resize 4096 \; phase-imag resize 4096;
#X restore 500 565 pd phase-tables;
#X obj 44 527 hip~ 5;
#X obj 44 562 *~;
#N canvas 249 280 600 398 loc&precess 0;
#X floatatom 188 269;
#X msg 318 206 set \$1;
#X obj 316 243 outlet;
#X obj 98 314 outlet;
#X obj 201 83 r location;
#X msg 97 277 set \$1;
#X obj 317 175 r speed;
#X obj 65 82 r see-location;
#X obj 79 120 t b f;
#X obj 97 252 f;
#X obj 63 149 int;
#X obj 63 178 sel 0;
#X msg 180 120 1;
#X msg 237 119 0;
#X obj 129 211 del 300;
#X connect 1 0 2 0;
#X connect 4 0 8 0;
#X connect 5 0 3 0;
#X connect 6 0 1 0;
#X connect 7 0 8 0;
#X connect 8 0 10 0;
#X connect 8 1 9 1;
#X connect 9 0 5 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 11 0 14 0;
#X connect 12 0 10 1;
#X connect 13 0 10 1;
#X connect 14 0 13 0;
#X connect 14 0 9 0;
#X restore 94 337 pd loc&precess;
#N canvas 0 0 600 400 setlocprecess 0;
#X obj 203 97 inlet;
#X obj 86 94 inlet;
#X obj 199 124 s speed;
#X obj 87 124 s location;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X restore 94 397 pd setlocprecess;
#X msg 44 349 0;
#X obj 618 212 adc~;
#X obj 324 404 s transpo;
#X obj 321 317 r transpo;
#X msg 321 347 set \$1;
#X msg 491 339 \; location 0 \; speed 200;
#X msg 218 215 \; insamp read16 ../sound/vocal.aiff 62 b;
#N canvas 138 111 767 761 hanning-window 0;
#X obj 108 242 phasor~;
#X obj 108 275 cos~;
#X obj 27 386 tabwrite~ hanning;
#X obj 35 297 -~;
#X obj 33 257 sig~ 1;
#X msg 44 212 0;
#X text 166 16 CALCULATE HANNING;
#X text 166 32 WINDOW TABLE;
#X graph graph1 0 -1 4096 1 323 631 723 331;
#X array hanning 4096 float;
#X pop;
#X obj 109 201 sig~;
#X text 206 174 sample rate / window size;
#X msg 27 169 bang;
#X obj 78 316 sig~ 0.5;
#X obj 58 353 *~;
#X obj 110 94 samplerate~;
#X obj 29 27 r window-size;
#X obj 29 62 t b f;
#X msg 323 643 \; hanning resize 4096;
#X obj 109 155 /;
#X connect 0 0 1 0;
#X connect 1 0 3 1;
#X connect 3 0 13 0;
#X connect 4 0 3 0;
#X connect 5 0 0 1;
#X connect 9 0 0 0;
#X connect 11 0 2 0;
#X connect 11 0 5 0;
#X connect 12 0 13 1;
#X connect 13 0 2 0;
#X connect 14 0 18 0;
#X connect 15 0 16 0;
#X connect 16 0 14 0;
#X connect 16 0 11 0;
#X connect 16 1 18 1;
#X connect 18 0 9 0;
#X restore 498 592 pd hanning-window;
#X msg 25 183 \; window-size 2048 \; transpo 0 \; pd dsp 1;
#X floatatom 691 80;
#N canvas 194 37 397 591 output 0;
#X obj 73 225 t b;
#X obj 73 169 f;
#X obj 73 113 inlet;
#X text 79 89 mute;
#X obj 73 253 f;
#X msg 149 271 0;
#X msg 73 141 bang;
#X obj 73 197 moses 1;
#X obj 149 243 t b f;
#X obj 107 490 outlet;
#X msg 107 462 set \$1;
#X obj 206 181 moses 1;
#X obj 249 493 dbtorms;
#X obj 249 521 pack 0 100;
#X obj 206 153 r master-lvl;
#X obj 107 424 r master-lvl;
#X obj 92 317 s master-lvl;
#X obj 249 549 s master-amp;
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 4 0 16 0;
#X connect 5 0 16 0;
#X connect 6 0 1 0;
#X connect 7 0 0 0;
#X connect 7 1 8 0;
#X connect 8 0 5 0;
#X connect 10 0 9 0;
#X connect 11 1 4 1;
#X connect 12 0 13 0;
#X connect 13 0 17 0;
#X connect 14 0 1 1;
#X connect 14 0 11 0;
#X connect 15 0 10 0;
#X connect 15 0 12 0;
#X restore 691 52 pd output;
#X msg 691 24 mute;
#X text 734 71 MASTER;
#X text 733 87 LEVEL ;
#X obj 691 108 s master-lvl;
#X text 36 161 click here first;
#X text 306 9 PHASE VOCODER;
#X obj 95 595 line~;
#X obj 95 567 r master-amp;
#X text 126 41 This is a Fourier-based analysis/resynthesis tool.;
#X text 53 277 set location;
#X text 52 293 and stop;
#X text 52 310 precession;
#X text 190 276 precession;
#X text 189 294 speed in;
#X text 189 311 hundredths;
#X text 319 268 transposition;
#X text 320 289 in cents;
#X text 570 286 examples;
#X text 497 315 contraction;
#X text 631 314 expansion;
#X msg 618 341 \; location 0 \; speed 10;
#X text 124 68 You can move forward or backward in the sample \, or "freeze" at any pointYou can move forward or backward in the sample \, or "freeze" at any point using the "precession" and "location" controls. Transposition is in hundredths of a half-tone.;
#X connect 0 0 15 0;
#X connect 2 0 1 0;
#X connect 3 0 12 1;
#X connect 4 0 12 0;
#X connect 5 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 6 0;
#X connect 10 0 6 1;
#X connect 11 0 4 0;
#X connect 11 1 3 0;
#X connect 13 0 4 0;
#X connect 14 0 1 0;
#X connect 16 0 17 0;
#X connect 17 0 0 0;
#X connect 22 0 27 0;
#X connect 23 0 22 0;
#X connect 24 0 23 0;
#X connect 30 0 10 1;
#X connect 31 0 30 0;
