[PD] compander-limiter from slop~-help.pd

Miller Puckette msp at ucsd.edu
Sat Apr 24 17:43:46 CEST 2021


As far as I can tell limiter design is a dark art.  Here's one (that imposes
a hard limit just within the (-1, 1) range - I made this for "music101" where
I needed a hard limit and am assuming the input signal is a voice (so unlikely
to have extremely fast attacks)...

cheers
Miller

----------------

#N canvas 219 162 342 348 12;
#N canvas 125 146 761 589 limiter 0;
#X obj 61 108 inlet~;
#X obj 75 135 abs~;
#X obj 75 160 slop~ 0 0 5 0 1e+09;
#X obj 74 192 *~ 10.1;
#X obj 487 88 array define \$0-limit 1000;
#X obj 542 155 loadbang;
#X obj 542 180 t b b;
#X obj 542 205 1000;
#X obj 542 230 until;
#X obj 542 255 f;
#X obj 574 255 + 1;
#X obj 598 209 0;
#X obj 542 280 t f f;
#X obj 458 365 tabwrite \$0-limit;
#X obj 491 157 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 444 320 expr min(1 \, 10/(max(1 \, $f1)));
#X obj 74 217 tabread4~ \$0-limit;
#X obj 61 249 *~;
#X obj 61 276 outlet~;
#X obj 241 107 inlet~;
#X obj 255 134 abs~;
#X obj 255 159 slop~ 0 0 5 0 1e+09;
#X obj 254 191 *~ 10.1;
#X obj 254 216 tabread4~ \$0-limit;
#X obj 241 248 *~;
#X obj 241 275 outlet~;
#X connect 0 0 1 0;
#X connect 0 0 17 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 16 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 6 1 11 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 9 0 12 0;
#X connect 10 0 9 1;
#X connect 11 0 9 1;
#X connect 12 0 15 0;
#X connect 12 1 13 1;
#X connect 14 0 6 0;
#X connect 15 0 13 0;
#X connect 16 0 17 1;
#X connect 17 0 18 0;
#X connect 19 0 20 0;
#X connect 19 0 24 0;
#X connect 20 0 21 0;
#X connect 21 0 22 0;
#X connect 22 0 23 0;
#X connect 23 0 24 1;
#X connect 24 0 25 0;
#X restore 88 148 pd limiter;
#X f 11;

----------

On Sat, Apr 24, 2021 at 10:46:04AM +0200, Peter P. wrote:
> Hi list,
> 
> nice weather today, isn't it?
> 
> I am trying to understand the [pd compander-limiter] example from
> slop~'s help patch because I need a 0dBFS brickwall limiter as
> abstraction without externals.
> 
> When set to the "no change" parameters, the example will still saturate any
> signals hotter than 0dBFS.
> 
> I don't understand what the ratio parameter does,
> especially its unit and range. It is 100 for dynamic reduction and 200
> for expansion in the examples.
> 
> Furthermore the threshold parameter is 100 for "expansion" and
> "compression", but 60 for "noise gate"...
> 
> "Limit" does introduce audible saturation for signals above 0dBFS and I
> am wondering which paramters could prevent this. Lowering the speed
> parameter to values smaller than 50 improves this a bit. Is speed an
> inverse attack time parameter perhaps?
> 
> And I can't seem to make sense of the boost parameter.
> 
> Any hints are greatly appreciated! Thanks in advance!
> 
> Peter
> 
> 
> 
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.puredata.info/listinfo/pd-list__;!!Mih3wA!R-nawAJyrWbRclIS9OUYCPd42khliG1cAlNinvPiVfYzrymwhoqomAYjCW1A$ 





More information about the Pd-list mailing list