p0 = output start time (seconds) p1 = input start time (seconds) p2 = duration (seconds) p3 = gain applied to input before compression (in dBFS; 0 is no change) p4 = gain applied to output after compression - "makeup gain" (in dBFS) p5 = attack time (seconds) p6 = release time (seconds) p7 = threshold (in dBFS) p8 = compression ratio - e.g. 20 means 20:1 (100 is infinity) p9 = look-ahead time (seconds) p10 = peak detection window size (power of 2 <= RTCmix output buffer size) p11 = detection type (0: peak, 1: average peak, 2: rms) [optional; default is 0) p12 = bypass (0: bypass off, 1: bypass on) [optional; default is 0] p13 = input channel [optional; default is 0] p14 = pan (0-1 stereo; 0.5 is middle) [optional; default is 0.5] p3 (amplitude), p4 (preamp), p5 (postamp), p6 (attack), p7 (release), p8 (threshold), p9, (compressratio), p11 (detection type), p12 (bypass) p13 (input channel) and p14 (pan) can receive dynamic updates from a table or real-time control source. Author: John Gibson, 4/21/00; rev. for v4, 6/18/05
One minor problem: sometimes the compressor will stay in sustain for too long. This happens when the source sound has a long decaying envelope where some of the decay is above the threshold.
COMPLIMIT can produce stereo or mono output.
Sample Scores
very basic:
rtsetparams(44100, 2) load("COMPLIMIT") rtinput("mysound.aif") inskip = 1 dur = 5 ingain = 0 outgain = 0 attack = 0.01 release = 0.06 threshold = -10 ratio = 100 lookahead = attack windowlen = 128 detect_type = 0 bypass = 0 outskip = 0 COMPLIMIT(outskip, inskip, dur, ingain, outgain, attack, release, threshold, ratio, lookahead, windowlen, detect_type, bypass, inchan=0, pctleft=.5)
rtsetparams(44100, 2) load("COMPLIMIT") rtinput("mysound.aif") inskip = 0 dur = DUR() ingain = 18 outgain = 0 attack = 0.001 release = 0.02 threshold = -20 ratio = 4 lookahead = attack windowlen = 128 detect_type = 0 bypass = 0 COMPLIMIT(0, inskip, dur, ingain, outgain, attack, release, threshold, ratio, lookahead, windowlen, detect_type, bypass, inchan=0, pan=.5)