Om
1.0.0
A universal framework for multimedia simulation
|
A class that periodically varies the phase of an input signal. More...
#include <omSoundFlanger.h>
Public Member Functions | |
Flanger () | |
Create a default sine-based flanger filter with a depth of 6dB and frequency of 1Hz. More... | |
Flanger (Float newFrequency, Float newDepth, Gain newFeedback, Gain newMix) | |
Create a flanger with the specified frequency, depth, feedback, and mix values. More... | |
Float | getFrequency () const |
Return the frequency of this flanger's modulation wave in hertz. More... | |
void | setFrequency (Float newFrequency) |
Set the frequency of this flanger's modulation wave in hertz. More... | |
Float | getDepth () const |
Return the intensity of the flanger modulation. More... | |
void | setDepth (Float newDepth) |
Set the maximum attenuation of the flanger modulation in decibels. More... | |
Gain | getFeedback () const |
Return the fraction of the effected sound that is sent back to the flanger's input. More... | |
void | setFeedback (Gain newFeedback) |
Set the fraction of the effected sound that is sent back to the flanger's input. More... | |
Float | getMix () const |
Return the fraction of the final output sound that is the flanger effect. More... | |
void | setMix (Float newMix) |
Set the fraction of the final output sound that is the flanger effect. More... | |
Float | getChannelPhase (Index channelIndex) const |
Return the modulation phase offset of the channel with the specified index. More... | |
void | setChannelPhase (Index channelIndex, Float newPhase) |
Set the modulation phase offset of the channel with the specified index. More... | |
void | setChannelPhase (Float newPhase) |
Set the modulation phase offset for all channels. More... | |
virtual UTF8String | getName () const |
Return a human-readable name for this flanger. More... | |
virtual UTF8String | getManufacturer () const |
Return the manufacturer name of this flanger. More... | |
virtual FilterVersion | getVersion () const |
Return an object representing the version of this flanger. 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 flanger can process audio data in-place. More... | |
virtual Time | getLatency () const |
Return a Time value indicating the latency of this flanger effect in seconds. More... | |
virtual Size | getParameterCount () const |
Return the total number of generic accessible parameters this flanger has. More... | |
virtual Bool | getParameterInfo (Index parameterIndex, FilterParameterInfo &info) const |
Get information about the flanger 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 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 flanger. More... | |
static const UTF8String | MANUFACTURER |
A string indicating the manufacturer name of this flanger. More... | |
static const FilterVersion | VERSION |
An object indicating the version of this flanger. 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... | |
virtual void | resetStream () |
A method that is called whenever the filter's stream of audio is being reset. 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 periodically varies the phase of an input signal.
A Flanger filter takes the input sound and modulates the phase of that sound with a repeating wave function, LFO, mixing the output with the input signal. There is a feedback path from the output to input which produces a more resonant output. This class supports several flanger wave types: sinusoidal, square, saw, and triangle.
om::sound::filters::Flanger::Flanger | ( | ) |
Create a default sine-based flanger filter with a depth of 6dB and frequency of 1Hz.
om::sound::filters::Flanger::Flanger | ( | Float | newFrequency, |
Float | newDepth, | ||
Gain | newFeedback, | ||
Gain | newMix | ||
) |
Create a flanger with the specified frequency, depth, feedback, and mix values.
|
inline |
Return the frequency of this flanger's modulation wave in hertz.
|
inline |
Set the frequency of this flanger's modulation wave in hertz.
|
inline |
Return the intensity of the flanger modulation.
This is a value between 0 and 1 which indicates the unitless amount that the flanger effect should affect the input signal by. A higher depth affects the signal more by producing more frequency modulation.
|
inline |
Set the maximum attenuation of the flanger modulation in decibels.
This is a value between 0 and 1 which indicates the unitless amount that the flanger effect should affect the input signal by. A higher depth affects the signal more by producing more frequency modulation.
The new depth value is clamped to the range of [0,1].
|
inline |
Return the fraction of the effected sound that is sent back to the flanger's input.
This is a value between -1 and 1 which indicates how much of the flanger effect output (pre mix-control) gets sent back to the flanger's input. A higher feedback value will produce a more extreme resonnant effect. A negative feedback indicates that the feedbacked audio is inverted.
|
inline |
Set the fraction of the effected sound that is sent back to the flanger's input.
This is a value between -1 and 1 which indicates how much of the flanger effect output (pre mix-control) gets sent back to the flanger's input. A higher feedback value will produce a more extreme resonnant effect. A negative feedback indicates that the feedbacked audio is inverted.
The new feedback value is clamped to the range of [-1,1].
|
inline |
Return the fraction of the final output sound that is the flanger effect.
This is a value between 0 and 1 which indicates the mix between the input signal and the effect output that is produced. A value of 0 results in only the input being present, while a value of 1 results in only the output being preset.
|
inline |
Set the fraction of the final output sound that is the flanger effect.
This is a value between 0 and 1 which indicates the mix between the input signal and the effect output that is produced. A value of 0 results in only the input being present, while a value of 1 results in only the output being preset.
The new mix value is clamped to the range of [0,1].
Return the modulation phase offset of the channel with the specified index.
This value, specified in degrees, indicates how much the phase of the channel should be shifted by. This parameter allows the creation of stereo (or higher) modulation effects. For example, if the phase of the left channel is 0 and the phase of the right channel is 180, the channels' modulation will be completely out-of-phase.
Set the modulation phase offset of the channel with the specified index.
This value, specified in degrees, indicates how much the phase of the channel should be shifted by. This parameter allows the creation of stereo (or higher) modulation effects. For example, if the phase of the left channel is 0 and the phase of the right channel is 180, the channels' modulation will be completely out-of-phase.
The input phase value is clamped so that the new phase value lies between -180 and 180 degrees.
void om::sound::filters::Flanger::setChannelPhase | ( | Float | newPhase | ) |
Set the modulation phase offset for all channels.
Doing this brings all channels into phase with each other (regardless of what phase that is).
The input phase value is clamped so that the new phase value lies between -180 and 180 degrees.
|
virtual |
Return a human-readable name for this flanger.
The method returns the string "Flanger".
Reimplemented from om::sound::filters::SoundFilter.
|
virtual |
Return the manufacturer name of this flanger.
The method returns the string "Om Sound".
Reimplemented from om::sound::filters::SoundFilter.
|
virtual |
Return an object representing the version of this flanger.
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::MODULATION.
Reimplemented from om::sound::filters::SoundFilter.
|
virtual |
Return whether or not this flanger can process audio data in-place.
This method always returns TRUE, flangers can process audio data in-place.
Reimplemented from om::sound::filters::SoundFilter.
|
virtual |
Return a Time value indicating the latency of this flanger effect in seconds.
The latency of the flanger is equal to half the maximum delay amount of the effect, usually just a few milliseconds.
Reimplemented from om::sound::filters::SoundFilter.
|
virtual |
Return the total number of generic accessible parameters this flanger has.
Reimplemented from om::sound::filters::SoundFilter.
|
virtual |
Get information about the flanger parameter at the specified index.
Reimplemented from om::sound::filters::SoundFilter.
|
static |
A string indicating the human-readable name of this flanger.
|
static |
A string indicating the manufacturer name of this flanger.
|
static |
An object indicating the version of this flanger.