Jamoma API
0.6.0.a19
|
TTMutesolo mutes and soloes individual channels of the input audio signal. More...
#include <TTMuteSolo.h>
Protected Member Functions | |
TTErr | clear () |
Clear all current mute and solo settings. More... | |
TTErr | setInterpolated (const TTValue &newValue) |
Set boolean attribute determining whether linear interpolation is applied or not. More... | |
TTErr | updateGains () |
Update gain values in response to current mute and solo settings. More... | |
TTErr | setChannelMute (const TTValue &aValue, TTValue &) |
Set whether one of the channels is muted or not. More... | |
TTErr | setChannelSolo (const TTValue &aValue, TTValue &) |
Set whether one of the channels is soloed or not. More... | |
TTErr | getChannelMute (const TTValue &, TTValue &aMuteValues) |
Get current mute settings for all channels as an array. More... | |
TTErr | getChannelSolo (const TTValue &, TTValue &aSoloValues) |
Get current solo settings for all channels as an array. More... | |
TTErr | updateMaxNumChannels (const TTValue &oldMaxNumChannels, TTValue &) |
Receives notifications when there are changes to the inherited maxNumChannels attribute. More... | |
TTErr | increaseStoredStateNumChannels (TTChannelCount aDesiredChannel) |
If there is a need to store mute/solo information for a channel that is not yet tracked, the number of channels that information need to be stored for is increased. More... | |
TTErr | processAudio (TTAudioSignalArrayPtr inputs, TTAudioSignalArrayPtr outputs) |
A standard audio processing method as used by TTBlue objects. More... | |
TTErr | processAudioInterpolated (TTAudioSignalArrayPtr inputs, TTAudioSignalArrayPtr outputs) |
Alternative audio processing method that might be used temporarily when mute or solo settings has been changed in order to interpolate linearly to the new gain value over one signal vector. More... | |
TTErr | test (TTValue &returnedTestInfo) |
Unit testing. More... | |
Protected Member Functions inherited from TTAudioObjectBase | |
TTErr | setProcess (TTProcessMethod processMethod) |
Set the audio processing routine to point to a method that is defined as an arg to this function. More... | |
TTErr | setCalculate (TTCalculateMethod newCalculateMethod) |
Set the sample calculate routine to point to a method that is defined as an arg to this function. More... | |
TTErr | setBypass (const TTValue &value) |
Bypass the audio processing routine and copy all input samples to the output unchanged. More... | |
TTErr | resetBenchmarking () |
Reset the benchmarking accumulation used to calculate the results of getProcessingBenchmark(). More... | |
TTErr | getProcessingBenchmark (TTValueConstRef, TTValueRef v) |
Return the average time spent by this object processing audio since the last reset. More... | |
TTAudioObjectBase (const TTValue &arguments) | |
Constructor. More... | |
Protected Member Functions inherited from TTObjectBase | |
TTObjectBase (const TTValue arguments) | |
Constructor. More... | |
Protected Attributes | |
TTBoolean | mInterpolated |
Flag indicating whether interpolation will be applied when gain is changed. | |
TTChannelCount | mStoredStateNumChannels |
The number of channels that mute and solo states are currently stored for. This might be higher than mMaxNumChannels. | |
TTSampleVector | mChannelSolo |
solo status for each channel. Soloing takes presedence over muting. | |
TTSampleVector | mChannelMute |
mute status for each channel | |
TTSampleVector | gain |
Gain value for each channel, depends on current settings for mute and solo. | |
TTSampleVector | oldGain |
Previous gain value for each channel, used when interpolating to new settings. | |
Protected Attributes inherited from TTAudioObjectBase | |
TTUInt32 | sr |
Current sample rate being used by this object. | |
TTFloat64 | srInv |
1.0 over the current sample rate (inverse) | |
TTFloat64 | srMill |
1/1000 of the current sample rate (samples per millisecond) | |
TTChannelCount | mMaxNumChannels |
This is the maximum number of channels that can be guaranteed to work. | |
TTBoolean | unused |
Old var that is not used anymore, but we want to keep the struct size the same. | |
TTBoolean | attrBypass |
Are we bypassing the processMethod? | |
TTBoolean | attrMute |
Mute the processMethod. | |
TTProcessMethod | processMethod |
This function pointer points to the active (non-bypass) processing routine. | |
TTProcessMethod | currentProcessMethod |
This function pointer always points to the current processing routine. | |
TTCalculateMethod | calculateMethod |
This function pointer points to the active (non-bypass) calculate routine. | |
TTCalculateMethod | currentCalculateMethod |
This function pointer always points to the current calculate routine. | |
TTObject | inputArray |
If the process method is passed a signal, rather than an array of signals, we wrap the signal in this array. | |
TTObject | outputArray |
If the process method is passed a signal, rather than an array of signals, we wrap the signal in this array. | |
TTFloat64 | startProcessingTime |
The time at which this object's process method was last invoked (for benchmarking) | |
TTFloat64 | accumulatedProcessingTime |
The amount of time spent in this object's process method (for benchmarking) | |
TTFloat64 | accumulatedProcessingCalls |
The number of times the process method has been called (for benchmarking) | |
Protected Attributes inherited from TTObjectBase | |
TTList | observers |
List of all objects watching this object for life-cycle and other changes. | |
Additional Inherited Members | |
Public Member Functions inherited from TTAudioObjectBase | |
TTErr | setMute (const TTValue &value) |
Mute the audio processing routine and zero all output. More... | |
TTErr | setMaxNumChannels (const TTValue &newValue) |
Setter for the maxNumChannels attribute. More... | |
TTErr | adaptMaxNumChannels (const TTChannelCount newMaxNumChannels) |
Increase the maxNumChannels attribute, if neccessary. More... | |
TTErr | setSr (const TTValue &newValue) |
Setter for the sample-rate attribute. More... | |
TTErr | setSampleRate (const TTUInt32 &newSampleRate) |
Convenience method for updating the sample-rate. More... | |
virtual | ~TTAudioObjectBase () |
Destructor. | |
TTErr | calculate (const TTFloat64 &x, TTFloat64 &y) |
Calculate a single sample of output for a single sample of input. More... | |
TTErr | calculateMessage (TTValueConstRef input, TTValueRef output) |
TTErr | process (TTAudioSignal &in, TTAudioSignal &out) |
Process the input signal, resulting in an output signal. More... | |
TTErr | process (TTAudioSignal &out) |
Process the an output signal only, e.g. More... | |
TTErr | process (TTAudioSignal &in1, TTAudioSignal &in2, TTAudioSignal &out1, TTAudioSignal &out2) |
Process two input signals, resulting in two output signals. More... | |
TTErr | process (TTAudioSignal &in1, TTAudioSignal &in2, TTAudioSignal &out) |
Process two input signals, resulting in an output signal. More... | |
TTErr | process (TTAudioSignalArrayPtr inputs, TTAudioSignalArrayPtr outputs) |
Process an array of audio signals. More... | |
TTErr | bypassProcess (TTAudioSignalArrayPtr inputs, TTAudioSignalArrayPtr outputs) |
The default audio processing method, which simply copies a signal through with no modifications. More... | |
TTErr | bypassCalculate (const TTFloat64 &x, TTFloat64 &y, TTPtr data) |
Produces a result for calls to calculate when the unit is bypassed. More... | |
TTErr | muteProcess (TTAudioSignalArrayPtr inputs, TTAudioSignalArrayPtr outputs) |
A muted audio processing method, which simply copies zeroes to the output. More... | |
TTErr | defaultCalculateMethod (const TTFloat64 &x, TTFloat64 &y, TTPtr data) |
A default calculate method, which simply calls the process method with 1 channel signals that are 1 sample in length. More... | |
TTFloat64 | hertzToRadians (const TTFloat64 hz) |
Convert Hertz to radians. More... | |
TTFloat64 | radiansToHertz (const TTFloat64 radians) |
Convert radians into Hertz. More... | |
TTFloat64 | degreesToRadians (const TTFloat64 degrees) |
Degrees-to-radians conversion. More... | |
TTFloat64 | radiansToDegrees (const TTFloat64 radians) |
Radians-to-degrees conversion. More... | |
TTFloat64 | decayToFeedback (const TTFloat64 decay_time, TTFloat64 delay) |
Decay Time (seconds) to feedback coefficient conversion. More... | |
TTFloat64 | feedbackToDecay (const TTFloat64 feedback, const TTFloat64 delay) |
Return the decay time based on the feedback coefficient. More... | |
Public Member Functions inherited from TTObjectBase | |
virtual | ~TTObjectBase () |
Destructor. | |
TTUInt16 | getReferenceCount () |
Query an object to get its current reference count. More... | |
TTUInt32 | getObserverCount () const |
Query an object to get the number of observers. More... | |
TTErr | registerAttribute (const TTSymbol name, const TTDataType type, void *address) |
Register an attribute. More... | |
TTErr | extendAttribute (const TTSymbol name, const TTObjectBasePtr extendedObject, const TTSymbol extendedName) |
Extend the attribute of an existing TTObjectBase to this TTObjectBase (using another attribute name) More... | |
TTErr | removeAttribute (const TTSymbol name) |
Remove an attribute. More... | |
TTErr | findAttribute (const TTSymbol name, TTAttribute **attr) |
Find an attribute. More... | |
TTErr | setAttributeValue (const TTSymbol name, TTValue &value) |
Set an attribute value for an object. More... | |
template<class T > | |
TTErr | set (const TTSymbol aName, T aValue) |
Set an attribute value for an object This is the same as calling setAttributeValue(). More... | |
TTErr | getAttributeValue (const TTSymbol name, TTValue &value) |
Get an attribute value for an object. More... | |
template<class T > | |
TTErr | get (const TTSymbol aName, T &aReturnedValue) |
Get an attribute value for an object This is the same as calling getAttributeValue(). More... | |
TTSymbol | getAttributeType (const TTSymbol name) |
Return the type of an attribute as a symbol. More... | |
TTErr | getAttributeGetterFlags (const TTSymbol name, TTAttributeFlags &value) |
Get the getterFlags of an attribute. More... | |
TTErr | setAttributeGetterFlags (const TTSymbol name, TTAttributeFlags &value) |
Set the getterFlags of an attribute. More... | |
TTErr | getAttributeSetterFlags (const TTSymbol name, TTAttributeFlags &value) |
Get the setterFlags of an attribute. More... | |
TTErr | setAttributeSetterFlags (const TTSymbol name, TTAttributeFlags &value) |
Set the setterFlags of an attribute. More... | |
TTErr | registerAttributeProperty (const TTSymbol attributeName, const TTSymbol propertyName, const TTValue &initialValue, TTGetterMethod getter, TTSetterMethod setter) |
Register an attribute property. More... | |
TTErr | registerMessageProperty (const TTSymbol messageName, const TTSymbol propertyName, const TTValue &initialValue, TTGetterMethod getter, TTSetterMethod setter) |
Register an message property. More... | |
TTErr | getAttribute (const TTSymbol name, TTAttributePtr *attributeObject) |
Search for and locate an attribute. More... | |
TTErr | getMessage (const TTSymbol name, TTMessagePtr *messageObject) |
Search for and locate a message. More... | |
void | getAttributeNames (TTValue &attributeNameList) |
Return a list of names of the available attributes. More... | |
void | getMessageNames (TTValue &messageNameList) |
Return a list of names of the available messages. More... | |
TTSymbol | getName () const |
Return the name of this class. More... | |
TTErr | registerMessage (const TTSymbol name, TTMethod method) |
Register a message with this object. More... | |
TTErr | findMessage (const TTSymbol name, TTMessage **message) |
Find a message registered with this object. More... | |
TTErr | removeMessage (const TTSymbol name) |
Remove a message. More... | |
TTErr | sendMessage (const TTSymbol name) |
TODO: Document this function. More... | |
TTErr | registerObserverForMessage (const TTObject &observingObject, const TTSymbol messageName) |
Register an observer for a message. More... | |
TTErr | registerObserverForAttribute (const TTObject &observingObject, const TTSymbol attributeName) |
Register an observer for an attribute. More... | |
TTErr | registerObserverForNotifications (const TTObject &observingObject) |
Register an observer. More... | |
TTErr | unregisterObserverForMessage (const TTObject &observingObject, const TTSymbol messageName) |
Unregister an observer for a message. More... | |
TTErr | unregisterObserverForAttribute (const TTObject &observingObject, const TTSymbol attributeName) |
Unregister an observer for an attribute. More... | |
TTErr | unregisterObserverForNotifications (const TTObject &observingObject) |
Unregister an observer for notifications. More... | |
TTErr | sendNotification (const TTSymbol name, const TTValue &arguments) |
Send a notification. More... | |
TTErr | logMessage (TTImmutableCString fmtstring,...) |
Log messages scoped to this object instance. More... | |
TTErr | logWarning (TTImmutableCString fmtstring,...) |
Log warnings scoped to this object instance. More... | |
TTErr | logError (TTImmutableCString fmtstring,...) |
Log errors scoped to this object instance. More... | |
TTErr | logDebug (TTImmutableCString fmtstring,...) |
Log messages (scoped to this object instance) to output only if the basic debugging flag is enabled in the environment. More... | |
TTErr | lock () |
Lock the object in order to ensure thread-safe processing. More... | |
TTErr | unlock () |
Unlock the object when thread-safe processing is no longer required. More... | |
TTBoolean | isLocked () |
Query if the object currently is locked for thread-safe processing. More... | |
TTBoolean | waitForLock () |
If the object is locked (e.g. More... | |
Public Attributes inherited from TTObjectBase | |
TTBoolean | valid |
If the object isn't completely built, or is in the process of freeing, this will be false. | |
TTBoolean | track |
enable the print of a log message to ease the track of reference counting mechanism on an instance More... | |
TTMutesolo mutes and soloes individual channels of the input audio signal.
Soloing takes presedence over muting.
Definition at line 26 of file TTMuteSolo.h.
|
protected |
Clear all current mute and solo settings.
Definition at line 56 of file TTMuteSolo.cpp.
References kTTErrNone, mChannelMute, mChannelSolo, mStoredStateNumChannels, and updateGains().
Referenced by test().
Get current mute settings for all channels as an array.
Not | used; |
aMuteValue | Returns mute values for all channels as an array. |
Definition at line 136 of file TTMuteSolo.cpp.
References kTTErrNone, mChannelMute, mStoredStateNumChannels, and TTValue::resize().
Referenced by test().
Get current solo settings for all channels as an array.
Not | used; |
aSoloValue | Returns solo values for all channels as an array. |
Definition at line 148 of file TTMuteSolo.cpp.
References kTTErrNone, mChannelSolo, mStoredStateNumChannels, and TTValue::resize().
Referenced by test().
|
protected |
If there is a need to store mute/solo information for a channel that is not yet tracked, the number of channels that information need to be stored for is increased.
mStoredStateNumChannels can increase over the run of the application, but once expanded it will never decrease. This is needed in roder to be able to store the states for channels that the audio processing do not yet know of.
aDesiredChannel | The channel that it is desired to store information. |
Definition at line 167 of file TTMuteSolo.cpp.
References gain, kTTErrNone, mChannelMute, mChannelSolo, mStoredStateNumChannels, oldGain, and updateGains().
Referenced by setChannelMute(), setChannelSolo(), and updateMaxNumChannels().
|
protected |
A standard audio processing method as used by TTBlue objects.
Definition at line 188 of file TTMuteSolo.cpp.
References gain, TTAudioSignal::getMinChannelCount(), kTTErrNone, and TTAudioSignal::mSampleVectors.
Referenced by processAudioInterpolated().
|
protected |
Alternative audio processing method that might be used temporarily when mute or solo settings has been changed in order to interpolate linearly to the new gain value over one signal vector.
inputs | Pointer to array of input audio signals. |
outputs | Pointer to array of processaed audio signals. |
Definition at line 208 of file TTMuteSolo.cpp.
References gain, TTAudioSignal::getMinChannelCount(), kTTErrNone, TTAudioSignal::mSampleVectors, oldGain, processAudio(), and setProcessMethod.
Referenced by updateGains().
Set whether one of the channels is muted or not.
input | Expects a TTValue containing an array of two values: Channel number and flag indicating if it is to be muted or not. |
outputNotUsed | This argument is not used. |
Definition at line 90 of file TTMuteSolo.cpp.
References increaseStoredStateNumChannels(), kTTErrWrongNumValues, mChannelMute, TTValue::size(), and updateGains().
Referenced by test().
Set whether one of the channels is soloed or not.
input | Expects a TTValue containing an array of two values: Channel number and flag indicating if it is to be soloed or not. |
outputNotUsed | This argument is not used. |
Definition at line 113 of file TTMuteSolo.cpp.
References increaseStoredStateNumChannels(), kTTErrWrongNumValues, mChannelSolo, TTValue::size(), and updateGains().
Referenced by test().
Set boolean attribute determining whether linear interpolation is applied or not.
newValue | The new value that the interpolate attribute is to have. |
Unit testing.
Reimplemented from TTAudioObjectBase.
Definition at line 37 of file TTMuteSolo.test.cpp.
References TTValue::append(), clear(), getChannelMute(), getChannelSolo(), TTAudioObjectBase::mMaxNumChannels, mStoredStateNumChannels, TTAudioObjectBase::process(), TTObjectBase::set(), setChannelMute(), setChannelSolo(), and TTValue::size().
|
protected |
Update gain values in response to current mute and solo settings.
Definition at line 65 of file TTMuteSolo.cpp.
References gain, kTTErrNone, mChannelMute, mChannelSolo, mInterpolated, mStoredStateNumChannels, processAudioInterpolated(), and setProcessMethod.
Referenced by clear(), increaseStoredStateNumChannels(), setChannelMute(), and setChannelSolo().
Receives notifications when there are changes to the inherited maxNumChannels attribute.
This allocates memory for mute, solo and gain so that each channel's previous values are remembered.
oldMaxNumChannels | The previous maximum number of channels. |
outputNotUsed | This argument is not used. |
Definition at line 160 of file TTMuteSolo.cpp.
References increaseStoredStateNumChannels(), and TTAudioObjectBase::mMaxNumChannels.