AAX SDK  2.4.1
Avid Audio Extensions Development Kit
Legacy Porting Notes
Class AAX_CEffectGUI
The default implementations in this class are mostly derived from their equivalent implementations in CProcess and CEffectProcess. For additional CProcess-derived implementations, see AAX_CEffectParameters.
Class AAX_CEffectParameters
The default implementations in this class are mostly derived from their equivalent implementations in CProcess and CEffectProcess. For additional CProcess-derived implementations, see AAX_CEffectGUI.
Member AAX_CHostProcessor::AnalyzeAudio (const float *const inAudioIns[], int32_t inAudioInCount, int32_t *ioWindowSize) AAX_OVERRIDE
Ported from AudioSuite's AnalyzeAudio(bool isMasterBypassed) method
Member AAX_CHostProcessor::InitOutputBounds (int64_t iSrcStart, int64_t iSrcEnd, int64_t *oDstStart, int64_t *oDstEnd) AAX_OVERRIDE
DAE no longer makes use of the mStartBound and mEndBounds member variables that existed in the legacy RTAS/TDM SDK. Use oDstStart and oDstEnd instead (preferably by overriding TranslateOutputBounds().)
Member AAX_CHostProcessor::RenderAudio (const float *const inAudioIns[], int32_t inAudioInCount, float *const iAudioOuts[], int32_t iAudioOutCount, int32_t *ioWindowSize) AAX_OVERRIDE
This method is a replacement for the AudioSuite ProcessAudio method
Class AAX_CMidiPacket
Corresponds to DirectMidiPacket in the legacy SDK
Class AAX_CMidiStream
Corresponds to DirectMidiNode in the legacy SDK
Member AAX_eMIDINodeType_Global
Corresponds to RTAS Shared Buffer global nodes in the legacy SDK
Member AAX_eMIDINodeType_LocalInput
Corresponds to RTAS Buffered MIDI input nodes in the legacy SDK
Member AAX_eMIDINodeType_LocalOutput
Corresponds to RTAS Buffered MIDI output nodes in the legacy SDK
Member AAX_eNotificationEvent_ASPreviewState
Replacement for SetPreviewState()
Member AAX_ePageTable_EQ_Band_Type
converted from eDigi_PageTable_EQ_Band_Type in the legacy SDK
Member AAX_ePageTable_EQ_InCircuitPolarity
converted from eDigi_PageTable_EQ_InCircuitPolarity in the legacy SDK
Member AAX_ePageTable_UseAlternateControl
converted from eDigi_PageTable_UseAlternateControl in the legacy SDK
Member AAX_EParameterType
Values must match unnamed type enum in FicTDMControl.h
Member AAX_eParameterType_Continuous
Matches kDAE_ContinuousValues
Member AAX_eParameterType_Discrete
Matches kDAE_DiscreteValues
Member AAX_EParameterValueInfoSelector
converted from EControlValueInfo in the legacy SDK
Member AAX_ePlugInStrings_AllSelectedRegionsAnalysis
Was pluginStrings_AllSelectedRegionsAnalysis in the RTAS/TDM SDK
Member AAX_ePlugInStrings_Analysis
Was pluginStrings_Analysis in the RTAS/TDM SDK
Member AAX_ePlugInStrings_Bypass
Was pluginStrings_Bypass in the RTAS/TDM SDK
Member AAX_ePlugInStrings_ClipName
Was pluginStrings_RegionName in the RTAS/TDM SDK
Member AAX_ePlugInStrings_MonoMode
Was pluginStrings_MonoMode in the RTAS/TDM SDK
Member AAX_ePlugInStrings_MultiInputMode
Was pluginStrings_MultiInputMode in the RTAS/TDM SDK
Member AAX_ePlugInStrings_Process
Was pluginStrings_Process in the RTAS/TDM SDK
Member AAX_ePlugInStrings_Progress
Was pluginStrings_Progress in the RTAS/TDM SDK
Member AAX_ePlugInStrings_RegionByRegionAnalysis
Was pluginStrings_RegionByRegionAnalysis in the RTAS/TDM SDK
Member AAX_EProperty

These property IDs are somewhat analogous to the pluginGestalt system in the legacy SDK, and several AAX_EProperty values correlate directly with a corresponding legacy plug-in gestalt.

To ensure session interchange compatibility, make sure the 4 character IDs for AAX_eProperty_ManufacturerID, AAX_eProperty_ProductID, AAX_eProperty_PlugInID_Native, and AAX_eProperty_PlugInID_AudioSuite are identical to the legacy SDK's counterpart.

Member AAX_eProperty_AllowPreviewWithoutAnalysis
Was pluginGestalt_AnalyzeOnTheFly
Member AAX_eProperty_CanBypass
Was pluginGestalt_CanBypass.
Member AAX_eProperty_ContinuousOnly
Was pluginGestalt_ContinuousOnly
Member AAX_eProperty_DestinationTrack
Was pluginGestalt_DestinationTrack
Member AAX_eProperty_DisablePreview
Was pluginGestalt_DisablePreview
Member AAX_eProperty_DoesntIncrOutputSample
Was pluginGestalt_DoesntIncrOutputSample
Member AAX_eProperty_ManufacturerID
For legacy plug-in session compatibility, this ID should match the Manufacturer ID used in the corresponding legacy plug-ins.
Member AAX_eProperty_MultiInputModeOnly
Was pluginGestalt_MultiInputModeOnly
Member AAX_eProperty_NeedsOutputDithered
Was pluginGestalt_NeedsOutputDithered
Member AAX_eProperty_OptionalAnalysis
Was pluginGestalt_OptionalAnalysis
Member AAX_eProperty_PlugInID_AudioSuite
For legacy plug-in session compatibility, this ID should match the Type ID used in the corresponding legacy AudioSuite plug-in Types.
Member AAX_eProperty_PlugInID_Native
For legacy plug-in session compatibility, this ID should match the Type ID used in the corresponding legacy RTAS plug-in Types.
Member AAX_eProperty_PlugInID_TI
For legacy plug-in session compatibility, this ID should match the Type ID used in the corresponding legacy TDM plug-in Types.
Member AAX_eProperty_ProductID
For legacy plug-in session compatibility, this ID should match the Product ID used in the corresponding legacy plug-in.
Member AAX_eProperty_RequestsAllTrackData
Was pluginGestalt_RequestsAllTrackData
Member AAX_eProperty_RequiresAnalysis
Was pluginGestalt_RequiresAnalysis
Member AAX_eProperty_SupportsSaveRestore
Was pluginGestalt_SupportsSaveRestore
Member AAX_eProperty_UsesRandomAccess
Was pluginGestalt_UsesRandomAccess
Class AAX_IACFEffectGUI
In the legacy plug-in SDK, these methods were found in CProcess and CEffectProcess. For additional CProcess methods, see AAX_IEffectParameters.
Member AAX_IACFEffectGUI::SetControlHighlightInfo (AAX_CParamID iParameterID, AAX_CBoolean iIsHighlighted, AAX_EHighlightColor iColor)=0
This method was re-named from SetControlHighliteInfo(), its name in the legacy plug-in SDK.
Member AAX_IACFEffectParameters::GetChunkSize (AAX_CTypeID iChunkID, uint32_t *oSize) const =0
In AAX, the value provided by GetChunkSize() should NOT include the size of the chunk header. The value should ONLY reflect the size of the chunk's data.
Member AAX_IACFEffectParameters::GetParameterOrientation (AAX_CParamID iParameterID, AAX_EParameterOrientation *oParameterOrientation) const =0
AAX_IEffectParameters::GetParameterOrientation() corresponds to the GetControlOrientation() method in the legacy RTAS/TDM SDK.
Member AAX_IACFEffectParameters::GetParameterStringFromValue (AAX_CParamID iParameterID, double iValue, AAX_IString *oValueString, int32_t iMaxLength) const =0
This method corresponds to CProcess::MapControlValToString() in the RTAS/TDM SDK
Member AAX_IACFEffectParameters::GetParameterValueFromString (AAX_CParamID iParameterID, double *oValue, const AAX_IString &iValueString) const =0
This method corresponds to CProcess::MapControlStringToVal() in the RTAS/TDM SDK
Class AAX_IACFHostProcessor
This interface provides offline processing features analogous to the legacy AudioSuite plug-in architecture
Class AAX_ICollection
The information in AAX_ICollection is roughly analogous to the information provided by CProcessGroup in the legacy plug-in library
Class AAX_IEffectParameters
In the legacy plug-in SDK, these methods were found in CProcess and CEffectProcess. For additional CProcess methods, see AAX_IEffectGUI.
File AAX_SliderConversions.h
These utilities may be required in order to maintain settings chunk compatibility with plug-ins that were ported from the legacy RTAS/TDM format.
Class AAX_SPlugInChunkHeader
To ensure compatibility with TDM/RTAS plug-ins whose implementation requires fSize to be equal to the size of the chunk's header plus its data, AAE performs some behind-the-scenes record keeping.

The following actions are only taken for AAX plug-ins, so, e.g., if a chunk is stored by an RTAS or TDM plug-in that reports data+header size in fSize and this chunk is then loaded by the AAX version of the plug-in, the header size will be cached as-is from the legacy plug-in and will be subtracted out before the chunk data is passed to the AAX plug-in. If a chunk is stored by an AAX plug-in and is then loaded by a legacy plug-in, the legacy plug-in will receive the cached plug-in header with fSize equal to the data+header size.

These are the special actions that AAE takes to ensure backwards-compatibility when handling AAX chunk data:
  • When AAE retrieves the size of a chunk from an AAX plug-in using GetChunkSize(), it adds the chunk header size to the amount of memory that it allocates for the chunk
  • When AAE retrieves a chunk from an AAX plug-in using GetChunk(), it adds the chunk header size to fChunkSize before caching the chunk
  • Before calling SetChunk() or CompareActiveChunk(), AAE subtracts the chunk header size from the cached chunk's header's fChunkSize member
Module AdditionalFeatures_Meters
The gain-reduction meter handling for AAX plug-ins is different from that for RTAS/TDM plug-ins. AAX plug-ins must invert their gain-reduction meter values manually before reporting these values from the audio processing callback. The AAX host will always thin reported meter data using a "max" operation, and will later invert gain-reduction meter values before they are available to the plug-in GUI or to control surfaces.