#N canvas 123 5 692 625 10; #X obj 208 74 cnv 15 458 160 empty empty empty 20 12 0 14 -158119 -66577 0; #X obj 16 228 cnv 15 650 210 empty empty empty 20 12 0 14 -158119 -66577 0; #X obj 106 55 osc~; #X obj 141 40 hsl 256 12 0.001 20000 1 0 empty empty TEST 15 6 0 10 -262144 -1 -1 17900 1; #X obj 31 55 adc~; #X obj 31 179 *~ 1; #X obj 55 159 hsl 128 15 0.0001 1 1 0 empty \$0-hsl-rcv)pre pre 50 7 0 10 -66577 -228856 -262130 12700 1; #X floatatom 64 179 6 0 0 0 - - -; #X obj 31 346 *~ 1; #X obj 240 240 hsl 240 20 0.001 1 0 0 empty \$0-hsl-rcv)distortionamount DISTORTION AMOUNT 30 10 0 16 -86277 -260097 -261234 21708 1; #X obj 237 263 nbx 6 18 0.001 1 0 0 empty empty empty 0 -8 0 17 -86277 -261559 -1 0.908376 256; #X obj 31 571 dac~; #X obj 49 501 hsl 256 20 0.0001 1 1 0 empty empty post 115 9 0 13 -66577 -228856 -262130 0 1; #X floatatom 58 533 6 0 0 0 - - -; #X obj 114 283 cnv 15 85 100 empty empty empty 20 12 0 14 -133153 -66577 0; #X obj 124 309 dbtorms; #X obj 124 289 env~; #X obj 124 329 * 1.4142; #X obj 238 168 cnv 15 398 68 empty empty empty 20 12 0 14 -227357 -66577 0; #X obj 238 98 cnv 15 398 68 empty empty empty 20 12 0 14 -257591 -66577 0; #N canvas 0 0 450 300 (subpatch) 0; #X array \$0-distortion 1070 float 4; #X coords 0 1.02 1069 -1.02 400 140 1 0 0; #X restore 237 97 graph; #X obj 138 55 nbx 6 17 -1e+037 1e+037 0 0 empty empty Hz 67 9 0 10 -262144 -1 -1 133.363 256; #X obj 16 440 cnv 15 650 50 empty empty empty 20 12 0 14 -133153 -66577 0; #N canvas 450 319 497 235 tabwrite 0; #X obj 106 69 metro 600; #X obj 106 3 tgl 15 0 \$0-tgl-snd)dummy \$0-tgl-rcv)dummy tabwrite on/off -95 7 0 10 -214352 -204800 -1 1 1; #X obj 2 190 tabwrite~ \$0-distortion; #X obj 175 1 loadbang; #X msg 175 21 1; #X obj 2 69 r~ \$0-tabwrite; #X obj 2 119 *~ 1; #X obj 13 24 hsl 100 17 1 100 1 0 \$0-hsl-snd)dummy \$0-hsl-rcv)dummy ZOOM 36 9 0 12 -214352 -192064 -262144 0 0; #X text 104 137 < clips out of range data (i.e. data that is drawn outside of the garray when zooming in).; #X obj 2 141 clip~ -1 1; #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 3 0 4 0; #X connect 4 0 1 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 9 0 2 0; #X coords 0 -1 1 1 125 47 2 0 0; #X restore 512 240 pd tabwrite; #N canvas 538 131 366 245 Initial values 0; #X obj 20 45 \$0; #X obj 20 17 loadbang; #X msg 20 73 \; \$1-hsl-rcv)pre 1 \; \$1-hsl-rcv)distortionamount 0.9 ; #X connect 0 0 2 0; #X connect 1 0 0 0; #X restore 547 462 pd Initial values; #X msg 536 41 \; pd dsp 0; #X msg 606 41 \; pd dsp 1; #N canvas 302 243 589 257 FAQ 0; #X obj 14 14 cnv 15 550 220 empty empty _____________________________ 20 12 0 14 -228856 -258113 0; #X text 144 107 takes a signal and outputs its RMS amplitude in dB. ; #X text 168 145 converts from decibels to linear ("RMS") amplitude. ; #X text 56 107 [env~] ----->; #X text 56 145 [dbtorms~] ----->; #X text 56 183 [square root of 2] ----->; #X text 55 163 |; #X text 55 124 |; #X text 33 16 THIS KEEPS THE ORIGINAL SIGNAL'S LEVEL; #X text 32 36 It constantly analyzes the input signal level and outputs the corresponding scaling factor in order to (approximately) keep the original signal's level \, i.e. in order to (approximately) keep the level the signal had before being distorted.; #X text 219 182 amplitude compensation.; #X restore 137 357 pd FAQ; #X obj 31 533 *~; #X obj 566 540 cnv 15 100 30 empty empty empty 20 12 0 14 -233017 -66577 0; #N canvas 416 441 383 86 About 0; #X text -2 -3 • by LandonPD \; • first released: Feb. 2015 \; • license: Pd compatible \; • no warranties whatsoever \; • contact: naturalpanorama@yahoo.com.; #X restore 591 546 pd About; #N canvas 355 109 377 436 xxxxxxxxx 0; #X obj 154 373 outlet~; #X obj 132 184 tgl 18 0 empty empty choose 21 9 0 10 -75167 -262144 -1 0 1; #X obj 192 184 tgl 18 0 empty empty empty 0 -6 0 8 -75167 -262144 -1 1 1; #X obj 132 44 loadbang; #X obj 132 64 1; #X obj 132 253 sel 1; #X obj 132 281 0; #X obj 192 253 sel 1; #X obj 192 281 0; #X obj 47 16 inlet~; #X obj 47 334 *~; #X obj 277 12 inlet~; #X obj 277 330 *~; #X obj 62 314 line; #X obj 292 310 line; #X msg 62 294 \$1 512; #X msg 292 290 \$1 512; #X connect 1 0 5 0; #X connect 1 0 15 0; #X connect 2 0 7 0; #X connect 2 0 16 0; #X connect 3 0 4 0; #X connect 4 0 1 0; #X connect 5 0 6 0; #X connect 6 0 2 0; #X connect 7 0 8 0; #X connect 8 0 1 0; #X connect 9 0 10 0; #X connect 10 0 0 0; #X connect 11 0 12 0; #X connect 12 0 0 0; #X connect 13 0 10 1; #X connect 14 0 12 1; #X connect 15 0 13 0; #X connect 16 0 14 0; #X coords 0 -1 1 1 82 26 2 130 180; #X restore 31 84 pd xxxxxxxxx; #X text 28 14 Plug; #X text 28 26 your; #X text 28 38 instrument; #X obj 31 262 expr~ $v1/($v2+abs($v1)); #X obj 172 242 sig~; #X text 339 265 0.001 to 1; #X obj 172 202 - 1.001; #X obj 172 222 abs; #X obj 41 393 s~ \$0-tabwrite; #X connect 2 0 31 1; #X connect 3 0 2 0; #X connect 3 0 21 0; #X connect 4 0 31 0; #X connect 5 0 16 0; #X connect 5 0 35 0; #X connect 6 0 5 1; #X connect 6 0 7 0; #X connect 8 0 40 0; #X connect 8 0 28 0; #X connect 9 0 10 0; #X connect 10 0 38 0; #X connect 12 0 13 0; #X connect 12 0 28 1; #X connect 15 0 17 0; #X connect 16 0 15 0; #X connect 17 0 8 1; #X connect 28 0 11 1; #X connect 28 0 11 0; #X connect 31 0 5 0; #X connect 35 0 8 0; #X connect 36 0 35 1; #X connect 38 0 39 0; #X connect 39 0 36 0; #X coords 0 0 1 1 15 15 0;