| AAX SDK 2.8.0 Avid Audio Extensions Development Kit

- Welcome
- Manual
- Classes
- Files
- Lists
- Support

Loading...
Searching...
No Matches
Parameter automation
AAX SDK Manual » Additional Topics

Information about parameter automation.

# On this page

# Overview

The term "automation" can mean two things in AAX:

1. A host feature allowing users to record and play back plug-in parameter changes. In this documentation, this data is referred to as automation data, and it is stored in automation lanes in the host.
2. A system for arbitrating between changes from different parameter editors such as the plug-in GUI, control surfaces, and pre-recorded automation values. In this documentation, this is referred to as the event system for parameters.

Here are some examples of how these two different meanings are used in AAX:

- The AAX_IAutomationDelegate provides methods for interacting with the host's parameter event system.
- AAX_IACFEffectParameters::GetParameterIsAutomatable() and the `automatable` parameter in the AAX_CParameter constructor reflect whether a parameter can have automation written and read by the host.
- AAX_IController::GetCurrentAutomationTimestamp() gets the timestamp for pre-recorded automation data when it is received by the plug-in during playback

For more information about the parameter event system, see the Parameter updates pages, and particularly the information on the Token protocol

# Plug-in elements used for automation

Plug-in elements used for events and automation

## Defining automatable parameters

In order for a parameter to be available for automation recording, editing, and playback, the plug-in must meet the following criteria:

- It must provide `true` when the host calls GetParameterIsAutomatable() for the parameter. In nearly all plug-ins, this means providing `true` to the `automatable` parameter in the parameter's AAX_CParameter constructor.
- It must expose the parameter to the parameter event system (see below.)

In order for a parameter to be exposed to the event system, the plug-in must meet the following criteria:

- It must respond to all parameter methods in the AAX_IEffectParameters interface, particularly GetNumberOfParameters() and GetParameterIDFromIndex(). Generally this is accomplished by adding an AAX_CParameter object for each parameter to the plug-in's Parameter Manager.
- It must include the parameter in its one-parameter-per-page `'PgTL'` (default) page tables. See Implementing Page Tables in the Page Table Guide for more information about defining this page table type.

All plug-in parameters must be registered with the host's event system in order for editors, including the plug-in's GUI, to work properly. Therefore a plug-in should always define a complete `'PgTL'` (default) page table including all of its parameters, even the parameters that are not "automatable".

# Advanced automation topics

- Linked parameters

Collaboration diagram for Parameter automation: