![]() |
AAX SDK
2.4.1
Avid Audio Extensions Development Kit
|
Descriptions of the SDK's example plug-ins.
This SDK includes the following example plug-ins. These plug-ins are designed to demonstrate good AAX plug-in design with varying levels of complexity.
In general, the SDK includes one basic version of each example plug-in, as well as multiple variations on this basic version. Each of these variations demonstrates a particular feature or design approach. To see the specific changes that were made to implement a feature, compare the example plug-in variant that demonstrates the feature to the basic version of the plug-in.
Aside from the GUI Extension examples, which are designed to work with third-party GUI frameworks, each sample plug-in should successfully compile "out of the box". However, you may receive compilation errors during the plug-ins' post-build copy step due to the fact that compiled TI DLLs are not included with this SDK.
These plug-ins provide complete working examples of AAX plug-ins without a lot of extra features. Use these plug-ins as a starting point for understanding AAX.
DemoGain is the simplest example plug-in, incorporating a mono algorithm with gain and bypass parameters.
DemoDist demonstrates some more sophisticated techniques such as coefficient calculation and packaging, private data allocation, and multiple stem format support. DemoDist also demonstrates some basic optimization strategies for improving real-time algorithmic performance.
DemoDelay implements a basic delay algorithm. The variants of this example demonstrate a variety of alternative processing features provided by AAX.
DemoMIDI_Note on demonstrates basic MIDI input functionality. The example will create a step function with every Note On and Note Off message it receives. It also shows how to handle MIDI packages in the Data Model by overriding the AAX_CEffectParameters::UpdateMIDINodes() method.
This is a fully ported version of the Recti-Fi plug-in from Avid's D-Fi suite. For more information about Recti-Fi, see http://www.avid.com/plugins/d-fi
Each of these plug-ins is a slight variation on one of the Basic examples. Each feature example plug-in demonstrates a specific feature or a possible alternative design approach for the plug-in. Compare these plug-ins with the corresponding basic example plug-in when you want to understand how a feature or design should be applied to your own AAX plug-ins.
These examples demonstrate the use of various native and third-party GUI frameworks with AAX. The examples that use third-party frameworks are configured to link to static libraries that combine the SDK's GUI Extensions (located in /Extensions/GUI) and the applicable third-party GUI framework. These libraries are not included in the SDK, and you will need to install the applicable framework SDK before it will be possible to compile these example plug-ins.
This example demonstrates parameter linking. The plug-in is a stereo version of DemoGain, with options to link the left and right channels in two different modes.
This example demonstrates efficient algorithmic coefficient smoothing using a slight variation on the basic DemoGain plug-in algorithm.
This example demonstrates a background routine for algorithm processing. This example also uses the AAX direct data interface for communicating algorithmic delay to the plug-in's controller.
This example includes two Effects that demonstrate use of the Scatter/Gather and Burst DMA facilities in AAX.
This example demonstrates a multichannel plug-in configuration supporting all available point source stem formats.
This plug-in also includes a simple example of gain-reduction metering, which can be used to test host features which use this data such as the gain reduction meters in Pro Tools.
This example demonstrates conversion between different stem formats
This example demonstrates an implementation of the GetParameterValueInfo() method, which is used to properly display certain parameter details on attached control surfaces. See Avid Center Section Page Tables in the Page Table Guide.
This example demonstrates an alternative approach to parameter update handling. It bypasses the packet dispatcher helper class and directly overrides UpdateParameterNormalizedValue() and GenerateCoefficients(). This approach may be appropriate for plug-ins that involve complex mapping between parameter updates, coefficient generation algorithms, and coefficient data packets.
This example includes two Effects that demonstrate the optional Offline processing interface for advanced offline processing features. One Effect implements a simple offline delay line, while the other Effect implements the same delay line but compensates for its delay when rendering to the timeline. This demonstrates how to manually compensate for inherent algorithmic delay in an offline processor.
This example demonstrates the optional Hybrid Processing architecture architecture for AAX plug-ins. This plug-in implements a short delay line that is rendered in the high-latency hybrid context. It can be built and run for either AAX Native or AAX DSP.
This example demonstrates how to properly handle algorithmic latency changes at run-time. It uses a delay line to emulate a latency-inducing algorithm with varying latency based on the delay parameter setting. When the plug-in's latency compensation feature is enabled it declares this latency to the host.
A basic synthesizer plug-in demonstrating use of an external object to manage the plug-in's state. AAX Native plug-ins that are designed to work with a cross-format framework may use a similar design. This plug-in uses AAX_CMonolithicParameters and therefore is AAX Native only.
A variation on DemoMIDI_Synth demonstrating the Auxiliary Output Stems feature. This instrument plug-in supports four independently-routable synthesizer objects.
This simple "drum machine" style sampler plug-in demonstrates sample-accurate global and local MIDI input and the MIDI Transport interface. This plug-in uses AAX_CMonolithicParameters and therefore is AAX Native only.