BR: "Relax IEEE Compliance" breaks AAX ambisonics channel configuration when compiling in release mode

[EDIT: see below, modified Thread title]


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;
    // 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;

    return true;

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.


bumping this.

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.

Any clue where the problem could be?


Update: when compiling as VST3 (release) and loading it into Audio Plugin Host, I can change the audio config to ambisonics 2nd, 3rd and 4th order.


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.

Could someone at JUCE have a look please?

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.

Same behaviour with the SurroundPluginDemo. You can also trigger the issue when changing optimisation to -O3 and relax IEEE in debug mode.

Only ambisonics 1st, 2nd and 3rd order are missing, all other configs are showing correctly.

Testet on Intel with macOS 11.7.4 and Catalina and Pro Tools 2022.12 and Pro Tools 2021.9, AAX SDK 2.4.1 and 2.5.0 (1.2 KB)

This was a fun one! I managed to repro the issue, and have a fix awaiting review.

1 Like

Glad you had fun with it. I was quite desperate the last few days :grin:

Thanks reuk!

Thanks for your patience, that’s fixed here:

1 Like

awesome, thanks Reuk!

Just out of curiosity: why was it ever using floats to begin with?