#N canvas 585 51 799 573 12;
#X msg 385 439 0;
#X obj 42 103 dbtorms;
#X msg 514 273 \; pd dsp 1;
#X obj 42 274 line~;
#X obj 77 326 *~;
#X obj 77 356 dac~;
#X obj 42 131 pack 0 50;
#X floatatom 353 218 5 0 100 0 - \$0-lvl \$0-number-value 12;
#X obj 371 236 bng 19 250 50 0 \$0-mute-dummy-out \$0-bang mute -30
10 0 12 #dfdfdf #000000 #000000;
#X obj 175 170 inlet~;
#X obj 157 325 *~;
#X obj 95 274 hip~ 3;
#X obj 175 274 hip~ 3;
#X text 207 24 Level control abstraction \, part of 'extra' used in
many of the Pd example and help patches. The "level" and "mute" controls
show up on the parent \, calling patch., f 55;
#X obj 95 170 inlet~ fwd;
#X obj 187 200 route bang level;
#X obj 241 240 clip 0 100;
#X text 101 103 <-- convert from dB to linear units;
#X text 116 131 <-- make a ramp to avoid clicks or zipper noise;
#X obj 489 190 clip 0 100;
#X obj 489 157 r \$0-number-value;
#X msg 522 218 set \$1;
#X text 227 169 <-- audio inputs;
#X text 586 275 <-- start DSP automatically, f 13;
#X obj 385 381 != 0;
#X obj 385 355 f;
#X obj 464 399 float;
#X obj 506 324 s \$0-master-lvl;
#X obj 42 74 r \$0-master-lvl;
#X text 574 378 <-- nonzero master-lvl;
#X obj 385 528 s \$0-bang;
#X msg 563 439 label mute \, label_pos -30 10;
#X obj 563 470 s \$0-bang;
#X obj 580 407 loadbang;
#X msg 385 499 label unmute \, label_pos -44 10;
#X text 328 218 dB;
#X obj 371 267 tgl 15 0 empty \$0-tgl empty 17 7 0 10 #fcfcfc #000000
#000000 0 1;
#X obj 371 294 sel 1 0;
#X msg 492 439 set 0;
#X obj 489 356 moses 1e-30;
#X obj 385 410 sel 1 0;
#X text 583 219 <-- keep values;
#X text 614 235 within range;
#X text 179 372 MUTE logic:;
#X text 147 397 Mute only if value is nonzero. To unmute \, get previous
nonzero master-lvl, f 31;
#X obj 492 470 s \$0-tgl;
#X obj 419 470 s \$0-lvl;
#X obj 522 244 s \$0-lvl;
#X obj 241 274 s \$0-lvl;
#X connect 0 0 34 0;
#X connect 0 0 46 0;
#X connect 1 0 6 0;
#X connect 3 0 10 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 6 0 3 0;
#X connect 8 0 36 0;
#X connect 9 0 12 0;
#X connect 10 0 5 1;
#X connect 11 0 4 1;
#X connect 12 0 10 1;
#X connect 14 0 11 0;
#X connect 14 1 15 0;
#X connect 15 0 8 0;
#X connect 15 1 16 0;
#X connect 16 0 48 0;
#X connect 19 0 21 0;
#X connect 19 0 2 0;
#X connect 19 0 25 1;
#X connect 19 0 27 0;
#X connect 19 0 39 0;
#X connect 20 0 19 0;
#X connect 21 0 47 0;
#X connect 24 0 40 0;
#X connect 25 0 24 0;
#X connect 26 0 46 0;
#X connect 28 0 1 0;
#X connect 31 0 32 0;
#X connect 33 0 31 0;
#X connect 34 0 30 0;
#X connect 36 0 37 0;
#X connect 37 0 25 0;
#X connect 37 1 26 0;
#X connect 38 0 45 0;
#X connect 39 1 26 1;
#X connect 39 1 31 0;
#X connect 39 1 38 0;
#X connect 40 0 0 0;
#X connect 40 1 38 0;
#X coords 0 0 1 1 65 55 1 325 200;
