#N canvas 589 482 423 491 10; #N canvas 237 195 461 499 stop_start 0; #X obj -743 192 metro 60000; #X obj -629 192 metro 1000; #X obj -738 323 f; #X obj -689 322 + 1; #X obj -738 381 mod 60; #X obj -625 321 f; #X obj -583 320 + 1; #X obj -852 318 f; #X obj -811 320 + 1; #X obj -625 382 mod 60; #X obj -742 435 send m; #X obj -663 438 send s; #X obj -833 434 send ms; #X obj -831 382 mod 60; #X obj -852 191 metro 1; #X obj -743 -8 r stop/start; #X msg -590 95 0; #X obj -743 125 trigger f f f b; #X obj -617 -11 r reset; #X obj -617 26 t b b; #X obj -709 53 == 1; #X obj -709 88 f; #X connect 0 0 2 0; #X connect 1 0 5 0; #X connect 2 0 3 0; #X connect 2 0 4 0; #X connect 3 0 2 1; #X connect 4 0 10 0; #X connect 5 0 6 0; #X connect 5 0 9 0; #X connect 6 0 5 1; #X connect 7 0 8 0; #X connect 7 0 13 0; #X connect 8 0 7 1; #X connect 9 0 11 0; #X connect 13 0 12 0; #X connect 14 0 7 0; #X connect 15 0 17 0; #X connect 15 0 20 0; #X connect 16 0 7 1; #X connect 16 0 2 1; #X connect 16 0 5 1; #X connect 17 0 14 0; #X connect 17 1 0 0; #X connect 17 2 1 0; #X connect 17 3 16 0; #X connect 18 0 19 0; #X connect 19 0 21 0; #X connect 19 1 16 0; #X connect 20 0 21 1; #X connect 21 0 17 0; #X restore -239 32 pd stop_start; #N canvas 90 56 1251 597 audio 1; #X obj -1949 24 adc~; #X obj -1888 281 delread~ delay1; #X obj -1950 388 +~; #X obj -2180 150 line; #X text -2130 63 fade to value 1 in 5 seconds; #X msg -2263 93 0 2000; #X text -2153 265 use as volume control \; or delay control or??; #X text -2214 93 fade to value 0 in 2 seconds; #X text -2157 106 change range (currently 1) \; to what is required \; i.e. [200 5000(; #X obj -1960 523 dac~; #X floatatom -2236 353 5 0 0 0 - - -; #X obj -2180 196 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg -2180 63 1 5000; #X obj -2184 353 s volfade; #X obj -1917 167 delwrite~ delay1 0; #X floatatom -1888 258 5 0 0 0 - - -; #X floatatom -1928 235 5 0 0 0 - - -; #X obj -1927 201 r volfade; #X floatatom -1867 330 5 0 0 0 - - -; #X obj -1888 359 *~ 0; #X obj -1949 275 *~ 0; #X obj -1349 718 line; #X obj -1432 646 delay 10000; #X msg -1432 676 0 2000; #X msg -1349 646 1 5000; #X obj -1867 302 r delvolfade; #X obj -1348 747 s delvolfade; #X text -2217 12 Mic-In-Volume-Control; #X obj -2263 32 timer_set 0 1; #N canvas 185 139 986 609 fft 0; #X obj 18 500 *~; #X obj 291 455 *~; #X obj 258 454 *~; #X obj 356 456 *~; #X obj 324 455 *~; #X obj 324 477 +~; #X obj 258 479 -~; #X obj 560 383 *~; #X obj 54 124 *~; #X obj 22 124 *~; #X obj 22 145 +~; #X obj 325 82 *~; #X obj 293 82 *~; #X obj 608 312 *~; #X obj 576 312 *~; #X obj 93 63 *~; #X obj 18 522 outlet~; #X obj 18 475 *~; #X obj 126 63 inlet~; #X obj 93 84 rfft~; #X obj 18 451 rifft~; #X obj 576 334 rsqrt~; #X obj 293 103 +~; #X obj 484 383 *~; #X obj 56 499 sig~ 0.0002; #N canvas 167 161 699 396 decision 0; #X obj 49 101 inlet~; #X obj 50 341 outlet~; #X obj 50 183 -~; #X obj 50 226 clip~ 0 1; #X obj 50 204 *~ 1e+20; #X obj 196 98 inlet~; #X text 137 213 stronger than; #X text 139 228 old one; #X obj 274 202 -~; #X obj 288 177 lrshift~ 1; #X obj 274 250 clip~ 0 1; #X obj 274 228 *~ 1e+20; #X obj 450 202 -~; #X obj 450 250 clip~ 0 1; #X obj 450 228 *~ 1e+20; #X obj 464 177 lrshift~ -1; #X obj 50 283 *~; #X obj 50 312 *~; #X text 135 199 1 if new signal; #X text 55 73 new; #X text 203 70 old; #X text 51 12 Choose whether to replace the "lod" signal with the "new" one. The "new" one must be stronger than the old one and also must be stronger than its two neighboring channels; #X text 267 283 1 if we're louder than neighbor; #X connect 0 0 2 0; #X connect 0 0 9 0; #X connect 0 0 8 0; #X connect 0 0 12 0; #X connect 0 0 15 0; #X connect 2 0 4 0; #X connect 3 0 16 0; #X connect 4 0 3 0; #X connect 5 0 2 1; #X connect 8 0 11 0; #X connect 9 0 8 1; #X connect 10 0 16 1; #X connect 11 0 10 0; #X connect 12 0 14 0; #X connect 13 0 17 1; #X connect 14 0 13 0; #X connect 15 0 12 1; #X connect 16 0 17 0; #X connect 17 0 1 0; #X restore 23 172 pd decision; #X obj 576 356 *~; #N canvas 276 481 755 363 divide-by-prev 0; #X obj 283 99 inlet~; #X obj 385 101 inlet~; #X obj 284 249 outlet~; #X obj 386 249 outlet~; #X obj 107 251 outlet~; #X obj 208 253 outlet~; #X obj 250 180 *~; #X obj 217 180 *~; #X obj 182 181 *~; #X obj 149 181 *~; #X obj 149 203 +~; #X obj 217 202 -~; #X obj 92 49 tabreceive~ \$0-last-real; #X obj 190 72 tabreceive~ \$0-last-imag; #X connect 0 0 2 0; #X connect 0 0 9 0; #X connect 0 0 6 0; #X connect 1 0 3 0; #X connect 1 0 8 0; #X connect 1 0 7 0; #X connect 6 0 11 1; #X connect 7 0 11 0; #X connect 8 0 10 1; #X connect 9 0 10 0; #X connect 10 0 4 0; #X connect 11 0 5 0; #X connect 12 0 9 1; #X connect 12 0 7 1; #X connect 13 0 8 1; #X connect 13 0 6 1; #X restore 603 192 pd divide-by-prev; #N canvas 650 183 602 327 switch 0; #X obj 19 163 inlet~; #X obj 107 99 inlet~; #X obj 169 100 inlet~; #X obj 273 97 inlet~; #X obj 333 97 inlet~; #X obj 367 185 -~; #X obj 338 231 +~; #X obj 372 229 *~; #X obj 250 182 -~; #X obj 220 228 +~; #X obj 254 228 *~; #X obj 219 278 outlet~; #X obj 338 274 outlet~; #X text 46 28 switch between two pairs of inputs. If first inlet is one \, take the left-hand pair \, otherwise the right-hand one.; #X text 15 140 switch; #X text 92 76 pass this if one; #X text 269 77 pass this if zero; #X connect 0 0 10 1; #X connect 0 0 7 1; #X connect 1 0 8 0; #X connect 2 0 5 0; #X connect 3 0 9 0; #X connect 3 0 8 1; #X connect 4 0 6 0; #X connect 4 0 5 1; #X connect 5 0 7 0; #X connect 6 0 12 0; #X connect 7 0 6 1; #X connect 8 0 10 0; #X connect 9 0 11 0; #X connect 10 0 9 1; #X restore 327 275 pd switch; #N canvas 650 183 602 327 switch 0; #X obj 19 163 inlet~; #X obj 107 99 inlet~; #X obj 169 100 inlet~; #X obj 273 97 inlet~; #X obj 333 97 inlet~; #X obj 367 185 -~; #X obj 338 231 +~; #X obj 372 229 *~; #X obj 250 182 -~; #X obj 220 228 +~; #X obj 254 228 *~; #X obj 219 278 outlet~; #X obj 338 274 outlet~; #X text 46 28 switch between two pairs of inputs. If first inlet is one \, take the left-hand pair \, otherwise the right-hand one.; #X text 15 140 switch; #X text 92 76 pass this if one; #X text 269 77 pass this if zero; #X connect 0 0 10 1; #X connect 0 0 7 1; #X connect 1 0 8 0; #X connect 2 0 5 0; #X connect 3 0 9 0; #X connect 3 0 8 1; #X connect 4 0 6 0; #X connect 4 0 5 1; #X connect 5 0 7 0; #X connect 6 0 12 0; #X connect 7 0 6 1; #X connect 8 0 10 0; #X connect 9 0 11 0; #X connect 10 0 9 1; #X restore 484 266 pd switch; #X obj 655 270 r revtime; #X obj 54 476 tabreceive~ \$0-hann; #X obj 94 35 tabreceive~ \$0-hann; #X obj 505 112 tabreceive~ \$0-inc-real; #X obj 587 134 tabreceive~ \$0-inc-imag; #X obj 752 220 tabsend~ \$0-last-imag; #X obj 702 243 tabsend~ \$0-last-real; #X obj 559 426 tabsend~ \$0-inc-imag; #X obj 484 449 tabsend~ \$0-inc-real; #X msg 665 293 set \$1; #X obj 665 317 s revtime-set; #X obj 800 483 loadbang; #X msg 800 509 \; pd dsp 1 \; window-size 4096 \; revtime 20; #X obj 800 411 r window-size; #X msg 800 433 set \$1 4; #X obj 800 455 block~; #X obj 655 341 expr 1 - 0.2/max(0.2 \, $f1); #X text 20 206 choose whether to; #X text 18 224 punch in new (amplitude \,; #X text 16 243 increment) pair; #X obj 367 26 tabreceive~ \$0-amp-real; #X obj 443 50 tabreceive~ \$0-amp-imag; #X obj 325 537 tabsend~ \$0-amp-imag; #X obj 258 560 tabsend~ \$0-amp-real; #X text 361 6 previous output amplitude \, encoding both magnitude and phase; #X text 453 87 previous phase increment (unit-magnitude complex number) ; #X obj 506 134 +~ 1e-15; #X obj 366 50 +~ 1e-15; #X text 363 482 propagate amplitudes by multiplying in the; #X text 361 499 increments \, which advance the phase and drop; #X text 365 514 magnitude according to revtime.; #X text 608 370 normalize increments between 0 and; #X text 606 388 1 according to revtime.; #X text 78 453 IFFT and output; #X connect 0 0 16 0; #X connect 1 0 6 1; #X connect 2 0 6 0; #X connect 3 0 5 1; #X connect 4 0 5 0; #X connect 5 0 52 0; #X connect 6 0 53 0; #X connect 7 0 1 0; #X connect 7 0 3 0; #X connect 7 0 37 0; #X connect 8 0 10 1; #X connect 9 0 10 0; #X connect 10 0 25 0; #X connect 11 0 22 1; #X connect 12 0 22 0; #X connect 13 0 21 0; #X connect 14 0 21 0; #X connect 15 0 19 0; #X connect 17 0 0 0; #X connect 18 0 15 1; #X connect 19 0 9 0; #X connect 19 0 9 1; #X connect 19 0 27 0; #X connect 19 0 28 1; #X connect 19 1 8 0; #X connect 19 1 8 1; #X connect 19 1 27 1; #X connect 19 1 28 2; #X connect 20 0 17 0; #X connect 21 0 26 0; #X connect 22 0 25 1; #X connect 23 0 2 0; #X connect 23 0 4 0; #X connect 23 0 38 0; #X connect 24 0 0 1; #X connect 25 0 28 0; #X connect 25 0 29 0; #X connect 26 0 23 1; #X connect 26 0 7 1; #X connect 27 0 29 1; #X connect 27 1 29 2; #X connect 27 2 36 0; #X connect 27 3 35 0; #X connect 28 0 20 0; #X connect 28 0 3 1; #X connect 28 0 2 1; #X connect 28 1 20 1; #X connect 28 1 1 1; #X connect 28 1 4 1; #X connect 29 0 14 0; #X connect 29 0 14 1; #X connect 29 0 23 0; #X connect 29 1 13 0; #X connect 29 1 13 1; #X connect 29 1 7 0; #X connect 30 0 39 0; #X connect 30 0 46 0; #X connect 31 0 17 1; #X connect 32 0 15 0; #X connect 33 0 56 0; #X connect 34 0 29 4; #X connect 39 0 40 0; #X connect 41 0 42 0; #X connect 43 0 44 0; #X connect 44 0 45 0; #X connect 46 0 26 1; #X connect 50 0 57 0; #X connect 51 0 11 0; #X connect 51 0 11 1; #X connect 51 0 28 4; #X connect 56 0 29 3; #X connect 57 0 12 0; #X connect 57 0 12 1; #X connect 57 0 28 3; #X restore -2084 493 pd fft; #N canvas 0 110 565 454 hann-window 0; #N canvas 0 22 450 300 (subpatch) 0; #X array \$0-hann 4096 float 0; #X coords 0 1 4095 0 300 100 1; #X restore 82 311 graph; #X obj 378 165 osc~; #X obj 378 190 *~ -0.5; #X obj 378 214 +~ 0.5; #X obj 331 247 tabwrite~ \$0-hann; #X obj 37 88 r window-size; #X obj 38 173 /; #X obj 127 142 samplerate~; #X obj 38 251 s window-sec; #X obj 177 204 swap; #X obj 177 228 /; #X obj 177 252 s window-hz; #X obj 49 201 * 1000; #X obj 49 228 s window-msec; #X obj 38 115 t f b f; #X msg 173 92 resize \$1; #X obj 173 116 s \$0-hann; #X obj 330 105 r window-hz; #X msg 382 130 0; #X obj 330 131 t f b; #X text 15 8 calculate Hann window table (variable window size) and constants window-hz (fundamental frequency of analysis) \, window-sec and window-msec (analysis window size in seconds and msec).; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 5 0 14 0; #X connect 6 0 8 0; #X connect 6 0 12 0; #X connect 7 0 6 1; #X connect 7 0 9 1; #X connect 9 0 10 0; #X connect 9 1 10 1; #X connect 10 0 11 0; #X connect 12 0 13 0; #X connect 14 0 6 0; #X connect 14 0 9 0; #X connect 14 1 7 0; #X connect 14 2 15 0; #X connect 15 0 16 0; #X connect 17 0 19 0; #X connect 18 0 1 1; #X connect 19 0 1 0; #X connect 19 1 4 0; #X connect 19 1 18 0; #X restore -2183 470 pd hann-window; #N canvas 52 71 774 520 tables 0; #N canvas 0 22 450 300 (subpatch) 0; #X array \$0-last-real 2048 float 0; #X coords 0 500 2048 -500 200 150 1; #X restore 103 15 graph; #N canvas 0 22 450 300 (subpatch) 0; #X array \$0-last-imag 2048 float 0; #X coords 0 500 2048 500 200 150 1; #X restore 497 6 graph; #N canvas 0 22 450 300 (subpatch) 0; #X array \$0-amp-real 2048 float 0; #X coords 0 500 2048 -500 200 150 1; #X restore 105 185 graph; #N canvas 0 22 450 300 (subpatch) 0; #X array \$0-amp-imag 2048 float 0; #X coords 0 500 2048 -500 200 150 1; #X restore 501 178 graph; #N canvas 0 22 450 300 (subpatch) 0; #X array \$0-inc-real 2048 float 0; #X coords 0 1 2048 -1 200 150 1; #X restore 105 357 graph; #N canvas 0 22 450 300 (subpatch) 0; #X array \$0-inc-imag 2048 float 0; #X coords 0 1 2048 -1 200 150 1; #X restore 503 342 graph; #X restore -2183 491 pd tables; #X text -2210 417 Reverb deactivated; #X text -1220 9 record file A; #X obj -2263 63 delay 500000; #X obj -1432 611 timer_set 5 44; #X obj -1950 87 *~ 5; #X obj -1902 473 catch~ out; #X obj -1915 133 s~ in; #X text -1358 6 play back a file; #N canvas 751 30 496 452 reverb 0; #X text -2140 38 reverb time; #X obj -1999 185 line; #X text -1949 89 fade to value 1 in 5 seconds; #X msg -2082 128 0 2000; #X text -1979 307 use as volume control \; or delay control or??; #X text -2033 128 fade to value 0 in 2 seconds; #X text -1940 146 change range (currently 1) \; to what is required \; i.e. [200 5000(; #X floatatom -2055 389 5 0 0 0 - - -; #X obj -2006 238 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 8191 1; #X text -2036 38 Reverb- Timer; #X obj -2131 2 r reverbtimefade; #X obj -2006 390 s revtime; #X text -2225 104 after left delay (19000); #X obj -2079 59 timer_set 0 5; #X msg -1999 89 3 20000; #X obj -2082 89 delay 25000; #X connect 1 0 8 0; #X connect 3 0 1 0; #X connect 8 0 7 0; #X connect 8 0 11 0; #X connect 13 0 14 0; #X connect 13 0 15 0; #X connect 14 0 1 0; #X connect 15 0 3 0; #X restore -2181 441 pd reverb; #X msg -1589 644 stop; #X obj -1670 627 readsf~; #X obj -1661 572 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text -1601 577 Play back OUTRO; #X msg -1661 604 open lostoutro.wav \, start; #X obj -1669 657 throw~ out; #X msg -1598 799 stop; #X obj -1679 782 readsf~; #X msg -1670 759 open lostintro.wav \, start; #X text -1601 732 Play back INTRO; #X obj -1637 711 timer_set 0 1; #X obj -1670 728 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj -1543 782 r stop; #X obj -1679 817 throw~ out; #X text -1220 24 arg1 and 2 start \; arg3 and 4 end \; arg5 file name ; #X obj -1589 623 r reset; #X obj -1598 778 r reset; #X text -1359 24 arg1 and arg2 \; start time \; arg3 file name; #X obj -1651 545 timer_set 1 42; #X obj -1820 196 timer_set 0 6; #X msg -1855 236 0; #X obj -1819 219 timer_set 0 12; #X obj -1958 441 freeverb~; #X msg -1839 437 roomsize \$1; #X floatatom -1817 411 5 0 0 0 - - -; #X msg -1740 387 1; #X msg -1740 343 0.5; #X msg -1741 364 0.85; #X msg -1739 321 0.2; #X obj -1828 330 r revtime; #X obj -1748 264 loadbang; #X msg -1746 291 0; #X msg -1279 196 \; pd dsp 1; #X obj -1279 171 loadbang; #X msg -1377 173 0; #X obj -1412 274 throw~ out; #X msg -1284 373 \; pd dsp 1; #X obj -1284 348 loadbang; #X msg -1382 350 0; #X obj -1423 400 reverse Tst2.wav; #X obj -1417 451 throw~ out; #X msg -1436 165 1.25; #X obj -1233 81 recorders 0 4 0 11 Tst1; #X obj -1236 112 recorders 0 11 0 16 Tst2; #X obj -1262 459 timer_set 0 16; #X msg -1447 316 0.75; #X obj -1275 427 timer_set 0 23; #X obj -1257 282 timer_set 0 22; #X obj -1270 250 timer_set 0 26; #X obj -1360 111 playbk 0 29 Tst1; #X msg -1855 212 263; #X obj -1357 80 playbk 0 33 Tst2; #X obj -1418 223 reverse Tst1.wav; #X connect 0 0 36 0; #X connect 1 0 19 0; #X connect 2 0 63 0; #X connect 2 0 63 1; #X connect 3 0 11 0; #X connect 5 0 3 0; #X connect 11 0 10 0; #X connect 11 0 13 0; #X connect 12 0 3 0; #X connect 15 0 1 0; #X connect 16 0 20 1; #X connect 17 0 16 0; #X connect 18 0 19 1; #X connect 19 0 2 0; #X connect 20 0 2 0; #X connect 21 0 26 0; #X connect 22 0 23 0; #X connect 23 0 21 0; #X connect 24 0 21 0; #X connect 25 0 18 0; #X connect 28 0 12 0; #X connect 28 0 34 0; #X connect 34 0 5 0; #X connect 35 0 22 0; #X connect 35 0 24 0; #X connect 36 0 14 0; #X connect 36 0 20 0; #X connect 36 0 38 0; #X connect 37 0 9 0; #X connect 37 0 9 1; #X connect 41 0 42 0; #X connect 42 0 46 0; #X connect 45 0 42 0; #X connect 47 0 48 0; #X connect 48 0 54 0; #X connect 49 0 48 0; #X connect 51 0 52 0; #X connect 53 0 47 0; #X connect 56 0 41 0; #X connect 57 0 47 0; #X connect 59 0 43 0; #X connect 61 0 15 0; #X connect 63 0 9 0; #X connect 63 1 9 1; #X connect 64 0 63 0; #X connect 65 0 64 0; #X connect 66 0 65 0; #X connect 67 0 65 0; #X connect 68 0 65 0; #X connect 69 0 65 0; #X connect 70 0 65 0; #X connect 71 0 72 0; #X connect 72 0 65 0; #X connect 74 0 73 0; #X connect 74 0 75 0; #X connect 75 0 93 0; #X connect 78 0 77 0; #X connect 78 0 79 0; #X connect 79 0 80 0; #X connect 80 0 81 0; #X connect 82 0 93 0; #X connect 85 0 86 0; #X connect 86 0 80 0; #X connect 87 0 79 0; #X connect 88 0 82 0; #X connect 89 0 75 0; #X connect 91 0 15 0; #X connect 93 0 76 0; #X restore -239 -8 pd audio; #X obj -236 87 nbx 5 14 -1e+37 1e+37 0 0 empty m Minutes 0 -8 0 10 -4032 -1 -1 0 256; #X obj -160 86 nbx 5 14 -1e+37 1e+37 0 0 empty s Seconds 0 -8 0 10 -4032 -1 -1 9 256; #X obj -83 87 nbx 5 14 -1e+37 1e+37 0 0 empty ms Milliseconds 0 -8 0 10 -4032 -1 -1 12 256; #X obj -232 136 hradio 15 1 0 2 stop/start empty stop/start 0 -8 0 10 -262144 -1 -1 1; #X obj -148 195 loadbang; #X obj -243 195 timer_set 4 46; #X obj 28 158 s reset; #X obj 29 135 bng 15 250 50 0 empty empty Restart 17 7 0 10 -262144 -1 -1; #X obj -95 162 s stop; #X obj -95 130 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X connect 6 0 5 0; #X connect 7 0 5 0; #X connect 9 0 8 0; #X connect 11 0 10 0;