![]() |
AAX SDK
2.4.1
Avid Audio Extensions Development Kit
|
Sequence diagrams for some common linked parameter update scenarios.
DTF_AUTOMATION=file@DTP_LOW
in the DigiTrace configuration file.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:
iSource
to AAX_eUpdateSource_Parameter for each of these subsequent calls to indicate that the update originated from within a parameter update event.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.false
during the linked parameter update because the source is AAX_eUpdateSource_Parameter. This prevents update cycles for reciprocally linked parameters, as demonstrated here.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.
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:
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.