diff options
author | N.N. <chr15m@users.sourceforge.net> | 2007-07-10 07:47:46 +0000 |
---|---|---|
committer | N.N. <chr15m@users.sourceforge.net> | 2007-07-10 07:47:46 +0000 |
commit | 3faf17f7b713905f582def227df90dac15f3468d (patch) | |
tree | a429f621d2aad8db85d902fde422d3ff1e859bd6 /s-autocompressor~.pd |
This commit was generated by cvs2svn to compensate for changes in r7969,svn2git-root
which included commits to RCS files with non-trunk default branches.
svn path=/trunk/abstractions/s-abstractions/; revision=7970
Diffstat (limited to 's-autocompressor~.pd')
-rw-r--r-- | s-autocompressor~.pd | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/s-autocompressor~.pd b/s-autocompressor~.pd new file mode 100644 index 0000000..64c3162 --- /dev/null +++ b/s-autocompressor~.pd @@ -0,0 +1,121 @@ +#N canvas 255 105 459 100 10; +#X obj 5 41 nbx 5 14 0 127 0 1 \$0/squelch \$1/squelch squelch 0 -8 +0 8 -260818 -1 -1 1 256; +#N canvas 177 92 646 523 fft-analysis 0; +#X obj 115 409 *~; +#X obj 75 409 *~; +#X obj 76 114 *~; +#X obj 77 88 inlet~; +#X obj 76 137 rfft~; +#X obj 75 466 *~; +#X obj 171 177 *~; +#X obj 75 432 rifft~; +#X obj 75 504 outlet~; +#X obj 137 177 *~; +#X obj 137 200 +~; +#X obj 461 85 block~ 1024 4; +#X obj 137 351 clip~; +#X obj 110 114 tabreceive~ \$0-hann; +#X obj 177 329 expr 0.01*$f1*$f1; +#X obj 137 381 *~ 0.00065; +#X obj 137 225 +~ 1e-20; +#X obj 136 262 q8_rsqrt~; +#X obj 109 466 tabreceive~ \$0-hann; +#X text 211 174 squared magnitude; +#X text 219 225 protect against divide-by-zero; +#X text 223 261 quick 8-bit-accurate reciprocal square root; +#X text 222 277 (done by table lookup - about 0.25% accurate); +#X text 193 351 limit the gain to squelch*squelch/100; +#X text 238 381 normalize for 1024-point \, overlap-4 Hann; +#X text 151 409 multiply gain by real and complex part; +#X text 152 429 of the amplitude; +#X text 130 137 outputs complex amplitudes; +#X text 31 5 This is Miller's compressor. Any mistakes are my own. +; +#X obj 177 306 r \$0/squelch; +#X msg 461 129 \; window-size 1024 \;; +#X obj 461 107 loadbang; +#X obj 75 485 *~ 32; +#X connect 0 0 7 1; +#X connect 1 0 7 0; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 9 0; +#X connect 4 0 9 1; +#X connect 4 0 1 0; +#X connect 4 1 6 0; +#X connect 4 1 6 1; +#X connect 4 1 0 0; +#X connect 5 0 32 0; +#X connect 6 0 10 1; +#X connect 7 0 5 0; +#X connect 9 0 10 0; +#X connect 10 0 16 0; +#X connect 12 0 15 0; +#X connect 13 0 2 1; +#X connect 14 0 12 2; +#X connect 15 0 0 1; +#X connect 15 0 1 1; +#X connect 16 0 17 0; +#X connect 17 0 12 0; +#X connect 18 0 5 1; +#X connect 29 0 14 0; +#X connect 31 0 30 0; +#X connect 32 0 8 0; +#X restore 92 22 pd fft-analysis; +#N canvas 0 110 565 454 hann-window 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array \$0-hann 1024 float 0; +#X coords 0 1 1023 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 335 44 pd hann-window; +#X obj 92 1 inlet~; +#X obj 92 43 outlet~; +#X obj 209 22 sssad/auto \$0/squelch \$1/squelch; +#X connect 1 0 4 0; +#X connect 3 0 1 0; +#X coords 0 -1 1 1 85 60 1 0 0; |