A class that provides a way to saturate audio in a frequency-dependent manner.
More...
|
| Saturator () |
| Create a new saturator filter with the default input and output gains of 1. More...
|
|
| Saturator (const Saturator &other) |
| Create an exact copy of another saturator. More...
|
|
| ~Saturator () |
| Destroy this saturator, releasing all associated resources. More...
|
|
Saturator & | operator= (const Saturator &other) |
| Assign the state of another saturator to this one. More...
|
|
Gain | getInputGain () const |
| Return the current linear input gain factor of this saturator filter. More...
|
|
Gain | getInputGainDB () const |
| Return the current input gain factor in decibels of this saturator filter. More...
|
|
void | setInputGain (Gain newInputGain) |
| Set the target linear input gain for this saturator filter. More...
|
|
void | setInputGainDB (Gain newDBInputGain) |
| Set the target input gain in decibels for this saturator filter. More...
|
|
Gain | getOutputGain () const |
| Return the current linear output gain factor of this saturator filter. More...
|
|
Gain | getOutputGainDB () const |
| Return the current output gain factor in decibels of this saturator filter. More...
|
|
void | setOutputGain (Gain newOutputGain) |
| Set the target linear output gain for this saturator filter. More...
|
|
void | setOutputGainDB (Gain newDBOutputGain) |
| Set the target output gain in decibels for this saturator filter. More...
|
|
Bool | getCrossoverIsEnabled () const |
| Return whether or not this saturator filter's crossover filter is enabled. More...
|
|
void | setCrossoverIsEnabled (Bool newCrossoverIsEnabled) |
| Set whether or not this saturator filter's crossover is enabled. More...
|
|
Float | getCrossoverFrequency () const |
| Return the low pass filter frequency of this saturator filter. More...
|
|
void | setCrossoverFrequency (Float newCrossoverFrequency) |
| Set the crossover frequency of this saturator filter. More...
|
|
Size | getCrossoverOrder () const |
| Return the filter order of this saturator filter's crossover. More...
|
|
void | setCrossoverOrder (Size newCrossoverOrder) |
| Set the crossover filter order of this saturator filter. More...
|
|
Bool | getLowEffectIsEnabled () const |
| Return whether or not the low frequency saturation effect is enabled. More...
|
|
void | setLowEffectIsEnabled (Bool newLowEffectEnabled) |
| Set whether or not the low frequency saturation effect is enabled. More...
|
|
Bool | getLowFilterIsEnabled () const |
| Return whether or not the low frequency saturation effect is enabled. More...
|
|
void | setLowFilterIsEnabled (Bool newLowFilterEnabled) |
| Set whether or not the low frequency low pass filter is enabled. More...
|
|
Gain | getLowDrive () const |
| Return the current linear input gain factor for the low frequencies of the saturator. More...
|
|
Gain | getLowDriveDB () const |
| Return the current input gain in decibels for the low frequencies of the saturator. More...
|
|
void | setLowDrive (Gain newLowDrive) |
| Set the current linear input gain factor for the low frequencies of the saturator. More...
|
|
void | setLowDriveDB (Gain newDBLowDrive) |
| Set the current input gain in decibels for the low frequencies of the saturator. More...
|
|
Gain | getLowGain () const |
| Return the current linear output gain factor for the low frequencies of the saturator. More...
|
|
Gain | getLowGainDB () const |
| Return the current output gain in decibels for the low frequencies of the saturator. More...
|
|
void | setLowGain (Gain newLowGain) |
| Set the current linear output gain factor for the low frequencies of the saturator. More...
|
|
void | setLowGainDB (Gain newDBLowGain) |
| Set the current output gain in decibels for the low frequencies of the saturator. More...
|
|
Bool | getHighEffectIsEnabled () const |
| Return whether or not the high frequency saturation effect is enabled. More...
|
|
void | setHighEffectIsEnabled (Bool newHighEffectEnabled) |
| Set whether or not the high frequency saturation effect is enabled. More...
|
|
Gain | getHighDrive () const |
| Return the current linear input gain factor for the high frequencies of the saturator. More...
|
|
Gain | getHighDriveDB () const |
| Return the current input gain in decibels for the high frequencies of the saturator. More...
|
|
void | setHighDrive (Gain newLowDrive) |
| Set the current linear input gain factor for the high frequencies of the saturator. More...
|
|
void | setHighDriveDB (Gain newDBHighDrive) |
| Set the current input gain in decibels for the high frequencies of the saturator. More...
|
|
Gain | getHighGain () const |
| Return the current linear output gain factor for the high frequencies of the saturator. More...
|
|
Gain | getHighGainDB () const |
| Return the current output gain in decibels for the high frequencies of the saturator. More...
|
|
void | setHighGain (Gain newHighGain) |
| Set the current linear output gain factor for the high frequencies of the saturator. More...
|
|
void | setHighGainDB (Gain newDBHighGain) |
| Set the current output gain in decibels for the high frequencies of the saturator. More...
|
|
Bool | getLowPassIsEnabled () const |
| Return whether or not this saturation filter's low pass filter is enabled. More...
|
|
void | setLowPassIsEnabled (Bool newLowPassIsEnabled) |
| Set whether or not this saturation filter's low pass filter is enabled. More...
|
|
Float | getLowPassFrequency () const |
| Return the low pass filter frequency of this saturation filter. More...
|
|
void | setLowPassFrequency (Float newLowPassFrequency) |
| Set the low pass filter frequency of this saturation filter. More...
|
|
Size | getLowPassOrder () const |
| Return the low pass filter order of this saturation filter. More...
|
|
void | setLowPassOrder (Size newLowPassOrder) |
| Set the low pass filter order of this saturation filter. More...
|
|
Bool | getLowsAreSoloed () const |
| Return whether or not the low frequency band is currently being soloed. More...
|
|
void | setLowsAreSoloed (Bool newLowsSoloed) |
| Return whether or not the low frequency band is currently being soloed. More...
|
|
Bool | getHighsAreSoloed () const |
| Return whether or not the high frequency band is currently being soloed. More...
|
|
void | setHighsAreSoloed (Bool newHighsSoloed) |
| Return whether or not the high frequency band is currently being soloed. More...
|
|
virtual UTF8String | getName () const |
| Return a human-readable name for this saturator filter. More...
|
|
virtual UTF8String | getManufacturer () const |
| Return the manufacturer name of this saturator filter. More...
|
|
virtual FilterVersion | getVersion () const |
| Return an object representing the version of this saturator filter. More...
|
|
virtual FilterCategory | getCategory () const |
| Return an object that describes the category of effect that this filter implements. More...
|
|
virtual Size | getParameterCount () const |
| Return the total number of generic accessible parameters this saturator filter has. More...
|
|
virtual Bool | getParameterInfo (Index parameterIndex, FilterParameterInfo &info) const |
| Get information about the saturator filter parameter at the specified index. More...
|
|
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...
|
|
virtual Bool | allowsInPlaceProcessing () const |
| Return whether or not this sound filter can process audio data in-place. More...
|
|
A class that provides a way to saturate audio in a frequency-dependent manner.
A Saturator consists of a 2-way crossover which splits the input audio into low and high-frequency bands. Each band can then be saturated using a soft-clipping function independently before being added back together to produce the output.
This effect can be used to fatten up and even out low frequencies with extra harmonics without adding nasty distortion. It emulates tape saturation on each frequency band independently, giving the user more control over the final sound.
The saturator uses an all-pass Linwitz-Riley crossover to split the audio into frequency bands. The saturator allows the low-frequency band to also be low-pass filtered using half of the crossover filter, producing cleaner low-frequency output. Since 2N-order Linkwitz-Riley crossovers are the same as two N-order Butterworth filters in series, the crossover uses the first low pass filter to fliter out the high frequencies, then uses the second one after saturation to filter out unwanted harmonics added by the saturation, producing a (mostly) all-pass result.