![]() |
AAX SDK
2.4.1
Avid Audio Extensions Development Kit
|
Optional (but recommended) system for managing AAX plug-in parameters.
The Parameter Manager is a generic container for a plug-in's parameters, which constitute the complete externally-facing state of a plug-in's data model. Additional internal state data may be stored via settings chunks. The Parameter Manager is owned and operated by the plug-in's Data model interface.
The Parameter Manager provides a convenient and consistent interface by which a plug-in's data model implementation may access its parameters. Other plug-in components that require access to the data model may also use this interface, or a proxy of it, to view the current state of the plug-in.
In the Parameter Manager, implementation-specific parameter behaviors such as taper and display formatting are modular and are applied through delegation. Because of this model, it is possible to easily create a wide variety of behavior combinations without additional subclassing; any display behavior may be combined with any taper behavior, and a newly written behavior can be quickly "mixed in" to many parameters.
In AAX, parameter values can be represented in one of two "domains". Developers work with parameters in the real domain, while the host handles parameters in a scaled, normalized format.
For more information about conversion between parameter domains, see AAX_IParameter.
A taper is the conversion function that translates a parameter's value between its real and normalized forms.
For example, a taper could be created that converts between a normalized value ([0, 1]) and a real frequency value ranging from [20 2000]. The conversion between these two ranges could be linear or logarithmic, or could use any other desired mapping. This mapping, as well as the specific range of the possible logical values, is defined by the taper.
For more information about tapers in AAX, see AAX_ITaperDelegate.
In AAX, individual parameters achieve their own unique behavior by being associated with behavioral delegates.
For example, when AAX_CParameter::SetNormalizedValue() is called on a particular parameter through its AAX_IParameter interface, the AAX_CParameter calls into a AAX_ITaperDelegate that it owns in order to convert the normalized value to its real equivalent. This real value is then set as the parameter's new state.
For more information about how delegates are used to create a parameter's behavior see AAX_CParameter
AAX adheres roughly to a Model-View-Controller pattern. The Parameter Manager functions within the context of AAX_IEffectParameters, which in turn acts as an AAX plug-in's Data Model in an MVC sense. Views, such as the plug-in's GUI, attached control surfaces, or the automation facilities in the AAX host, are given access to the Data Model via a central Controller, which is represented by the AAX_IController interface.
For more information about how MVC applies to AAX, see the Data model interface documentation page.
Classes | |
class | AAX_CParameter< T > |
Generic implementation of an AAX_IParameter. More... | |
class | AAX_CParameterManager |
A container object for plug-in parameters. More... | |
class | AAX_IParameter |
The base interface for all normalizable plug-in parameters. More... | |
Documents | |
Taper delegates | |
Classes for conversion to and from normalized parameter values. | |
Display delegates | |
Classes for parameter value string conversion. | |