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@lists.iem.at mailing list > UNSUBSCRIBE and account-management -> > https://urldefense.com/v3/__https://lists.puredata.info/listinfo/pd-list__;!!Mih3wA!R-nawAJyrWbRclIS9OUYCPd42khliG1cAlNinvPiVfYzrymwhoqomAYjCW1A$ > _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list