Classes | Public Types | Public Member Functions | List of all members
AudioProcessorParameter Class Referenceabstract

An abstract base class for parameter objects that can be added to an AudioProcessor. More...

Inheritance diagram for AudioProcessorParameter:

Classes

class  Listener
 A base class for listeners that want to know about changes to an AudioProcessorParameter. More...
 

Public Types

enum  Category {
  genericParameter = (0 << 16) | 0, inputGain = (1 << 16) | 0, outputGain = (1 << 16) | 1, inputMeter = (2 << 16) | 0,
  outputMeter = (2 << 16) | 1, compressorLimiterGainReductionMeter = (2 << 16) | 2, expanderGateGainReductionMeter = (2 << 16) | 3, analysisMeter = (2 << 16) | 4,
  otherMeter = (2 << 16) | 5
}
 

Public Member Functions

 AudioProcessorParameter () noexcept
 
virtual ~AudioProcessorParameter ()
 Destructor. More...
 
virtual float getValue () const =0
 Called by the host to find out the value of this parameter. More...
 
virtual void setValue (float newValue)=0
 The host will call this method to change the value of a parameter. More...
 
void setValueNotifyingHost (float newValue)
 A processor should call this when it needs to change one of its parameters. More...
 
void beginChangeGesture ()
 Sends a signal to the host to tell it that the user is about to start changing this parameter. More...
 
void endChangeGesture ()
 Tells the host that the user has finished changing this parameter. More...
 
virtual float getDefaultValue () const =0
 This should return the default value for this parameter. More...
 
virtual String getName (int maximumStringLength) const =0
 Returns the name to display for this parameter, which should be made to fit within the given string length. More...
 
virtual String getLabel () const =0
 Some parameters may be able to return a label string for their units. More...
 
virtual int getNumSteps () const
 Returns the number of steps that this parameter's range should be quantised into. More...
 
virtual bool isDiscrete () const
 Returns whether the parameter uses discrete values, based on the result of getNumSteps, or allows the host to select values continuously. More...
 
virtual bool isBoolean () const
 Returns whether the parameter represents a boolean switch, typically with "On" and "Off" states. More...
 
virtual String getText (float value, int) const
 Returns a textual version of the supplied parameter value. More...
 
virtual float getValueForText (const String &text) const =0
 Should parse a string and return the appropriate value for it. More...
 
virtual bool isOrientationInverted () const
 This can be overridden to tell the host that this parameter operates in the reverse direction. More...
 
virtual bool isAutomatable () const
 Returns true if the host can automate this parameter. More...
 
virtual bool isMetaParameter () const
 Should return true if this parameter is a "meta" parameter. More...
 
virtual Category getCategory () const
 Returns the parameter's category. More...
 
int getParameterIndex () const noexcept
 Returns the index of this parameter in its parent processor's parameter list. More...
 
virtual String getCurrentValueAsText () const
 Returns the current value of the parameter as a String. More...
 
virtual StringArray getAllValueStrings () const
 Returns the set of strings which represent the possible states a parameter can be in. More...
 
void addListener (Listener *newListener)
 Registers a listener to receive events when the parameter's state changes. More...
 
void removeListener (Listener *listener)
 Removes a previously registered parameter listener. More...
 
void sendValueChangedMessageToListeners (float newValue)
 

Detailed Description

An abstract base class for parameter objects that can be added to an AudioProcessor.

See also
AudioProcessor::addParameter

Member Enumeration Documentation

◆ Category

Enumerator
genericParameter 
inputGain 

If your parameter is not a meter then you should use this category.

outputGain 

Currently not used.

inputMeter 

The following categories tell the host that this parameter is a meter level value and therefore read-only.

Most hosts will display these type of parameters as a meter in the generic view of your plug-in. Pro-Tools will also show the meter in the mixer view.

outputMeter 
compressorLimiterGainReductionMeter 
expanderGateGainReductionMeter 
analysisMeter 
otherMeter 

Constructor & Destructor Documentation

◆ AudioProcessorParameter()

AudioProcessorParameter::AudioProcessorParameter ( )
noexcept

◆ ~AudioProcessorParameter()

virtual AudioProcessorParameter::~AudioProcessorParameter ( )
virtual

Destructor.

Member Function Documentation

◆ getValue()

virtual float AudioProcessorParameter::getValue ( ) const
pure virtual

Called by the host to find out the value of this parameter.

Hosts will expect the value returned to be between 0 and 1.0.

This could be called quite frequently, so try to make your code efficient. It's also likely to be called by non-UI threads, so the code in here should be thread-aware.

◆ setValue()

virtual void AudioProcessorParameter::setValue ( float  newValue)
pure virtual

The host will call this method to change the value of a parameter.

The host may call this at any time, including during the audio processing callback, so your implementation has to process this very efficiently and avoid any kind of locking.

If you want to set the value of a parameter internally, e.g. from your editor component, then don't call this directly - instead, use the setValueNotifyingHost() method, which will also send a message to the host telling it about the change. If the message isn't sent, the host won't be able to automate your parameters properly.

The value passed will be between 0 and 1.0.

◆ setValueNotifyingHost()

void AudioProcessorParameter::setValueNotifyingHost ( float  newValue)

A processor should call this when it needs to change one of its parameters.

This could happen when the editor or some other internal operation changes a parameter. This method will call the setValue() method to change the value, and will then send a message to the host telling it about the change.

Note that to make sure the host correctly handles automation, you should call the beginChangeGesture() and endChangeGesture() methods to tell the host when the user has started and stopped changing the parameter.

◆ beginChangeGesture()

void AudioProcessorParameter::beginChangeGesture ( )

Sends a signal to the host to tell it that the user is about to start changing this parameter.

This allows the host to know when a parameter is actively being held by the user, and it may use this information to help it record automation. If you call this, it must be matched by a later call to endChangeGesture().

◆ endChangeGesture()

void AudioProcessorParameter::endChangeGesture ( )

Tells the host that the user has finished changing this parameter.

This allows the host to know when a parameter is actively being held by the user, and it may use this information to help it record automation. A call to this method must follow a call to beginChangeGesture().

◆ getDefaultValue()

virtual float AudioProcessorParameter::getDefaultValue ( ) const
pure virtual

This should return the default value for this parameter.

◆ getName()

virtual String AudioProcessorParameter::getName ( int  maximumStringLength) const
pure virtual

Returns the name to display for this parameter, which should be made to fit within the given string length.

◆ getLabel()

virtual String AudioProcessorParameter::getLabel ( ) const
pure virtual

Some parameters may be able to return a label string for their units.

For example "Hz" or "%".

◆ getNumSteps()

virtual int AudioProcessorParameter::getNumSteps ( ) const
virtual

Returns the number of steps that this parameter's range should be quantised into.

If you want a continuous range of values, don't override this method, and allow the default implementation to return AudioProcessor::getDefaultNumParameterSteps().

If your parameter is boolean, then you may want to make this return 2.

The value that is returned may or may not be used, depending on the host. If you want the host to display stepped automation values, rather than a continuous interpolation between successive values, you should override isDiscrete to return true.

See also
isDiscrete

◆ isDiscrete()

virtual bool AudioProcessorParameter::isDiscrete ( ) const
virtual

Returns whether the parameter uses discrete values, based on the result of getNumSteps, or allows the host to select values continuously.

This information may or may not be used, depending on the host. If you want the host to display stepped automation values, rather than a continuous interpolation between successive values, override this method to return true.

See also
getNumSteps

◆ isBoolean()

virtual bool AudioProcessorParameter::isBoolean ( ) const
virtual

Returns whether the parameter represents a boolean switch, typically with "On" and "Off" states.

This information may or may not be used, depending on the host. If you want the host to display a switch, rather than a two item dropdown menu, override this method to return true. You also need to override isDiscrete() to return true and getNumSteps() to return 2.

See also
isDiscrete getNumSteps

◆ getText()

virtual String AudioProcessorParameter::getText ( float  value,
int   
) const
virtual

Returns a textual version of the supplied parameter value.

The default implementation just returns the floating point value as a string, but this could do anything you need for a custom type of value.

Reimplemented in AudioPluginInstance::Parameter.

◆ getValueForText()

virtual float AudioProcessorParameter::getValueForText ( const String text) const
pure virtual

Should parse a string and return the appropriate value for it.

Implemented in AudioPluginInstance::Parameter.

◆ isOrientationInverted()

virtual bool AudioProcessorParameter::isOrientationInverted ( ) const
virtual

This can be overridden to tell the host that this parameter operates in the reverse direction.

(Not all plugin formats or hosts will actually use this information).

◆ isAutomatable()

virtual bool AudioProcessorParameter::isAutomatable ( ) const
virtual

Returns true if the host can automate this parameter.

By default, this returns true.

◆ isMetaParameter()

virtual bool AudioProcessorParameter::isMetaParameter ( ) const
virtual

Should return true if this parameter is a "meta" parameter.

A meta-parameter is a parameter that changes other params. It is used by some hosts (e.g. AudioUnit hosts). By default this returns false.

◆ getCategory()

virtual Category AudioProcessorParameter::getCategory ( ) const
virtual

Returns the parameter's category.

◆ getParameterIndex()

int AudioProcessorParameter::getParameterIndex ( ) const
noexcept

Returns the index of this parameter in its parent processor's parameter list.

◆ getCurrentValueAsText()

virtual String AudioProcessorParameter::getCurrentValueAsText ( ) const
virtual

Returns the current value of the parameter as a String.

This function can be called when you are hosting plug-ins to get a more specialsed textual represenation of the current value from the plug-in, for example "On" rather than "1.0".

If you are implementing a plug-in then you should ignore this function and instead override getText.

◆ getAllValueStrings()

virtual StringArray AudioProcessorParameter::getAllValueStrings ( ) const
virtual

Returns the set of strings which represent the possible states a parameter can be in.

If you are hosting a plug-in you can use the result of this funtion to populate a ComboBox listing the allowed values.

If you are implementing a plug-in then you do not need to override this.

◆ addListener()

void AudioProcessorParameter::addListener ( Listener newListener)

Registers a listener to receive events when the parameter's state changes.

If the listener is already registered, this will not register it again.

See also
removeListener

◆ removeListener()

void AudioProcessorParameter::removeListener ( Listener listener)

Removes a previously registered parameter listener.

See also
addListener

◆ sendValueChangedMessageToListeners()

void AudioProcessorParameter::sendValueChangedMessageToListeners ( float  newValue)

The documentation for this class was generated from the following file: