#N canvas 177 116 944 642 12; #N canvas 0 0 450 300 graph1 0; #X array table20 341508 float 0; #X coords 0 1.02 341507 -1.02 200 130 1; #X restore 153 439 graph; #X obj 13 425 hip~ 5; #X floatatom 87 28 0 0 0 0 - - -; #X text 126 27 <-- frequency (Hz.); #X floatatom 150 108 0 0 0 0 - - -; #X obj 50 220 +~ 1; #X obj 87 73 phasor~ 0; #X text 189 107 <-- chunk size (100ths of a second); #X obj 13 401 *~; #X obj 72 308 line~; #X floatatom 149 218 0 0 0 0 - - -; #X obj 72 284 pack 0 100; #X obj 51 356 +~; #X obj 72 332 samphold~; #X obj 74 170 samphold~; #X obj 51 196 *~; #X obj 693 109 soundfiler; #X obj 12 103 -~ 0.5; #X obj 12 127 *~ 0.5; #X obj 12 150 cos~; #X obj 51 381 tabread4~ table20; #X obj 691 54 openpanel; #X obj 683 27 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 692 85 read -resize \$1 table20; #X obj 651 363 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 759 349 hsl 128 15 0 500 0 0 empty empty empty -2 -6 0 8 -262144 -1 -1 0 1; #X obj 175 185 random 100; #X obj 271 74 random 20; #X obj 656 386 metro 1000; #X floatatom 698 161 12 0 0 0 - - -; #X text 187 219 <-- read point in 100ths of a second; #X obj 148 242 * 441; #X obj 150 133 * 441; #X obj 701 198 / 441; #X obj 702 282 / 10; #X obj 195 81 + 3; #X obj 700 240 t f f; #X obj 654 420 t b b; #N canvas 0 0 462 312 output~ 0; #X obj 365 493 t b; #X obj 365 440 f; #X obj 365 518 f; #X msg 479 517 0; #X obj 365 470 moses 1; #X obj 479 489 t b f; #X obj 445 450 moses 1; #X obj 41 100 dbtorms; #X obj 97 173 inlet~; #X msg 311 313 \; pd dsp 1; #X obj 41 173 line~; #X obj 76 245 *~; #X obj 76 275 dac~; #X obj 41 130 pack 0 50; #X text 133 149 audio in; #X text 150 467 test if less than 1 -->; #X text 116 494 if true convert to bang -->; #X text 114 98 <-- convert from dB to linear units; #X floatatom 335 222 3 0 100 0 dB - -; #X obj 362 243 bng 15 250 50 0 empty empty mute -38 7 0 12 -262144 -1 -1; #X text 130 129 <-- make a ramp to avoid clicks or zipper noise; #X obj 160 173 inlet~; #X obj 166 244 *~; #X text 385 381 MUTE logic:; #X obj 335 177 r \$0-master-lvl; #X obj 365 544 s \$0-master-lvl; #X obj 335 282 s \$0-master-out; #X obj 41 74 r \$0-master-out; #X obj 445 421 r \$0-master-out; #X text 72 13 Level control abstraction \, used in many of the Pd example patches. The "level" and "mute" controls show up on the parent \, calling patch.; #X text 78 520 previous nonzero master-lvl -->; #X text 150 424 recall previous; #X text 150 442 value of master-lvl -->; #X text 51 322 automatically start DSP -->; #X obj 97 195 hip~ 3; #X obj 159 195 hip~ 3; #X connect 0 0 2 0; #X connect 1 0 4 0; #X connect 2 0 25 0; #X connect 3 0 25 0; #X connect 4 0 0 0; #X connect 4 1 5 0; #X connect 5 0 3 0; #X connect 6 1 2 1; #X connect 7 0 13 0; #X connect 8 0 34 0; #X connect 10 0 22 0; #X connect 10 0 11 0; #X connect 11 0 12 0; #X connect 13 0 10 0; #X connect 18 0 9 0; #X connect 18 0 26 0; #X connect 19 0 1 0; #X connect 21 0 35 0; #X connect 22 0 12 1; #X connect 24 0 18 0; #X connect 27 0 7 0; #X connect 28 0 1 1; #X connect 28 0 6 0; #X connect 34 0 11 1; #X connect 35 0 22 1; #X coords 0 -1 1 1 85 60 1 100 100; #X restore 12 462 pd output~; #X connect 1 0 38 0; #X connect 1 0 38 1; #X connect 2 0 6 0; #X connect 4 0 32 0; #X connect 5 0 12 0; #X connect 6 0 13 1; #X connect 6 0 14 1; #X connect 6 0 15 0; #X connect 6 0 17 0; #X connect 8 0 1 0; #X connect 9 0 13 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 20 0; #X connect 13 0 12 1; #X connect 14 0 15 1; #X connect 15 0 5 0; #X connect 16 0 29 0; #X connect 17 0 18 0; #X connect 18 0 19 0; #X connect 19 0 8 0; #X connect 20 0 8 1; #X connect 21 0 23 0; #X connect 22 0 21 0; #X connect 23 0 16 0; #X connect 24 0 28 0; #X connect 25 0 28 1; #X connect 26 0 10 0; #X connect 27 0 35 0; #X connect 28 0 37 0; #X connect 29 0 33 0; #X connect 31 0 11 0; #X connect 32 0 14 0; #X connect 33 0 36 0; #X connect 34 0 27 1; #X connect 35 0 4 0; #X connect 36 0 34 0; #X connect 36 1 26 1; #X connect 37 0 26 0; #X connect 37 1 27 0;