AAX Setup¶
AAX is an optional plugin format for Pro Tools. Pulp supports AAX Native targets on macOS and Windows when you provide the Avid AAX SDK locally. The SDK is not bundled — your local AAX toolchain stays outside the repo.
Platform Scope¶
- Supported: macOS and Windows
- Unsupported: Linux and Ubuntu
- Current target: AAX Native only
- Out of scope: DSP, AudioSuite, redistributing any Avid or PACE assets
If you request AAX in FORMATS on Linux or Ubuntu, CMake now fails with a
direct error instead of silently ignoring it.
What To Download¶
Sign in at https://developer.avid.com/aax/ and download:
AAX SDKDigiShell and AAX Validatorfor your platform
Optional:
AAX Plug-In Page Table Editorif you need page-table/control-surface mapping later
Not needed for normal Pulp integration and should stay out of this repo:
AAX Developer Toolsbeta bundles- Pro Tools installers
- HD Driver
- Avid Cloud Client Services
Those extra packages may be useful for deeper host-specific workflows later, but they are not required for the initial AAX integration, build, or validator loop.
Suggested Install Locations¶
Use a stable user-local path so the CLI can auto-discover the tools:
macOS / Linux-style home paths:
Windows:
Environment variables override auto-discovery:
export PULP_AAX_SDK_DIR=~/SDKs/avid/aax-sdk/current
export PULP_AAX_VALIDATOR_DIR=~/SDKs/avid/aax-validator/current
On Windows:
$env:PULP_AAX_SDK_DIR="$env:USERPROFILE\SDKs\avid\aax-sdk\current"
$env:PULP_AAX_VALIDATOR_DIR="$env:USERPROFILE\SDKs\avid\aax-validator\current"
PULP_AAX_SDK_DIR should point at the unpacked SDK root containing
Interfaces/AAX.h.
PULP_AAX_VALIDATOR_DIR should point at the extracted validator root containing
CommandLineTools/.
Build Workflow¶
Keep AAX off by default. Enable it only when you actually want to build .aaxplugin
targets:
cmake -S . -B build \
-DPULP_ENABLE_AAX=ON \
-DPULP_AAX_SDK_DIR=$HOME/SDKs/avid/aax-sdk/current
cmake --build build --target MyPlugin_AAX
Projects that want AAX must include AAX in FORMATS and provide:
MANUFACTURER_CODEAAX_PRODUCT_CODEAAX_NATIVE_CODEaax_entry.cpp
If the SDK is missing, pulp status, pulp doctor, and pulp create now point
you back to the Avid download page instead of guessing.
Validation Workflow¶
When DigiShell + AAX Validator are installed:
Behavior:
pulp validateruns a faster describe-validation probe for each built.aaxpluginpulp validate --allruns the broader AAX validator suite- Run one full AAX validator suite at a time; DigiShell may reuse a local port and collide with parallel runs
- If the validator is missing, the CLI reports
SKIPPEDand prints the Avid download guidance
On macOS, you may need to remove quarantine attributes from the extracted validator tools if the shell refuses to execute them.
Some Avid tooling may depend on your local Avid/PACE/iLok setup. Start with the SDK plus DigiShell/AAX Validator first, and add more tooling only when your workflow actually needs it.
Rules¶
- Never commit the AAX SDK, DigiShell, validator binaries, Avid examples, or generated vendor files into this repo
- Never unpack the AAX SDK inside the Pulp source tree
- Never copy implementation text from Avid sample code into Pulp
- Keep all vendor assets developer-supplied and out-of-tree
- Treat local AAX tools as optional extensions, not bundled dependencies
The repo audit tooling is designed to help maintainers catch this:
python3 tools/deps/audit.py --strict
CLI Behavior¶
Pulp now handles AAX as a first-class optional format:
pulp statusreports detected AAX SDKs on macOS/Windows and explicit unsupported status on Linux/Ubuntupulp doctorreports optional AAX SDK and validator discovery on macOS/Windowspulp createscaffoldsaax_entry.cppon macOS/Windows but keeps AAX disabled until you opt inpulp validateuses the validator when present and explains what to install when it is not
That keeps the day-to-day developer UX clear without bundling any Avid code.