First I thought it was a JUCE 7 issue which has been resolved in between but now I wanted to release my next update and when compiling my AAX plugin in release mode, the 1st, 2nd and 3rd order ambisonics multichannel versions of my plugin are missing in Pro Tools. This is not happening in Debug.
I haven’t done anything fancy in isBusesLayoutSupported (const BusesLayout& layouts)
#ifndef JucePlugin_PreferredChannelConfigurations
bool MyAudioProcessor::isBusesLayoutSupported (const BusesLayout& layouts) const
{
#if JucePlugin_IsMidiEffect
ignoreUnused (layouts);
return true;
#else
// This is the place where you check if the layout is supported.
// This checks if the input layout matches the output layout
#if ! JucePlugin_IsSynth
if (layouts.getMainOutputChannelSet() != layouts.getMainInputChannelSet())
return false;
#endif
return true;
#endif
}
#endif
In fact I think this is still the pre-generated code from the plugin template. Plugin Channel Configurations is also empty in Projucer.
It used to work fine with JUCE 6. I don’t know if something changed since JUCE 7 or something else could be wrong.
I’ve created a new empty project with the same isBusesLayoutSupported config like the above and compiled it in release mode. This is loading on ambisonics tracks without any problems. Therefor it is not a JUCE 7, nor an AAX SDK issue.
I found the issue! Sometimes last year, I enabled “Relax IEEE compliance”. I suppose paired with O3 optimisation, there is something screwing up the ambisonics config in the AAX describe routine.
I temporarily disabled relax IEEE and the ambisonic layouts are back in release mode.
Can you confirm that you see the same behaviour in the JUCE SurroundPluginDemo or another of the example plugins? There’s not much we can do to investigate unless we can reproduce the same issue locally.
Please also confirm the OS, architecture (Intel/Arm), and Pro Tools version.