#N canvas 1 52 1265 635 12; #X obj 2 6 cnv 15 550 600 empty empty empty 20 12 0 14 -225152 -66577 0; #N canvas 1 52 542 397 (subpatch) 0; #X array \$0-gain 131072 float 2; #X coords 0 1 131072 -0.01 512 60 1 0 0; #X restore 11 521 graph; #X text 11 585 0 Hz; #X obj 572 427 cnv 15 550 250 empty empty empty 20 12 0 14 -203904 -66577 0; #X obj 570 8 cnv 15 550 175 empty empty empty 20 12 0 14 -261888 -66577 0; #N canvas 0 50 450 300 (subpatch) 0; #X array \$0-input-i 131072 float 2; #X coords 0 1 131072 -1 200 140 1 0 0; #X restore 914 27 graph; #X obj 575 192 cnv 15 550 225 empty empty empty 20 12 0 14 -232576 -66577 0; #X obj 679 197 bng 30 250 50 0 empty empty empty 17 7 0 10 -4034 -1 -1; #X obj 682 257 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X obj 751 492 nbx 8 20 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 -204786 -1 -1 8000 256; #X text 779 513 desired SR; #X obj 586 484 tgl 30 0 empty empty empty 17 7 0 10 -4034 -1 -1 0 1 ; #X text 579 428 play; #X text 577 447 processed; #X text 579 464 audio; #X obj 759 329 bng 30 250 50 0 empty empty empty 17 7 0 10 -4034 -1 -1; #N canvas 1 54 450 300 (subpatch) 0; #X array \$0-output 1 float 2; #X coords 0 1 1 -1 200 140 1 0 0; #X restore 914 454 graph; #X obj 761 390 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X text 753 194 Analyze & Resynthesize; #X obj 108 434 nbx 10 20 0 131072 0 0 empty empty empty 0 -8 0 10 -204786 -1 -1 0 256; #X obj 225 434 nbx 5 20 0 10000 0 0 empty empty empty 0 -8 0 10 -204786 -1 -1 0 256; #X text 109 410 center bin; #X text 223 410 width (in bins); #X obj 778 800 soundfiler; #X obj 778 633 bng 30 250 50 0 empty empty empty 17 7 0 10 -4032 -1 -1; #X text 814 639 save array to WAVE file; #X obj 955 336 nbx 10 20 0 22100 0 0 empty empty empty 0 -8 0 10 -204786 -1 -1 0 256; #N canvas 114 52 1046 635 fft-arrays 0; #N canvas 0 50 450 300 (subpatch) 0; #X array \$0-fft-r1 131072 float 2; #X coords 0 1 131072 -1 500 200 1 0 0; #X restore 12 23 graph; #N canvas 0 50 450 300 (subpatch) 0; #X array \$0-fft-i1 131072 float 2; #X coords 0 1 131072 -1 500 200 1 0 0; #X restore 12 245 graph; #X obj 441 509 r block-size; #N canvas 0 50 450 300 (subpatch) 0; #X array \$0-fft-r2 131072 float 2; #X coords 0 1 131072 -1 500 200 1 0 0; #X restore 533 23 graph; #N canvas 0 50 450 300 (subpatch) 0; #X array \$0-fft-i2 131072 float 2; #X coords 0 1 131072 -1 500 200 1 0 0; #X restore 533 245 graph; #X obj 18 558 soundfiler; #X obj 19 464 bng 30 250 50 0 empty empty empty 17 7 0 10 -4032 -1 -1; #X text 55 471 save array to WAVE file; #X obj 17 701 soundfiler; #X obj 18 605 bng 30 250 50 0 empty empty empty 17 7 0 10 -4032 -1 -1; #X text 54 611 save array to WAVE file; #X obj 441 575 array size \$0-fft-r1; #X obj 441 603 array size \$0-fft-i1; #X obj 591 576 array size \$0-fft-r2; #X obj 591 604 array size \$0-fft-i2; #X obj 18 642 f \$0; #X obj 19 503 f \$0; #X msg 19 529 write -wave -bytes 4 ./rec_audio/temp-fft-r1 \$1-fft-r1 ; #X msg 18 672 write -wave -bytes 4 ./rec_audio/temp-fft-i1 \$1-fft-i1 ; #X connect 2 0 11 0; #X connect 2 0 12 0; #X connect 2 0 13 0; #X connect 2 0 14 0; #X connect 6 0 16 0; #X connect 9 0 15 0; #X connect 15 0 18 0; #X connect 16 0 17 0; #X connect 17 0 5 0; #X connect 18 0 8 0; #X restore 988 218 pd fft-arrays; #X text 953 316 2 = 1 octave lower; #X obj 228 14 nbx 4 20 0 300 0 0 empty empty empty 0 -8 0 10 -204786 -1 -1 0 256; #X floatatom 33 284 8 0 0 0 - - -, f 8; #X floatatom 226 285 8 0 0 0 - - -, f 8; #X obj 269 38 nbx 4 20 0 50 0 0 empty empty empty 0 -8 0 10 -204786 -1 -1 0 256; #X obj 379 278 r block-size; #X obj 225 372 *; #X text 387 221 width factor; #X obj 333 220 nbx 4 20 0 1000 0 0 empty empty empty 0 -8 0 10 -204786 -1 -1 2.5 256; #X obj 225 347 f; #X msg 23 216 i found something; #X obj 300 62 nbx 4 20 -300 300 0 0 empty empty empty 0 -8 0 10 -204786 -1 -1 0 256; #N canvas 1 52 450 300 (subpatch) 0; #X array \$0-input-r 131072 float 2; #X coords 0 1 131072 -1 200 140 1 0 0; #X restore 696 25 graph; #X text 280 15 degree l; #X text 323 40 radial order n; #X text 356 63 azimuthal order m; #X obj 583 329 bng 30 250 50 0 empty empty empty 17 7 0 10 -4034 -1 -1; #X obj 586 390 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X obj 363 168 loadbang; #N canvas 664 387 450 300 error-msg 0; #X obj 103 51 inlet; #X obj 105 89 sel 0 1; #X obj 187 247 outlet; #X msg 106 150 no data found; #X obj 106 174 print ERROR; #X msg 181 128 i found something; #X obj 186 224 route list; #X obj 185 200 list prepend set; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 1 1 5 0; #X connect 3 0 4 0; #X connect 3 0 7 0; #X connect 5 0 7 0; #X connect 6 0 2 0; #X connect 7 0 6 0; #X restore 22 193 pd error-msg; #N canvas 262 234 810 452 resynth-gate 0; #X obj 258 62 inlet; #X obj 188 319 outlet; #X text 221 38 bang to analyze; #X obj 407 63 inlet; #X text 420 37 m; #X obj 368 320 outlet; #X text 187 359 posm; #X text 372 360 negm; #X obj 189 240 spigot; #X obj 368 243 spigot; #X obj 409 140 >= 0; #X obj 409 172 != 1; #X text 453 142 is positive or negative?; #X obj 289 127 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X connect 0 0 13 0; #X connect 3 0 10 0; #X connect 8 0 1 0; #X connect 9 0 5 0; #X connect 10 0 8 1; #X connect 10 0 11 0; #X connect 11 0 9 1; #X connect 13 0 8 0; #X connect 13 0 9 0; #X restore 625 309 pd resynth-gate; #X obj 759 363 fft-resynth-negm \$0; #X obj 583 363 fft-resynth-posm \$0; #X obj 679 234 fft-analysis \$0; #X obj 778 671 f \$0; #X obj 140 48 bng 30 250 50 0 empty empty empty 17 7 0 10 -4034 -1 -1; #X obj 231 92 triggerlogic; #X obj 778 697 list append; #X obj 334 247 t b b f; #X obj 35 346 f; #X msg 1139 180 \; \$1-input-r const 0 \; \$1-input-i const 0 \; \$1-fft-r1 const 0 \; \$1-fft-i1 const 0 \; \$1-output const 0; #X obj 1139 140 f \$0; #X obj 1139 107 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 593 63 nbx 5 20 0 10000 0 0 empty empty empty 0 -8 0 10 -204786 -1 -1 0 256; #X text 596 87 day number; #X text 42 26 search for modes; #X floatatom 244 219 6 0 0 0 - - -, f 6; #X obj 164 468 makegain \$0; #X obj 583 157 loadaudio \$0; #X obj 850 671 r play-SR; #X obj 751 463 r play-SR; #X msg 672 464 0; #X obj 672 439 sel 1; #X obj 672 414 < 1; #X obj 871 247 t b f; #X obj 70 375 s \$0-center-bin; #X obj 18 400 t f f; #X obj 583 113 bng 30 250 50 0 empty empty empty 17 7 0 10 -4034 -1 -1; #X obj 72 112 bng 30 250 50 0 empty empty empty 17 7 0 10 -4034 -1 -1; #X obj 237 252 r cadence; #X obj 34 316 expr $f1*$f2*$f3/1000000; #X obj 263 316 expr $f1*$f2*$f3/1000000; #X obj 586 533 arbitrarySR \$0-output; #X obj 916 598 hsl 198 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X msg 275 724 65536; #X msg 268 701 131072; #X obj 251 658 loadbang; #X msg 279 752 32768; #X obj 33 713 set-directory; #X obj 33 676 bng 30 250 50 0 empty empty empty 17 7 0 10 -4032 -1 -1; #X obj 34 738 s data-dir; #X msg 35 776 \; pd dsp 1; #X msg 35 822 \; pd dsp 0; #X text 68 613 Items that will move to outer patch eventually; #X obj 240 788 s block-size; #X msg 347 695 50; #X obj 347 727 s window-ramp; #X msg 159 709 ../data, f 10; #X obj 585 625 *~; #X obj 612 600 * 0.01; #X obj 584 770 dac~ 1 2; #X obj 612 574 nbx 10 20 0 100 0 0 empty empty empty 0 -8 0 10 -204786 -1 -1 0 256; #X text 719 575 output level (0-100); #X obj 584 742 audio_safety~; #X obj 366 759 window-gen; #X msg 393 691 44100; #X msg 448 691 22050; #X msg 505 691 11025; #X msg 477 657 8000; #X obj 477 723 s play-SR; #X msg 732 414 1; #X obj 213 846 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 156 847 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 156 912 s cadence; #X msg 156 874 60; #X msg 213 874 45; #X obj 138 816 s filestem; #X msg 156 748 mdi; #X msg 171 773 hmi; #X msg 267 819 262144; #X obj 361 862 s fileblank; #X msg 361 795 average.modes; #X obj 778 727 list append; #X obj 124 131 text-file-reader \$0; #X msg 382 828 %dd.modes; #X obj 336 134 makeoutputstring \$0; #X obj 922 698 r \$0-outstring; #X msg 363 194 2.5; #X obj 506 794 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 506 814 s mswitch; #X msg 778 761 write -wave -bytes 4 -rate \$2 ./wav_out/\$3 \$1-output ; #X text 953 298 downshift factor; #N canvas 306 156 983 501 viewspectrum 0; #N canvas 0 50 450 250 (subpatch) 0; #X array \$0-spectrum 1 float 4; #X coords 0 1 1 0 400 140 1 0 0; #X restore 503 242 graph; #X obj 332 168 until; #X obj 314 264 f; #X obj 363 198 + 1; #X obj 407 198 sel 0; #X obj 217 24 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 254 150 -1; #X obj 110 37 inlet; #X floatatom 110 68 8 0 0 0 - - -, f 8; #X obj 425 163 - 1; #X text 170 3 make spectrum; #X obj 425 26 inlet; #X floatatom 425 59 5 0 0 0 - - -, f 5; #X obj 425 106 * 2; #X obj 46 359 tabread \$0-fft-r1; #X obj 206 439 tabwrite \$0-spectrum; #X obj 130 146 -; #X obj 237 264 +; #X obj 332 126 f; #X obj 130 107 t b f; #X floatatom 201 185 8 0 0 0 - - -, f 8; #X obj 316 -3 array size \$0-spectrum; #X obj 217 46 t b b; #X obj 203 361 tabread \$0-fft-i1; #X obj 63 397 expr sqrt($f1*$f1 + $f2*$f2); #X obj 7 113 r block-size; #X obj 37 206 -; #X obj 37 166 t b f; #X obj 78 250 -; #X obj 78 218 t b f; #X obj 78 301 spigot; #X obj 146 235 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 162 263 == 0; #X obj 187 310 spigot 1; #X obj 71 39 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X obj 407 364 f \$0; #X msg 407 415 \; \$1-spectrum normalize; #X obj 407 317 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 4 4 on for negative m off for positive m, f 11; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 3 0 2 1; #X connect 3 0 15 1; #X connect 3 0 17 0; #X connect 3 0 29 0; #X connect 4 0 1 1; #X connect 5 0 22 0; #X connect 6 0 2 1; #X connect 7 0 8 0; #X connect 8 0 16 0; #X connect 9 0 4 1; #X connect 11 0 12 0; #X connect 12 0 13 0; #X connect 12 0 19 0; #X connect 13 0 9 0; #X connect 13 0 18 1; #X connect 13 0 21 0; #X connect 14 0 24 0; #X connect 16 0 17 1; #X connect 16 0 20 0; #X connect 16 0 27 0; #X connect 17 0 33 0; #X connect 18 0 1 0; #X connect 19 0 16 0; #X connect 19 1 16 1; #X connect 22 0 18 0; #X connect 22 1 6 0; #X connect 23 0 24 1; #X connect 24 0 15 0; #X connect 25 0 26 0; #X connect 26 0 28 0; #X connect 27 0 26 0; #X connect 27 1 26 1; #X connect 28 0 30 0; #X connect 29 0 28 0; #X connect 29 1 28 1; #X connect 30 0 23 0; #X connect 30 0 14 0; #X connect 31 0 30 1; #X connect 31 0 32 0; #X connect 32 0 33 1; #X connect 33 0 23 0; #X connect 33 0 14 0; #X connect 34 0 31 0; #X connect 35 0 36 0; #X connect 37 0 35 0; #X restore 392 475 pd viewspectrum; #X obj 495 906 s ndays; #X msg 495 878 72; #X msg 534 878 36; #X msg 573 877 18; #X msg 513 851 24; #X msg 555 851 12; #X connect 7 0 51 0; #X connect 9 0 80 1; #X connect 11 0 80 0; #X connect 15 0 49 0; #X connect 17 0 71 0; #X connect 19 0 65 0; #X connect 19 0 130 0; #X connect 20 0 65 1; #X connect 20 0 130 1; #X connect 24 0 52 0; #X connect 26 0 72 0; #X connect 29 0 54 1; #X connect 29 0 66 1; #X connect 29 0 121 1; #X connect 29 0 123 2; #X connect 30 0 78 0; #X connect 31 0 79 0; #X connect 32 0 54 2; #X connect 32 0 121 2; #X connect 32 0 123 4; #X connect 33 0 78 2; #X connect 33 0 79 2; #X connect 34 0 20 0; #X connect 36 0 56 0; #X connect 37 0 34 0; #X connect 39 0 48 1; #X connect 39 0 54 3; #X connect 39 0 66 2; #X connect 39 0 121 3; #X connect 39 0 123 3; #X connect 44 0 50 0; #X connect 45 0 71 0; #X connect 46 0 125 0; #X connect 47 0 38 0; #X connect 48 0 44 0; #X connect 48 1 15 0; #X connect 49 0 17 0; #X connect 49 1 108 0; #X connect 50 0 45 0; #X connect 50 1 108 0; #X connect 51 0 8 0; #X connect 51 1 76 0; #X connect 52 0 55 0; #X connect 53 0 54 0; #X connect 53 0 69 0; #X connect 53 0 123 0; #X connect 54 0 76 0; #X connect 54 1 75 0; #X connect 55 0 120 0; #X connect 56 0 57 0; #X connect 56 1 37 0; #X connect 56 2 34 1; #X connect 57 0 74 0; #X connect 59 0 58 0; #X connect 60 0 59 0; #X connect 61 0 66 3; #X connect 61 0 54 4; #X connect 61 0 121 4; #X connect 61 0 123 1; #X connect 65 0 48 0; #X connect 66 0 7 0; #X connect 67 0 55 1; #X connect 68 0 9 0; #X connect 69 0 11 0; #X connect 70 0 69 0; #X connect 71 0 70 0; #X connect 72 0 48 0; #X connect 72 1 50 1; #X connect 72 1 49 1; #X connect 74 0 19 0; #X connect 74 1 73 0; #X connect 75 0 66 0; #X connect 76 0 121 0; #X connect 77 0 78 1; #X connect 77 0 79 1; #X connect 78 0 57 0; #X connect 78 0 57 1; #X connect 79 0 37 0; #X connect 79 0 37 1; #X connect 80 0 96 0; #X connect 80 1 81 0; #X connect 82 0 92 0; #X connect 83 0 92 0; #X connect 84 0 95 0; #X connect 84 0 93 0; #X connect 84 0 106 0; #X connect 84 0 115 0; #X connect 84 0 119 0; #X connect 85 0 92 0; #X connect 86 0 88 0; #X connect 86 1 95 0; #X connect 87 0 86 0; #X connect 93 0 94 0; #X connect 95 0 86 1; #X connect 96 0 101 0; #X connect 97 0 96 1; #X connect 99 0 97 0; #X connect 101 0 98 0; #X connect 101 0 98 1; #X connect 103 0 107 0; #X connect 104 0 107 0; #X connect 105 0 107 0; #X connect 106 0 107 0; #X connect 108 0 11 0; #X connect 109 0 113 0; #X connect 109 0 117 0; #X connect 110 0 112 0; #X connect 110 0 83 0; #X connect 112 0 111 0; #X connect 113 0 111 0; #X connect 115 0 114 0; #X connect 115 0 110 0; #X connect 116 0 114 0; #X connect 116 0 109 0; #X connect 117 0 92 0; #X connect 119 0 118 0; #X connect 120 0 128 0; #X connect 121 0 47 0; #X connect 121 1 64 0; #X connect 121 2 31 0; #X connect 121 4 30 0; #X connect 122 0 118 0; #X connect 124 0 120 1; #X connect 125 0 36 0; #X connect 126 0 127 0; #X connect 128 0 23 0; #X connect 132 0 131 0; #X connect 133 0 131 0; #X connect 134 0 131 0; #X connect 135 0 131 0; #X connect 136 0 131 0;