#N canvas 58 -2 1028 898 10;
#X floatatom 840 125;
#N canvas 516 98 663 557 boo 0;
#X obj 113 154 outlet;
#X msg 112 114 set \$1;
#X obj 113 81 r osc-amp;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X restore 840 96 pd;
#X obj 840 154 s osc-amp;
#X obj 230 785 pack 0 100;
#X obj 230 824 line~;
#X obj 230 756 dbtorms;
#X obj 232 861 *~;
#X floatatom 880 371;
#X msg 723 435 0;
#X floatatom 799 371;
#X floatatom 896 427;
#X obj 117 668 pack 0 100;
#X obj 117 706 line~;
#X obj 117 639 dbtorms;
#X obj 119 773 *~;
#X obj 219 593 phasor~;
#X obj 219 557 sig~ 1;
#X obj 258 614 sig~ 44100;
#X obj 219 622 *~;
#X obj 258 643 sig~ 1;
#X obj 219 651 +~;
#X obj 217 688 tabread4~ array5;
#X floatatom 735 125;
#N canvas 516 98 663 555 boo 0;
#X obj 113 154 outlet;
#X msg 112 114 set \$1;
#X obj 113 81 r grain-amp;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X restore 735 96 pd;
#N canvas 402 288 790 482 analysis 0;
#X obj 315 64 r snapshot;
#X obj 88 405 print;
#X obj 152 220 t b b b;
#X obj 29 270 s done-analysis;
#X obj 298 213 s start-analysis;
#X obj 230 373 s found-peak;
#X obj 153 376 r loud;
#X obj 90 375 spigot;
#X msg 197 144 1;
#X obj 45 141 r fft-done;
#X obj 45 184 spigot;
#X msg 157 145 0;
#X obj 317 120 del 0.01;
#X msg 316 95 bang;
#X text 262 147 Wait for the next FFT to come by before doing the peak search.;
#X obj 487 252 r errthresh;
#X msg 490 313 errthresh \$1;
#X floatatom 487 284;
#X obj 303 247 r window-size;
#X obj 241 271 f;
#X msg 232 302 \$1 fft-real fft-imag 10;
#X obj 231 330 pique;
#X connect 0 0 13 0;
#X connect 2 0 3 0;
#X connect 2 1 19 0;
#X connect 2 2 4 0;
#X connect 2 2 11 0;
#X connect 6 0 7 1;
#X connect 7 0 1 0;
#X connect 8 0 10 1;
#X connect 9 0 10 0;
#X connect 10 0 2 0;
#X connect 11 0 10 1;
#X connect 12 0 8 0;
#X connect 13 0 12 0;
#X connect 15 0 17 0;
#X connect 16 0 21 0;
#X connect 17 0 16 0;
#X connect 18 0 19 1;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 5 0;
#X connect 21 0 7 0;
#X restore 403 477 pd analysis;
#N canvas 91 401 600 394 peak-template 0;
#X obj 263 51 field x float;
#X obj 262 90 field y float;
#X obj 261 130 field amp float;
#X obj 113 281 polygon 3 3 0 0 0 amp;
#X obj 262 168 field ampreal float;
#X obj 263 200 field ampimag float;
#X obj 261 232 field used float;
#X restore 403 535 pd peak-template;
#N canvas 0 0 600 390 peak-list 0;
#X restore 403 564 pd peak-list;
#X msg 288 363 \; array5 read16 ../sound/bell.aiff 62 b;
#X floatatom 151 335;
#X obj 151 364 s loud;
#N canvas 23 72 810 630 trace-list 1;
#X restore 403 622 pd trace-list;
#N canvas 141 62 600 398 trace-template 0;
#X obj 334 51 field x float;
#X obj 335 80 field y float;
#X obj 335 110 field bazoo array point-template;
#X obj 299 291 plot bazoo 0 1 0 500 5;
#X text 121 178 This template describes a pitch/amplitude trace. The array "bazoo" holds the actual points. In this template \, y is always 0 and x is the starting location in pixels. THere are 5 pixels per point.;
#X obj 335 137 field voiceno float;
#X restore 403 651 pd trace-template;
#N canvas 296 428 600 400 point-template 0;
#X obj 326 58 field y float;
#X obj 326 88 field amp float;
#X text 113 156 This template describes a single point on a pitch trace (cf. trace-template w describes the trace itself.);
#X text 113 203 "y" is the field that is shown on the graph \; it's - 4 * pitch. You also get an "amp" field in dB \, w* you can't see as a plot (yet).;
#X restore 403 680 pd point-template;
#X msg 525 773 bang;
#X obj 15 622 pack 0 100;
#X obj 15 660 line~;
#X obj 15 593 dbtorms;
#X floatatom 636 125;
#N canvas 194 37 730 722 output 0;
#X obj 324 108 t b f;
#X obj 314 143 +;
#X obj 566 296 f;
#X obj 584 236 f;
#X obj 394 300 f;
#X obj 91 256 t b;
#X obj 90 181 f;
#X obj 78 83 inlet;
#X text 86 54 mute;
#X obj 91 287 f;
#X msg 258 218 0;
#X msg 81 120 bang;
#X obj 91 222 moses 1;
#X obj 254 98 t b f;
#X obj 244 133 +;
#X obj 199 39 r loop-amp;
#X obj 435 37 r osc-amp;
#X obj 92 337 s loop-amp;
#X obj 394 336 s osc-amp;
#X obj 650 179 print;
#X obj 205 211 f;
#X obj 412 240 f;
#X obj 247 172 t b b;
#X obj 607 33 r grain-amp;
#X obj 567 332 s grain-amp;
#X connect 0 0 1 0;
#X connect 0 1 1 1;
#X connect 1 0 6 1;
#X connect 2 0 24 0;
#X connect 3 0 2 1;
#X connect 4 0 18 0;
#X connect 5 0 9 0;
#X connect 5 0 4 0;
#X connect 5 0 2 0;
#X connect 6 0 12 0;
#X connect 7 0 11 0;
#X connect 9 0 17 0;
#X connect 10 0 17 0;
#X connect 10 0 18 0;
#X connect 10 0 24 0;
#X connect 11 0 6 0;
#X connect 12 0 5 0;
#X connect 12 1 22 0;
#X connect 13 0 14 0;
#X connect 13 1 14 1;
#X connect 14 0 1 0;
#X connect 15 0 14 0;
#X connect 15 0 20 1;
#X connect 16 0 13 0;
#X connect 16 0 21 1;
#X connect 20 0 9 1;
#X connect 21 0 4 1;
#X connect 22 0 10 0;
#X connect 22 1 20 0;
#X connect 22 1 21 0;
#X connect 22 1 3 0;
#X connect 23 0 3 1;
#X connect 23 0 0 0;
#X restore 914 118 pd output;
#N canvas 516 98 663 559 /SUBPATCH/ 0;
#X obj 113 154 outlet;
#X msg 112 114 set \$1;
#X obj 113 81 r loop-amp;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X restore 636 96 pd;
#X msg 700 833 \; array5 resize 44102;
#N canvas 429 224 673 521 fft 0;
#X floatatom 357 355;
#X obj 491 231 r sample-rate;
#X obj 491 260 t b f;
#X obj 278 301 r window-size;
#X obj 224 328 sig~;
#X obj 288 67 r sample-rate;
#X obj 260 36 r window-size;
#X obj 288 96 t b f;
#X obj 261 123 /;
#X obj 314 276 print~;
#X msg 313 243 bang;
#X obj 187 147 bang~;
#X obj 186 250 line~;
#X obj 261 149 * 1000;
#X text 318 149 window size (msec);
#X obj 182 403 rfft~;
#X obj 182 491 tabsend~ fft-real;
#X obj 215 463 tabsend~ fft-imag;
#X obj 186 301 *~;
#X obj 225 297 sig~;
#X obj 185 332 +~;
#X obj 465 206 r location;
#X obj 464 288 *;
#X obj 465 313 * 0.001;
#X text 531 313 location (samples);
#X obj 186 185 f;
#X msg 186 217 0 \, 1 \$1;
#X obj 126 295 *~;
#X obj 125 320 -~;
#X obj 89 430 *~;
#X obj 92 460 outlet~;
#X floatatom 481 368;
#X obj 184 375 tabread4~ array5;
#X obj 59 182 s fft-done;
#X obj 73 45 block~ 2048 1;
#X connect 1 0 2 0;
#X connect 2 0 22 0;
#X connect 2 1 22 1;
#X connect 3 0 19 0;
#X connect 3 0 0 0;
#X connect 4 0 20 1;
#X connect 5 0 7 0;
#X connect 6 0 8 0;
#X connect 7 0 8 0;
#X connect 7 1 8 1;
#X connect 8 0 13 0;
#X connect 10 0 9 0;
#X connect 11 0 25 0;
#X connect 11 0 33 0;
#X connect 12 0 27 0;
#X connect 12 0 18 0;
#X connect 12 0 27 1;
#X connect 12 0 28 1;
#X connect 13 0 25 1;
#X connect 15 0 16 0;
#X connect 15 1 17 0;
#X connect 18 0 20 0;
#X connect 19 0 18 1;
#X connect 20 0 32 0;
#X connect 21 0 22 0;
#X connect 22 0 23 0;
#X connect 23 0 4 0;
#X connect 23 0 31 0;
#X connect 25 0 26 0;
#X connect 26 0 12 0;
#X connect 27 0 28 0;
#X connect 28 0 29 0;
#X connect 29 0 30 0;
#X connect 32 0 15 0;
#X connect 32 0 29 1;
#X connect 32 0 9 0;
#X restore 33 694 pd fft;
#X graph graph1 0 -1 44102 1 219 342 619 42;
#X array array5 44102 float;
#X pop;
#X obj 17 727 *~;
#X obj 18 800 hip~ 5;
#X obj 18 849 dac~;
#X obj 533 806 adc~;
#X obj 521 840 tabwrite~ array5;
#X obj 636 154 s loop-amp;
#X msg 914 89 mute;
#X text 35 37 click here first;
#X text 518 749 live sample;
#X text 695 744 (change this and send;
#X text 695 773 it if you want to change;
#X text 695 802 the length of the sample);
#X text 714 55 AMPLITUDES;
#N canvas 196 12 1141 895 make-trace 0;
#X obj 205 315 * -0.33333;
#X obj 100 308 * 10;
#X obj 130 195 pointer;
#X msg 130 165 next;
#X obj 130 138 until;
#X obj 426 192 pointer;
#X msg 427 154 next;
#X obj 220 472 unpack;
#X obj 280 474 s amp;
#X obj 312 540 s frequency;
#X obj 330 516 s pitch;
#X obj 276 536 f 0;
#X obj 220 497 t b b b b f;
#X obj 858 190 pointer;
#X msg 858 165 traverse trace-list \, bang;
#X obj 817 860 setsize trace-template bazoo;
#X obj 817 735 random 200;
#X obj 817 760 + 100;
#X obj 941 752 pointer;
#X msg 941 727 traverse trace-list \, bang;
#X obj 240 760 pointer;
#X floatatom 391 749;
#X floatatom 326 786;
#X msg 226 727 bang;
#X floatatom 118 658;
#X floatatom 44 727;
#X floatatom 168 843;
#X floatatom 567 795;
#X floatatom 391 699;
#X floatatom 733 730;
#X obj 528 663 pointer;
#X msg 559 639 next;
#X floatatom 585 732;
#X msg 916 84 \; trace-list clear;
#X obj 567 770 getsize trace-template bazoo;
#X msg 528 615 traverse trace-list \, next;
#X obj 140 804 get point-template y;
#X obj 44 762 set point-template y;
#X obj 111 695 element trace-template bazoo;
#X obj 326 828 setsize trace-template bazoo;
#X obj 391 724 set trace-template x;
#X obj 391 774 set trace-template y;
#X msg 817 710 bang;
#X obj 817 785 append trace-template x;
#X obj 570 698 get trace-template x y;
#X obj 817 810 t b p;
#X msg 817 835 5;
#X obj 897 133 s clear-traces;
#X obj 860 221 s last-in-list;
#X msg 857 61 bang;
#X obj 857 86 t b b;
#X obj 818 223 f 0;
#X obj 817 251 s nframe;
#X obj 488 481 r nframe;
#X obj 472 508 f;
#X obj 472 533 + 1;
#X obj 472 558 s nframe;
#X obj 472 423 r done-frame;
#X obj 480 450 s done-adding-traces;
#X obj 21 441 r component;
#X obj 21 466 unpack;
#X obj 80 473 s amp;
#X obj 115 529 s frequency;
#X obj 131 506 s pitch;
#X obj 77 554 s added-to-trace;
#X obj 77 529 f 0;
#X obj 69 583 s add-to-trace;
#X obj 21 491 t b b b b f;
#X obj 857 36 r clear-all;
#X obj 220 444 r component2;
#X obj 276 561 s started-new-trace;
#X obj 265 591 s start-new-trace;
#X obj 390 58 r done-analysis;
#X obj 390 88 t b b b b;
#X obj 322 251 r added-to-trace;
#X msg 532 158 traverse peak-list;
#X obj 427 127 until;
#X obj 502 246 get peak-template x amp;
#X obj 607 279 * -0.33333;
#X obj 502 272 * 10;
#X obj 502 300 pack;
#X obj 502 323 s component;
#X obj 131 482 ftom;
#X obj 426 221 t b p p;
#X obj 281 280 set peak-template used;
#X obj 284 251 f;
#X obj 331 491 ftom;
#X msg 193 44 \; done-frame bang;
#X obj 23 254 get peak-template used x amp;
#X obj 39 337 pack 0 0 0;
#X obj 39 364 route 0;
#X obj 38 389 s component2;
#X obj 603 372 print x1;
#X obj 248 395 print x2;
#X obj 799 365 add-trace.pd 1;
#X obj 800 391 add-trace.pd 2;
#X obj 800 416 add-trace.pd 3;
#X obj 799 442 add-trace.pd 4;
#X obj 800 468 add-trace.pd 5;
#X obj 800 493 add-trace.pd 6;
#X obj 800 519 add-trace.pd 7;
#X obj 801 545 add-trace.pd 8;
#X obj 801 570 add-trace.pd 9;
#X obj 801 596 add-trace.pd 10;
#X connect 0 0 89 2;
#X connect 1 0 89 1;
#X connect 2 0 88 0;
#X connect 2 1 4 1;
#X connect 3 0 2 0;
#X connect 4 0 3 0;
#X connect 5 0 83 0;
#X connect 5 1 76 1;
#X connect 6 0 5 0;
#X connect 7 0 12 0;
#X connect 7 1 8 0;
#X connect 11 0 70 0;
#X connect 12 2 71 0;
#X connect 12 3 11 0;
#X connect 12 4 86 0;
#X connect 12 4 9 0;
#X connect 13 0 48 0;
#X connect 14 0 13 0;
#X connect 16 0 17 0;
#X connect 17 0 43 0;
#X connect 18 0 43 1;
#X connect 19 0 18 0;
#X connect 20 0 36 0;
#X connect 21 0 41 0;
#X connect 22 0 39 0;
#X connect 23 0 20 0;
#X connect 24 0 38 0;
#X connect 25 0 37 0;
#X connect 28 0 40 0;
#X connect 30 0 39 1;
#X connect 30 0 40 1;
#X connect 30 0 41 1;
#X connect 30 0 38 1;
#X connect 30 0 44 0;
#X connect 30 0 34 0;
#X connect 31 0 30 0;
#X connect 34 0 27 0;
#X connect 35 0 30 0;
#X connect 36 0 26 0;
#X connect 38 0 20 0;
#X connect 38 0 37 1;
#X connect 42 0 16 0;
#X connect 43 0 45 0;
#X connect 44 0 32 0;
#X connect 44 1 29 0;
#X connect 45 0 46 0;
#X connect 45 1 15 1;
#X connect 46 0 15 0;
#X connect 49 0 50 0;
#X connect 50 0 14 0;
#X connect 50 0 51 0;
#X connect 50 1 33 0;
#X connect 50 1 47 0;
#X connect 51 0 52 0;
#X connect 53 0 54 1;
#X connect 54 0 55 0;
#X connect 55 0 56 0;
#X connect 57 0 54 0;
#X connect 57 0 58 0;
#X connect 59 0 60 0;
#X connect 60 0 67 0;
#X connect 60 1 61 0;
#X connect 65 0 64 0;
#X connect 67 2 66 0;
#X connect 67 3 65 0;
#X connect 67 4 82 0;
#X connect 67 4 62 0;
#X connect 68 0 49 0;
#X connect 69 0 7 0;
#X connect 72 0 73 0;
#X connect 73 0 87 0;
#X connect 73 1 4 0;
#X connect 73 2 76 0;
#X connect 73 3 75 0;
#X connect 74 0 85 1;
#X connect 75 0 5 0;
#X connect 75 0 2 0;
#X connect 76 0 6 0;
#X connect 77 0 79 0;
#X connect 77 1 78 0;
#X connect 78 0 80 1;
#X connect 79 0 80 0;
#X connect 80 0 81 0;
#X connect 82 0 63 0;
#X connect 83 0 85 0;
#X connect 83 1 84 1;
#X connect 83 2 77 0;
#X connect 85 0 84 0;
#X connect 86 0 10 0;
#X connect 88 0 89 0;
#X connect 88 1 1 0;
#X connect 88 2 0 0;
#X connect 89 0 90 0;
#X connect 90 0 91 0;
#X restore 403 593 pd make-trace;
#X floatatom 33 271;
#N canvas 0 0 955 721 arrays 0;
#X msg 43 289 \; fft-real resize 4096 \; fft-imag resize 4096;
#X graph graph1 0 -1 4096 1 475 359 875 59;
#X array fft-real 4096 float;
#X pop;
#X graph graph2 0 -1 4096 1 460 679 860 379;
#X array fft-imag 4096 float;
#X pop;
#X restore 403 738 pd arrays;
#X obj 33 300 s location;
#X msg 20 398 \; clear-all bang;
#X obj 117 610 r loop-amp;
#X obj 799 462 f;
#X obj 33 213 r location;
#X msg 33 242 set \$1;
#X obj 843 462 +;
#X obj 799 491 moses 900;
#X msg 753 520 0;
#X msg 751 403 1;
#X msg 799 520 \; location \$1 \; snapshot bang;
#X msg 708 313 bang \; location 0 \; clear-all bang;
#X floatatom 708 486;
#X obj 708 371 t b b;
#X obj 799 400 metro 300;
#X obj 896 398 r incr;
#X obj 15 564 r grain-amp;
#X obj 230 727 r osc-amp;
#X obj 298 849 catch~ osc-sum;
#N canvas 327 84 980 887 osc-bank 0;
#X obj 342 618 osc-voice.pd;
#X obj 319 645 osc-voice.pd;
#X obj 296 673 osc-voice.pd;
#X obj 273 700 osc-voice.pd;
#X obj 250 728 osc-voice.pd;
#X obj 227 754 osc-voice.pd;
#X obj 204 782 osc-voice.pd;
#X obj 181 809 osc-voice.pd;
#X obj 158 837 osc-voice.pd;
#X obj 136 586 route 1 2 3 4 5 6 7 8 9 10;
#X obj 136 863 osc-voice.pd;
#X floatatom 169 286;
#X floatatom 237 286;
#X obj 468 806 print try-voice;
#X msg 415 384 0;
#X obj 800 698 pointer;
#X floatatom 932 596;
#X obj 684 502 pointer;
#X msg 603 701 next;
#X floatatom 685 599;
#X msg 683 412 traverse trace-list \, next;
#X obj 254 159 pointer;
#X floatatom 405 148;
#X floatatom 340 185;
#X msg 240 126 bang;
#X floatatom 132 57;
#X floatatom 58 126;
#X floatatom 182 242;
#X floatatom 600 196;
#X floatatom 405 98;
#X floatatom 747 129;
#X obj 607 62 pointer;
#X msg 638 38 next;
#X floatatom 599 131;
#X obj 600 171 getsize trace-template bazoo;
#X msg 607 14 traverse trace-list \, next;
#X obj 154 203 get point-template y;
#X obj 58 161 set point-template y;
#X obj 125 94 element trace-template bazoo;
#X obj 340 227 setsize trace-template bazoo;
#X obj 405 123 set trace-template x;
#X obj 405 173 set trace-template y;
#X obj 584 97 get trace-template x y;
#X floatatom 576 446;
#X msg 576 412 1;
#X msg 620 411 0;
#X obj 685 644 <;
#X obj 685 568 get trace-template x voiceno;
#X obj 685 534 t p p;
#X obj 431 482 until;
#X obj 682 333 r start-resynth;
#X obj 687 364 t b b;
#X obj 554 504 f;
#X obj 554 532 sel 0 1;
#X obj 734 623 r synth-index;
#X obj 683 793 pack f p;
#X obj 684 671 sel 0 1;
#X obj 336 328 r step-resynth;
#X obj 416 412 f;
#X obj 416 440 s synth-index;
#X msg 11 337 \; start-resynth bang;
#X msg 169 337 \; step-resynth bang;
#X obj 696 857 print;
#X obj 698 747 f;
#X obj 460 413 + 5;
#X obj 839 745 print try-voice;
#X obj 683 700 t b b b;
#X obj 336 360 t b b b;
#X obj 309 430 s osc-tick;
#X obj 168 314 metro 100;
#X msg 17 381 \; osc-stop bang;
#X connect 9 0 10 0;
#X connect 9 1 8 0;
#X connect 9 2 7 0;
#X connect 9 3 6 0;
#X connect 9 4 5 0;
#X connect 9 5 4 0;
#X connect 9 6 3 0;
#X connect 9 7 2 0;
#X connect 9 8 1 0;
#X connect 9 9 0 0;
#X connect 11 0 69 0;
#X connect 12 0 69 1;
#X connect 14 0 58 0;
#X connect 15 0 55 1;
#X connect 17 0 48 0;
#X connect 17 1 45 0;
#X connect 17 1 49 1;
#X connect 18 0 17 0;
#X connect 19 0 46 0;
#X connect 20 0 17 0;
#X connect 21 0 36 0;
#X connect 22 0 41 0;
#X connect 23 0 39 0;
#X connect 24 0 21 0;
#X connect 25 0 38 0;
#X connect 26 0 37 0;
#X connect 29 0 40 0;
#X connect 31 0 39 1;
#X connect 31 0 40 1;
#X connect 31 0 41 1;
#X connect 31 0 38 1;
#X connect 31 0 42 0;
#X connect 31 0 34 0;
#X connect 32 0 31 0;
#X connect 34 0 28 0;
#X connect 35 0 31 0;
#X connect 36 0 27 0;
#X connect 38 0 21 0;
#X connect 38 0 37 1;
#X connect 42 0 33 0;
#X connect 42 1 30 0;
#X connect 43 0 52 1;
#X connect 44 0 43 0;
#X connect 45 0 43 0;
#X connect 46 0 56 0;
#X connect 47 0 19 0;
#X connect 47 1 63 1;
#X connect 48 0 47 0;
#X connect 48 1 15 1;
#X connect 49 0 52 0;
#X connect 50 0 51 0;
#X connect 51 0 20 0;
#X connect 51 1 44 0;
#X connect 51 1 14 0;
#X connect 52 0 53 0;
#X connect 53 0 49 1;
#X connect 53 1 19 0;
#X connect 54 0 46 1;
#X connect 55 0 9 0;
#X connect 56 0 49 1;
#X connect 56 1 66 0;
#X connect 57 0 67 0;
#X connect 58 0 59 0;
#X connect 58 0 64 0;
#X connect 63 0 55 0;
#X connect 64 0 58 1;
#X connect 66 0 18 0;
#X connect 66 1 63 0;
#X connect 66 2 15 0;
#X connect 67 0 68 0;
#X connect 67 1 49 0;
#X connect 67 2 58 0;
#X connect 69 0 61 0;
#X restore 403 709 pd osc-bank;
#X obj 735 154 s grain-amp;
#X msg 286 413 \; array5 read16 ../sound/vocal.aiff 62 b;
#N canvas 219 66 884 395 save-list 0;
#X floatatom 835 365;
#X floatatom 745 363;
#X floatatom 659 359;
#X floatatom 569 357;
#X obj 478 295 pointer;
#X obj 337 173 pointer;
#X msg 336 143 traverse peak-list \, bang;
#X msg 360 67 bang;
#X obj 167 286 rmstodb;
#X obj 12 287 * 0.1;
#X obj 166 315 * -3;
#X msg 391 98 \; peak-list clear;
#X floatatom 489 353;
#X obj 335 38 r start-analysis;
#X obj 336 101 t b b;
#X msg 480 237 traverse peak-list \, next;
#X msg 501 265 next;
#X obj 473 325 get peak-template x y amp ampreal ampimag;
#X obj 10 345 append peak-template x y amp ampreal ampimag;
#X obj 137 197 r found-peak;
#X obj 138 230 unpack 0 0 0 0 0;
#X msg 89 287 330;
#X connect 4 0 17 0;
#X connect 5 0 18 5;
#X connect 6 0 5 0;
#X connect 7 0 14 0;
#X connect 8 0 10 0;
#X connect 9 0 18 0;
#X connect 10 0 18 2;
#X connect 13 0 14 0;
#X connect 14 0 6 0;
#X connect 14 1 11 0;
#X connect 15 0 4 0;
#X connect 16 0 4 0;
#X connect 17 0 12 0;
#X connect 17 1 3 0;
#X connect 17 2 2 0;
#X connect 17 3 1 0;
#X connect 17 4 0 0;
#X connect 19 0 20 0;
#X connect 20 1 9 0;
#X connect 20 2 21 0;
#X connect 20 2 8 0;
#X connect 20 3 18 3;
#X connect 20 4 18 4;
#X connect 21 0 18 1;
#X restore 403 506 pd save-list;
#X msg 24 61 \; pd dsp 1 \; window-size 2048 \; sample-rate 44100 \; f-threshold 40 \; incr 10 \; clear-all bang;
#X msg 19 344 \; snapshot bang;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 3 0;
#X connect 6 0 44 0;
#X connect 7 0 73 1;
#X connect 8 0 62 1;
#X connect 9 0 73 0;
#X connect 10 0 65 1;
#X connect 11 0 12 0;
#X connect 12 0 14 0;
#X connect 13 0 11 0;
#X connect 14 0 44 0;
#X connect 15 0 18 0;
#X connect 16 0 15 0;
#X connect 17 0 18 1;
#X connect 18 0 20 0;
#X connect 19 0 20 1;
#X connect 20 0 21 0;
#X connect 21 0 14 1;
#X connect 22 0 79 0;
#X connect 23 0 22 0;
#X connect 28 0 29 0;
#X connect 33 0 47 0;
#X connect 34 0 35 0;
#X connect 35 0 43 0;
#X connect 36 0 34 0;
#X connect 37 0 48 0;
#X connect 39 0 37 0;
#X connect 41 0 43 1;
#X connect 43 0 44 0;
#X connect 44 0 45 0;
#X connect 44 0 45 1;
#X connect 46 0 47 0;
#X connect 49 0 38 0;
#X connect 57 0 59 0;
#X connect 61 0 13 0;
#X connect 62 0 65 0;
#X connect 62 0 66 0;
#X connect 62 0 71 0;
#X connect 63 0 64 0;
#X connect 64 0 57 0;
#X connect 65 0 62 1;
#X connect 66 0 69 0;
#X connect 66 1 67 0;
#X connect 67 0 9 0;
#X connect 68 0 9 0;
#X connect 70 0 72 0;
#X connect 72 0 68 0;
#X connect 72 1 8 0;
#X connect 73 0 62 0;
#X connect 74 0 10 0;
#X connect 75 0 36 0;
#X connect 76 0 5 0;
#X connect 77 0 6 1;
