#N canvas 1012 277 466 316 10; #N canvas 0 22 470 320 drown-block 0; #X obj 178 165 drown~ 0.001 0.1 4 1; #X obj 178 195 outlet~; #X obj 178 124 inlet~; #X obj 245 123 inlet; #X obj 313 125 inlet; #X obj 371 129 inlet; #X obj 178 232 block~ 256; #X connect 0 0 1 0; #X connect 2 0 0 0; #X connect 3 0 0 1; #X connect 4 0 0 2; #X connect 5 0 0 0; #X restore 18 93 pd drown-block; #X obj 18 140 dac~; #X msg 24 256 \; pd dsp \$1; #X obj 24 233 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X floatatom 49 49 5 0 0 0 - threshold -; #X floatatom 80 65 5 0 0 0 - noise-gain -; #N canvas 730 185 462 312 sound-source 0; #X obj 127 102 osc~ 350; #X obj 127 194 outlet~; #X obj 249 107 noise~; #X obj 127 155 *~ 0.1; #X obj 249 143 *~ 0.03; #X text 58 103 signal ->; #X text 298 110 <- add noise; #X connect 0 0 3 0; #X connect 2 0 4 0; #X connect 3 0 1 0; #X connect 4 0 1 0; #X restore 18 7 pd sound-source; #N canvas 928 509 470 320 messages 0; #X obj 231 210 outlet; #N canvas 0 22 458 308 init 0; #X obj 333 21 loadbang; #X obj 333 71 unpack f f; #X obj 333 103 s drown-s1; #X obj 362 129 s drown-s2; #X msg 333 48 0.01 1; #X connect 0 0 4 0; #X connect 1 0 2 0; #X connect 1 1 3 0; #X connect 4 0 1 0; #X restore 89 104 pd init; #X obj 231 180 fftease-system; #X connect 2 0 0 0; #X restore 163 77 pd messages; #X obj 26 173 hsl 128 15 0 0.02 0 0 threshold drown-s1 threshold -2 -6 0 8 -189148 -1 -1 6800 1; #X obj 26 211 hsl 128 15 0 1 0 0 noise-gain drown-s2 noise-gain -2 -6 0 8 -189148 -1 -1 0 1; #X text 160 210 <- reduce noise here; #X text 160 172 <- threshold to block noise; #X text 103 265 threshold-based noise reduction; #X connect 0 0 1 0; #X connect 0 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 1; #X connect 5 0 0 2; #X connect 6 0 0 0; #X connect 7 0 0 3;