Unable to load AU plugin as 7.1 (3/4.1)

For some reason I’m unable to load and run a JUCE generated AU plugin in 7.1 (3/4.1) surround format. Logic keeps complaining that it can’t load the plugin with the message:

Failed to load Audio Unit “SurroundPlu”, please contact the manufacturer for an updated version or further assistance.

(Yes, it truncates the plugin name)

I’m using JUCE’s SurroundPluginDemo.h as test project which has a fairly simple isBusesLayoutSupported method:

bool isBusesLayoutSupported (const BusesLayout& layouts) const override
{
	return ((! layouts.getMainInputChannelSet() .isDiscreteLayout())
		 && (! layouts.getMainOutputChannelSet().isDiscreteLayout())
		 && (layouts.getMainInputChannelSet() == layouts.getMainOutputChannelSet())
		 && (! layouts.getMainInputChannelSet().isDisabled()));
}

But even with this simple test the plugin cannot be loaded as 7.1 (3/4.1).

Also, both auval and pluginval strongly suggest that the plugin should be ok. Both test reports are attached to this post.

Does anybody know what might be going on here?

SurroundPluginDemo_AUVAL.txt (18.9 KB)
SurroundPluginDemo_PLUGINVAL.txt (7.9 KB)

EDIT: I should add that loading the plugin as 7.1SDDS works without any problems.

Have you tried just enabling a simple <= 8 in/out IO config for AU? It can be a little picky.

if(wrapperType == AudioProcessor::wrapperType_AudioUnit)
{
    if(layouts.getNumChannels(false, 0) <= 8 && layouts.getNumChannels(true, 0) <= 8)
    {
        if(layouts.getNumChannels(false, 0) == layouts.getNumChannels(true, 0))
            return true;
        else
            return false; 
    }
}

Thanks for your reply. Yes, I tried a similar thing already and to be sure tested with your suggestion, unfortunately this doesn’t work.

Even returning true doesn’t work:

bool isBusesLayoutSupported (const BusesLayout& layouts) const override
{
	return true;
}

I’m getting this same result now with my AU plugin (built with JUCE 6.0.7 on Catalina 10.15.7 in Xcode 11). It validates fine using auval, and Studio One 5 sees it, but it fails in both Logic and Garage Band with the name truncated at 11 characters (same as in this original post)! Anyone know what is going on here?

I’m not using 7.1 channels, just mono/stereo/mono-to-stereo. But the error is identical!

Too bad you’re running into this as well.
Which version of Logic did you use?

10.6.2 on this Mac. Not sure what my QA tester used, and he’s out on holiday now.

What is odd is that it shows up in the menus with the full name, and also shows up and validates fine in the Plug-In Manager in Logic. So why would it fail to load as an insert???

Even more odd: it shows up when instantiated on an Instrument track (as a MIDI-controlled Effect). Still won’t show as an insert on an Audio Track, though.

EDIT: Found it: I had removed the side-chain support because I thought we weren’t using it, but for Logic we need it, whether we use it or not! Now my plugin loads in Logic and GarageBand.

@HowardAntares Can you elaborate?
I seem to have the same issue with 7.1 specifically

In Logic, a MIDI-controlled effect will not show up on an Audio track unless you have a side-chain channel enabled. Without that, Logic treats it just like an instrument.

To use it as a MIDI-controlled effect, you need to put it on a MIDI track, anyway, and then use the sidechain to get the actual audio you want to process from an audio track. So you need that sidechain support whether using it as an audio effect or as a MIDI-controlled effect, anyway.