Updating from JUCE4->JUCE5 makes aaxplugin builds not recognized

Recently updated some plugins from juce4 to juce5 only to find that the new builds when distributed break user’s session as the aaxplugin is not recognized and needs to be reapplied. Was curious if anyone could shed any light on a work around or what can be done as this is highly destructive.

I haven’t checked, if that applies to aax as well and if it falls into that time period, but it could be the change from indexed to hashed parameter ids?

In which case setting the macro JUCE_FORCE_USE_LEGACY_PARAM_IDS=1 could help.



JUCE now generates the AAX plug-in bus layout configuration id independent from
the position as it appears in the Projucer’s legacy “Channel layout
configuration” field.

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.


thanks for this suggestion, just tested and didnt work

ahh, looking into this now!
thank you so much for this suggestion will report back if I can get older sessions to recognize again.

Yes, I thought so as soon as I read @otristan’s answer… sorry, was worth a shot…

so to follow up on this, anyone ever had experience in this and might know how to look up a PluginID of an older aaxplugin binary to manually override ?

Save a preset and look in the hex.
You can get it if you see your current ID.
Each I/o layout has different ID also.

There’s also a tool to make controller layout which is an XML file. You can use that also. Check your Avid developer account for farther details.

1 Like

Just to follow up on this thread for anyone doing the same thing, managed to bring back reverse compatibility by doing what @ttg suggested which was to learn all the IDs via a Hex viewer and just manually overriding