Om
1.0.0
A universal framework for multimedia simulation
|
A class that keeps sound from going above a limiting threshold. More...
#include <omSoundLimiter.h>
Public Member Functions | |
Limiter () | |
Create a new limiter with the default limiting parameters. More... | |
Limiter (Gain threshold, Gain inputGain, Gain outputGain, Float release) | |
Create a new limiter with the specified threshold. More... | |
Gain | getInputGain () const |
Return the current linear input gain factor of this limiter. More... | |
Gain | getInputGainDB () const |
Return the current input gain factor in decibels of this limiter. More... | |
void | setInputGain (Gain newInputGain) |
Set the target linear input gain for limiter. More... | |
void | setInputGainDB (Gain newDBInputGain) |
Set the target input gain in decibels for this limiter. More... | |
Gain | getOutputGain () const |
Return the current linear output gain factor of this limiter. More... | |
Gain | getOutputGainDB () const |
Return the current output gain factor in decibels of this limiter. More... | |
void | setOutputGain (Gain newOutputGain) |
Set the target linear output gain for this limiter. More... | |
void | setOutputGainDB (Gain newDBOutputGain) |
Set the target output gain in decibels for this limiter. More... | |
Gain | getThreshold () const |
Return the linear full-scale value above which the limiter applies gain reduction. More... | |
Gain | getThresholdDB () const |
Return the logarithmic full-scale value above which the limiter applies gain reduction. More... | |
void | setThreshold (Gain newThreshold) |
Set the linear full-scale value above which the limiter applies gain reduction. More... | |
void | setThresholdDB (Gain newThresholdDB) |
Set the logarithmic full-scale value above which the limiter applies gain reduction. More... | |
Gain | getKnee () const |
Return the knee radius of this limiter in decibels. More... | |
void | setKnee (Gain newKnee) |
Set the knee radius of this limiter in decibels. More... | |
Float | getAttack () const |
Return the attack of this limiter in seconds. More... | |
void | setAttack (Float newAttack) |
Set the attack of this limiter in seconds. More... | |
Float | getRelease () const |
Return the release of this limiter in seconds. More... | |
void | setRelease (Float newRelease) |
Set the release of this limiter in seconds. More... | |
Bool | getChannelsAreLinked () const |
Return whether or not all channels in the limiter are linked together. More... | |
void | setChannelsAreLinked (Bool newChannelsAreLinked) |
Set whether or not all channels in the limiter are linked together. More... | |
Bool | getSaturationIsEnabled () const |
Return whether or not output saturation is occurring for the limiter. More... | |
void | setSaturationIsEnabled (Bool newSaturationIsEnabled) |
Set whether or not output saturation should occur for the limiter. More... | |
Gain | getSaturationKnee () const |
Return the knee of the output clipping function, in decibels. More... | |
void | setSaturationKnee (Gain newSaturationKnee) |
Set the knee of the output clipping function, in decibels. More... | |
Gain | getGainReductionDB () const |
Return the current gain reduction of the limiter in decibels. More... | |
Gain | getGainReduction () const |
Return the current gain reduction of the limiter on a linear scale. More... | |
virtual UTF8String | getName () const |
Return a human-readable name for this limiter. More... | |
virtual UTF8String | getManufacturer () const |
Return the manufacturer name of this limiter. More... | |
virtual FilterVersion | getVersion () const |
Return an object representing the version of this limiter. More... | |
virtual FilterCategory | getCategory () const |
Return an object that describes the category of effect that this filter implements. More... | |
virtual Bool | allowsInPlaceProcessing () const |
Return whether or not this limiter can process audio data in-place. More... | |
virtual Size | getParameterCount () const |
Return the total number of generic accessible parameters this filter has. More... | |
virtual Bool | getParameterInfo (Index parameterIndex, FilterParameterInfo &info) const |
Get information about the filter parameter at the specified index. More... | |
Public Member Functions inherited from om::sound::filters::SoundFilter | |
virtual | ~SoundFilter () |
Destroy this sound filter object. More... | |
SoundResult | read (SoundBuffer &outputBuffer, Size numSamples) |
Fill the specified output buffer with the requested number of samples, based on internal filter state. More... | |
SoundResult | read (SoundFrame &outputFrame, Size numSamples) |
Fill the specified output frame with the requested number of samples, based on internal filter state. More... | |
SoundResult | write (const SoundBuffer &inputBuffer, Size numSamples) |
Process the specified input buffer samples and do something with them. More... | |
SoundResult | write (const SoundFrame &inputFrame, Size numSamples) |
Process the specified input frame samples and do something with them. More... | |
SoundResult | process (const SoundBuffer &inputBuffer, SoundBuffer &outputBuffer, Size numSamples) |
Apply this filter to the specified input buffer data, placing the result in the output buffer. More... | |
SoundResult | process (const SoundBuffer &inputBuffer, SoundFrame &outputFrame, Size numSamples) |
Apply this filter to the specified input buffer data, placing the result in the output frame. More... | |
SoundResult | process (const SoundFrame &inputFrame, SoundFrame &outputFrame, Size numSamples) |
Apply this filter to the specified input frame data, placing the result in the output frame. More... | |
SoundResult | process (const SoundFrame &inputBuffer, SoundBuffer &outputBuffer, Size numSamples) |
Apply this filter to the specified input frame data, placing the result in the output buffer. More... | |
void | reset () |
Signal to the filter that the audio stream is restarting. More... | |
UInt64 | getFrameIndex () const |
Return the index of the next frame to be processed (or the current one if currently processing). More... | |
Size | getInputCount () const |
Return the current number of audio inputs that this filter has. More... | |
virtual UTF8String | getInputName (Index inputIndex) const |
Return a human-readable name of the filter audio input at the specified index. More... | |
Size | getOutputCount () const |
Return the current number of audio outputs that this filter has. More... | |
virtual UTF8String | getOutputName (Index outputIndex) const |
Return a human-readable name of the filter audio output at the specified index. More... | |
Size | getMIDIInputCount () const |
Return the current number of MIDI inputs that this filter has. More... | |
virtual UTF8String | getMIDIInputName (Index inputIndex) const |
Return a human-readable name of the filter MIDI input at the specified index. More... | |
Size | getMIDIOutputCount () const |
Return the current number of MIDI outputs that this filter has. More... | |
virtual UTF8String | getMIDIOutputName (Index outputIndex) const |
Return a human-readable name of the filter MIDI output at the specified index. More... | |
virtual Time | getLatency () const |
Return a Time value indicating the latency of this sound filter in seconds. More... | |
virtual Bool | getParameterIndex (const UTF8String ¶meterName, Index ¶meterIndex) const |
Query the index of the parameter with the specified name. More... | |
virtual Bool | getParameterValueName (Index parameterIndex, const FilterParameter &value, UTF8String &name) const |
Get any special name associated with the specified value of an indexed parameter. More... | |
Bool | getParameter (Index parameterIndex, FilterParameter &value) const |
Place the value of the parameter at the specified index in the output parameter. More... | |
Bool | getParameter (Index parameterIndex, Bool &value) const |
Place the value of the parameter at the specified index in the output parameter. More... | |
Bool | getParameter (Index parameterIndex, Int64 &value) const |
Place the value of the parameter at the specified index in the output parameter. More... | |
Bool | getParameter (Index parameterIndex, Float32 &value) const |
Place the value of the parameter at the specified index in the output parameter. More... | |
Bool | getParameter (Index parameterIndex, Float64 &value) const |
Place the value of the parameter at the specified index in the output parameter. More... | |
template<typename ParameterType > | |
Bool | getParameter (const UTF8String &name, ParameterType &value) const |
Place the value of the parameter with the specified name in the output parameter. More... | |
template<typename ParameterType > | |
Bool | getParameter (const char *name, ParameterType &value) const |
Place the value of the parameter with the specified name in the output parameter. More... | |
Bool | setParameter (Index parameterIndex, const FilterParameter &value) |
Attempt to set the parameter value at the specified index. More... | |
Bool | setParameter (Index parameterIndex, Bool value) |
Attempt to set the parameter value at the specified index. More... | |
Bool | setParameter (Index parameterIndex, Int64 value) |
Attempt to set the parameter value at the specified index. More... | |
Bool | setParameter (Index parameterIndex, Float32 value) |
Attempt to set the parameter value at the specified index. More... | |
Bool | setParameter (Index parameterIndex, Float64 value) |
Attempt to set the parameter value at the specified index. More... | |
template<typename ParameterType > | |
Bool | setParameter (const UTF8String &name, ParameterType value) |
Attempt to set the parameter value with the specified name. More... | |
template<typename ParameterType > | |
Bool | setParameter (const char *name, ParameterType value) |
Attempt to set the parameter value with the specified name. More... | |
virtual Bool | writeState (DataOutputStream &stream) const |
Write the current state of this sound filter to a data output stream. More... | |
virtual Bool | readState (DataInputStream &stream) |
Read a previously saved filter state from the specified data input stream and replace the filter's state. More... | |
virtual Size | getPresetCount () const |
Return the number of standard configuration presets that this sound filter has. More... | |
virtual Bool | getPreset (Index presetIndex, FilterPreset &preset) const |
Get the standard preset for this sound filter with the specified index. More... | |
Bool | getIsSynchronized () const |
Return whether or not this sound filter performs thread synchronization. More... | |
void | setIsSynchronized (Bool newIsSynchronized) |
Set whether or not this sound filter performs thread synchronization. More... | |
Static Public Attributes | |
static const UTF8String | NAME |
A string indicating the human-readable name of this limiter. More... | |
static const UTF8String | MANUFACTURER |
A string indicating the manufacturer name of this limiter. More... | |
static const FilterVersion | VERSION |
An object indicating the version of this limiter. More... | |
Static Public Attributes inherited from om::sound::filters::SoundFilter | |
static const om::resources::ResourceType | RESOURCE_TYPE |
The resource type for a sound filter. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from om::sound::filters::SoundFilter | |
static Size | getMaximumNumberOfInputs () |
Return the maximum number of audio inputs that a SoundFilter can support. More... | |
static Size | getMaximumNumberOfOutputs () |
Return the maximum number of audio outputs that a SoundFilter can support. More... | |
static Size | getMaximumNumberOfMIDIInputs () |
Return the maximum number of MIDI inputs that a SoundFilter can support. More... | |
static Size | getMaximumNumberOfMIDIOutputs () |
Return the maximum number of MIDI outputs that a SoundFilter can support. More... | |
Protected Member Functions inherited from om::sound::filters::SoundFilter | |
SoundFilter () | |
Create a new sound filter with 1 audio input and output, and no MIDI inputs or outputs. More... | |
SoundFilter (Size numInputs, Size numOutputs) | |
Create a new sound filter with the specified number of audio inputs and outputs. More... | |
SoundFilter (Size numInputs, Size numOutputs, Size numMIDIInputs, Size numMIDIOutputs) | |
Create a new sound filter with the specified number of audio inputs and outputs. More... | |
void | setInputCount (Size newNumInputs) |
Set the number of inputs that this filter should have. More... | |
void | setOutputCount (Size newNumOutputs) |
Set the number of outputs that this filter should have. More... | |
void | setMIDIInputCount (Size newNumMIDIInputs) |
Set the number of MIDI inputs that this filter should have. More... | |
void | setMIDIOutputCount (Size newNumMIDIOutputs) |
Set the number of MIDI outputs that this filter should have. More... | |
Bool | isFirstFrame () const |
Return whether or not the filter's next frame to be processed is also its first frame. More... | |
void | lockMutex () const |
Acquire a mutex which handles subclass rendering parameter synchronization. More... | |
void | unlockMutex () const |
Release a mutex which handles subclass rendering parameter synchronization. More... | |
A class that keeps sound from going above a limiting threshold.
om::sound::filters::Limiter::Limiter | ( | ) |
Create a new limiter with the default limiting parameters.
These are - threshold: 0dB, release: 5ms, input gain: 0dB, output gain: 0dB, with unlinked channels.
om::sound::filters::Limiter::Limiter | ( | Gain | threshold, |
Gain | inputGain, | ||
Gain | outputGain, | ||
Float | release | ||
) |
Create a new limiter with the specified threshold.
The other limiting parameters are - release: 5ms, input gain: 0dB, output gain: 0dB, with unlinked channels.
|
inline |
Return the current linear input gain factor of this limiter.
This is the gain applied to the input signal before being sent to the limiter. This allows the user to scale the input to match the limiter without having to change the limiter threshold.
|
inline |
Return the current input gain factor in decibels of this limiter.
This is the gain applied to the input signal before being sent to the limiter. This allows the user to scale the input to match the limiter without having to change the limiter threshold.
|
inline |
Set the target linear input gain for limiter.
This is the gain applied to the input signal before being sent to the limiter. This allows the user to scale the input to match the limiter without having to change the limiter threshold.
|
inline |
Set the target input gain in decibels for this limiter.
This is the gain applied to the input signal before being sent to the limiter. This allows the user to scale the input to match the limiter without having to change the limiter threshold.
|
inline |
Return the current linear output gain factor of this limiter.
This is the gain applied to the signal after being sent to the limiter. This value is used to apply make-up gain to the signal after is has been compressed.
|
inline |
Return the current output gain factor in decibels of this limiter.
This is the gain applied to the signal after being sent to the limiter. This value is used to apply make-up gain to the signal after is has been compressed.
|
inline |
Set the target linear output gain for this limiter.
This is the gain applied to the signal after being sent to the limiter. This value is used to apply make-up gain to the signal after is has been compressed.
|
inline |
Set the target output gain in decibels for this limiter.
This is the gain applied to the signal after being sent to the limiter. This value is used to apply make-up gain to the signal after is has been compressed.
|
inline |
Return the linear full-scale value above which the limiter applies gain reduction.
|
inline |
Return the logarithmic full-scale value above which the limiter applies gain reduction.
|
inline |
Set the linear full-scale value above which the limiter applies gain reduction.
The value is clamped to the valid range of [0,infinity] before being stored.
|
inline |
Set the logarithmic full-scale value above which the limiter applies gain reduction.
|
inline |
Return the knee radius of this limiter in decibels.
This is the amount below the limiter's threshold at which the limiter first starts limiting. A higher knee will result in a limiter that starts to apply gain reduction to envelopes that approach the threshold, resulting in a smoother transition from no gain reduction to full gain reduction.
|
inline |
Set the knee radius of this limiter in decibels.
This is the amount below the limiter's threshold at which the limiter first starts limiting. A higher knee will result in a limiter that starts to apply gain reduction to envelopes that approach the threshold, resulting in a smoother transition from no gain reduction to full gain reduction.
The new knee value is clamped to the valid range of [0,+infinity].
|
inline |
Return the attack of this limiter in seconds.
This value indicates the time in seconds that it takes for the limiter's detection envelope to respond to a sudden increase in signal level. Thus, a very small attack softens transients more than a slower attack which lets the transients through the limiter.
|
inline |
Set the attack of this limiter in seconds.
This value indicates the time in seconds that it takes for the limiter's detection envelope to respond to a sudden increase in signal level. Thus, a very small attack softens transients more than a slower attack which lets the transients through the limiter.
The new attack value is clamped to the range of [0,+infinity].
|
inline |
Return the release of this limiter in seconds.
This value indicates the time in seconds that it takes for the limiter's detection envelope to respond to a sudden decrease in signal level. Thus, a very short release doesn't compress the signal after a transient for as long as a longer release. Beware, very short release times (< 5ms) can result in audible distortion.
|
inline |
Set the release of this limiter in seconds.
This value indicates the time in seconds that it takes for the limiter's detection envelope to respond to a sudden decrease in signal level. Thus, a very short release doesn't limit the signal after a transient for as long as a longer release. Beware, very short release times (< 5ms) can result in audible distortion.
The new release value is clamped to the valid range of [0,+infinity].
|
inline |
Return whether or not all channels in the limiter are linked together.
If the value is TRUE, all channels are limited by the maximum limiting amount selected from all channel envelopes. This allows the limiter to maintain the stereo image of the audio when limiting hard-panned sounds.
|
inline |
Set whether or not all channels in the limiter are linked together.
If the value is TRUE, all channels are limited by the maximum limiting amount selected from all channel envelopes. This allows the limiter to maintain the stereo image of the audio when limiting hard-panned sounds.
|
inline |
Return whether or not output saturation is occurring for the limiter.
If this value is TRUE, a soft clipping function is applied to the output of the limiter which guarantees that the output signal will never exceed the threshold. This output saturation is usually used in combination with a slower attack to keep fast transients from going over the threshold while keeping the cleaner sound of a slow attack.
|
inline |
Set whether or not output saturation should occur for the limiter.
If this value is TRUE, a soft clipping function is applied to the output of the limiter which guarantees that the output signal will never exceed the threshold. This output saturation is usually used in combination with a slower attack to keep fast transients from going over the threshold while keeping the cleaner sound of a slow attack.
|
inline |
Return the knee of the output clipping function, in decibels.
This is the number of decibels below the threshold where the transition from no saturation to saturation will occurr. A higher knee value indicates softer output clipping.
|
inline |
Set the knee of the output clipping function, in decibels.
This is the number of decibels below the threshold where the transition from no saturation to saturation will occurr. A higher knee value indicates softer output clipping.
The new knee value is clamped to the valid range of [0.01,+infinity].
|
inline |
Return the current gain reduction of the limiter in decibels.
This value can be used as a way for humans to visualize how much the limiter is compressing at any given time.
|
inline |
Return the current gain reduction of the limiter on a linear scale.
This value can be used as a way for humans to visualize how much the limiter is compressing at any given time.
|
virtual |
Return a human-readable name for this limiter.
The method returns the string "Compressor".
Reimplemented from om::sound::filters::SoundFilter.
|
virtual |
Return the manufacturer name of this limiter.
The method returns the string "Om Sound".
Reimplemented from om::sound::filters::SoundFilter.
|
virtual |
Return an object representing the version of this limiter.
Reimplemented from om::sound::filters::SoundFilter.
|
virtual |
Return an object that describes the category of effect that this filter implements.
This method returns the value FilterCategory::DYNAMICS.
Reimplemented from om::sound::filters::SoundFilter.
|
virtual |
Return whether or not this limiter can process audio data in-place.
This method always returns TRUE, limiters can process audio data in-place.
Reimplemented from om::sound::filters::SoundFilter.
|
virtual |
Return the total number of generic accessible parameters this filter has.
Reimplemented from om::sound::filters::SoundFilter.
|
virtual |
Get information about the filter parameter at the specified index.
Reimplemented from om::sound::filters::SoundFilter.
|
static |
A string indicating the human-readable name of this limiter.
|
static |
A string indicating the manufacturer name of this limiter.
|
static |
An object indicating the version of this limiter.