AAX SDK update breaks backward compatibility (SOLVED)

I am updating existing AAX plugin to JUCE 4. I’ve checked backward compatibility and it seems fine - old projects are loading fine using the new version of plugin.

Next, i’ve updated AAX SDK from version 2.2.1 to 2.3.x. Suddenly old projects won’t open anymore - plugin can not be found ??. Strangely enough, i can see new plugin available on a plugin list, but instances already in the project simply won’t load/can’t be found.

New plugin has completely new bus management (JUCE4), but otherwise it is basically the same - name, number of channels, signature etc… And it is loaded when using AAX SDK 2.2.1. It just doesnt work with 2.3.1 and 2.3.2.

Now i am trying to find out, what could break this backward compatibility. Any ideas what should i look for ??


  1. breaking-changes log might provide some details. did you implement the new layouts code (the old one imho is pretty broken)?

This might help -

Possible Issues
ProTools projects generated with a < 4.3.0 JUCE versions of your plug-in, may
load the incorrect bus configuration when upgrading your plug-in to >= 4.3.0
versions of JUCE.

Implement AudioProcessor’s getAAXPluginIDForMainBusConfig callback to manually
override which AAX plug-in id is associated to a specific bus layout of your
plug-in. This workaround is only necessary if you have released your plug-in
built with a version previous to JUCE 4.3.0.

I’d strongly suggest reading all the changes between your last release and current JUCE.

1 Like

I’ve implemented new layouts code (4.3.1) and looks like plugin is loading fine with SDK 2.2.1 but not with 2.3.x. Maybe this is pure coincidence.

Will check further, thanks!

did you rebuild/recompile ? switching between them should even fail to link if you’re not re-compiling the AAX SDK.

Yes, every time i switch to different SDK, i did full rebuild of the AAX library and plugin. Maybe the latest SDK exposes the issue inside new plugin related to breaking changes …

if you care reproducing the issue with a clean project it might be worth so it can be tested/reproduced by others.

  • Start a 4.x projucer project.
  • Compile, open PT and make PTX with it.
  • Re-save in 5.x
  • Compile, open in PT.
  • compile, open in PT.

It might narrow the issue on the way.

Good idea, will do … thx!

btw. this topic is dealing with the same issue

I’ve overriden plugin’s getAAXPluginIDForMainBusConfig() method to ensure the proper plugin IDs for supported configs. Now it is working in all situations tested with all SDK versions.

Thx for help!!!

1 Like