AAX compile error with 8.0.4

I updated to JUCE 8.0.4 and now getting the following error (macOS):


**65:44:** **error:** **use of undeclared identifier 'AAX_SDK_2p6p1_REVISION'**

static_assert (AAX_SDK_CURRENT_REVISION >= AAX_SDK_2p6p1_REVISION, "JUCE requires AAX SDK version 2.6.1 or higher");

It looks like I need to update, but I already updated the library a few months ago and also had to modify it to make it compile on windows with CLANG.

Updating the SDK helped. Somehow didn’t expect a breaking change with that 0.0.1 version increment.
It would be great if we use the power of version numbers to indicate if there is a breaking change.

Version increment position for JUCE updates:

XX.0.0 for new releases
0.XX.0 for updates with breaking changes
0.0.XX for small updates and fixes

Just an Idea.

Here is the link to the Windows Clang fix for all others that need it after the SDK update:

Are you using the Projucer or CMake? we now include the AAX SDK with JUCE so if you use the bundled version you shouldn’t experience these issues.

I’m using Cmake. Didn’t know that there is a bundled AAX SDK. Unfortunately, I need a modified one because we build on windows with Clang. The original SDK does not compile. Still waiting for an official fix.
Its probably easier to have my own one than patching JUCE for this.

Could you maybe explain the motivation for bundling the AAX SDK into JUCE? Is it an ease-of-use thing, or were there other decisions which led to this?

I don’t mind, I just want to understand the policy better. I’ve had to maintain a couple of AAX SDK’s by hand for my needs.

It’s primarily for ease-of-use. It means that, like VST3/AU/AUv3/LV2, everything you need to build a plugin is ready to go out-of-the-box. It also takes the guesswork out of selecting an AAX SDK version, as there are sometimes multiple versions available for download from Avid. The version bundled with JUCE is always going to be the best-supported version.

Roger that, going to put this info in the “Reasons to use JUCE 8 in future projects” column, thanks for the explanation.

(And I guess the JUCE/AVID/PACE relationship would make this all legit too? Sorry for ignorance
)

The AAX SDK is now dual-licensed under the old AAX SDK license, or alternatively under the GPLv3, so JUCE can distribute it under the GPLv3.

If you don’t want to be bound by the GPLv3 license terms, then you still need to make sure you meet the AAX SDK license requirements, as before.

Hello,

Just updated to the last June version and AAX 2-8-1.

Have many errors like

  • Use of undeclared identifier ‘AAX_SDK_2p6p1_REVISION’
  • Use of undeclared identifier ‘AAX_eStemFormat_Ambi_4_ACN’
  • Use of undeclared identifier ‘AAX_eStemFormat_5_0_2’; did you mean ‘AAX_eStemFormat_7_0_2’?

And others in similar way.

Could you please give an advice what to do?

You need to update to a more actual AAX SDK.

More actual? I think 2-8-1 is the latest one.
And in June there is a message ““JUCE requires AAX SDK version 2.6.1 or higher””
So my is higher

I was also a bit confused by your version number. I don’t think this was available in June. It looks like the files in the zip are from the 7. Novembre. But I can be wrong


Yes. Files from 6 November in this version.

Any ideas what to do?

Remove the AAX path include from the CMake (or projucer). Then it will take the JUCE AAX SDK.

2 Likes

There is a copy of the AAX SDK distributed inside JUCE itself. Unless you need to make your own modifications to the SDK, I recommend using the bundled version. To do so, clear any “AAX SDK” fields in the Projucer’s exporter settings and global paths window, and resave your project.

1 Like

That’s it. Thank you!