| AAX SDK 2.8.0 Avid Audio Extensions Development Kit

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

Loading...
Searching...
No Matches
Linked parameter update sequences
AAX SDK Manual » Additional Topics » Parameter updates

Sequence diagrams for some common linked parameter update scenarios.

# On this page

- User-generated update
- Update from automation playback

Note
  To enable logging for these events at run time set `DTF_AUTOMATION=file@DTP_LOW` in the DigiTrace configuration file.

## Notes on threading for these sequences

- Calls from the host into AAX_IEffectParameters may occur on any thread. In general, the only synchronization that is guaranteed for data model calls in these diagrams is that the call will follow whatever event is indicated as its trigger.
- Calls from the host into AAX_IEffectGUI will occur on the main application thread unless indicated otherwise in the AAX_IEffectGUI documentation.
- Host-driven updates to the algorithm context are always synchronized with the real-time processing thread

See also
  Basic parameter update sequences

# User-generated update

This is the sequence of calls for a parameter update triggered by the user. For this sequence, we assume that the edit was triggered by a GUI event. Updates from control surfaces are handled in exactly the same way, except that the parameter touch, set value, and release tokens are generated by the control surface.

In this example the updated parameter is reciprocally linked to one other parameter. These are the "linker" and "linked" parameters, respectively.

This procedure is very similar to the non-linked case described here. In the diagrams below, red arcs and pink section headings are used to indicate events that are specific to the linked parameter case.

Notes:

1. This sequence shows the linked parameter reciprocally issuing a touch on the linker parameter. The touch fails since the linker parameter is already touched at this time. If the roles were reversed (if an edit occurred on the linked parameter) then this touch would succeed.
2. The host flags all set value tokens that are triggered by a plug-in within the scope of AAX_IEffectParameters::UpdateParameterNormalizedValue() "UpdateParameterNormalizedValue()". When those set value tokens are processed they result in additional calls to AAX_IEffectParameters::UpdateParameterNormalizedValue() "UpdateParameterNormalizedValue()". The host sets `iSource` to AAX_eUpdateSource_Parameter for each of these subsequent calls to indicate that the update originated from within a parameter update event.
3. IsParameterLinkReady() returns `true` during the linker parameter update because the update source is unknown and the parameter is touched. Both conditions must be true in order for the linking logic to proceed with setting linked parameters' values.
4. IsParameterLinkReady() returns `false` during the linked parameter update because the source is AAX_eUpdateSource_Parameter. This prevents update cycles for reciprocally linked parameters, as demonstrated here.

## High-level interface calls and events

High-level sequence of interface calls and events for a reciprocally linked parameter update following a user-generated edit

## Detailed interface calls and events

Note that this diagram assumes a GUI implementation that uses SetParameterNormalizedValue(). The implementation could also use other parameter set methods, either in AAX_IEffectParameters or directly on an AAX_IParameter. The overall sequence would remain the same.

Detailed sequence of method calls and events for a reciprocally linked parameter update following a user-generated edit on the plug-in GUI

# Update from automation playback

Since all parameter linking occurs while recording automation, automation playback is very simple. The automation lanes may contain any arbitrary values, so, in order to avoid fighting between incompatible values, the plug-in should respect all automation values during playback.

Notes:

1. IsParameterLinkReady() returns `false` during automation playback because the updated parameter is not touched. This ensures that automation playback will proceed with the written values and also guarantees that the user will always be able to override the automation using a control surface encoder or GUI editor.

Sequence of method calls and events during automation playback with linked parameters
Collaboration diagram for Linked parameter update sequences: