linux: shared memory interface - link with librt
[supercollider.git] / HelpSource / Classes / CompanderD.schelp
blob33461688901029d9b6a996707a649bfc2b3b18eb
1 class:: CompanderD
2 summary:: Compressor, expander, limiter, gate, ducker.
3 related:: Classes/Amplitude, Classes/Compander, Classes/Normalizer, Classes/Limiter
4 categories::  UGens>Dynamics
7 Description::
9 CompanderD passes the signal directly to the control input, but
10 adds a delay to the process input so that the lag in the gain clamping
11 will not lag the attacks in the input sound.
14 classmethods::
16 method::ar
18 argument::in
19 The signal to be compressed / expanded / gated.
21 argument::thresh
22 Control signal amplitude threshold, which determines the break point between slopeBelow and slopeAbove. Usually 0..1. The control signal amplitude is calculated using RMS.
24 argument::slopeBelow
25 Slope of the amplitude curve below the threshold. If this slope > 1.0, the amplitude will drop off more quickly the softer the control signal gets; when the control signal is close to 0 amplitude, the output should be exactly zero -- hence, noise gating. Values < 1.0 are possible, but it means that a very low-level control signal will cause the input signal to be amplified, which would raise the noise floor.
27 argument::slopeAbove
28 Same thing, but above the threshold. Values < 1.0 achieve compression (louder signals are attenuated); > 1.0, you get expansion (louder signals are made even louder). For 3:1 compression, you would use a value of 1/3 here.
30 argument::clampTime
31 The amount of time it takes for the amplitude adjustment to kick in fully. This is usually pretty small, not much more than 10 milliseconds (the default value). I often set it as low as 2 milliseconds (0.002).
33 argument::relaxTime
34 The amount of time for the amplitude adjustment to be released. Usually a bit longer than clampTime; if both times are too short, you can get some (possibly unwanted) artifacts.
36 argument::mul
37 Output will be multiplied by this value.
39 argument::add
40 This value will be added to the output.
42 Discussion::
43 If any of this is confusing, see http://en.wikipedia.org/wiki/Audio_level_compression