Logic requiring a sidechain input? "Failed to Load Audio Unit"

Hi all,

Having an issue where logic is “forcing” me to have a sidechain input, even though I don’t want one.

My code is as follows:

bool EuropaPluginProcessor::isBusesLayoutSupported(const BusesLayout& layouts) const
    
{
    
    if (layouts.getMainInputChannels() > 2 || layouts.getMainOutputChannels() > 2)
    
    {
    
	    return false;
    
    }
    
      
    
    // no suport for stereo to mono
    
    if (layouts.getMainInputChannels() == 2 && layouts.getMainOutputChannels() == 1)
    
    {
    
	    return false;
    
    }
    
      
    
    const bool kOutput = false;
    
      
    
    // All additional output buses need to be mono
    
    for (int bus = 1; bus < layouts.outputBuses.size(); ++bus)
    
    {
    
            if (layouts.getChannelSet(kOutput, bus).size() != 1)
	    
	    {
	    
		    return false;
	    
	    }
    
    }
    
      
    
    // LOOK HERE!!!!!!
    
    if (layouts.inputBuses.size() != 1)
    
    {
    
    return false;
    
    }
    
      
    
    return true;

}

  

// setting up the initial bus properties

AudioProcessor::BusesProperties PassthroughBlock::getBusLayout()

{

    BusesProperties buses{};

    // Add main buses
    
    bool defaultActivation = true;

    // TODO: This should determine its I/O topology from the submodules.

    buses.addBus(true, "Input", AudioChannelSet::stereo(), defaultActivation);
    
    buses.addBus(false, "Output", AudioChannelSet::stereo(), defaultActivation);
    
    return buses;

}

When I comment out the “LOOK HERE” section. The plugin is able to load in logic in all bus formats, with the sidechain combo box visible.

When I leave that in, the plugin is unable to load and fails with the error text:

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

and the logs of my project say:

ca_require: ValidFormat(inScope, inElement, newDesc) InvalidFormat /Users/cjappl/Documents/Code/cjappl_europa_main/contrib/JUCE-5.4.2/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUBase.cpp:870

I went in to the NoiseGate example (which has a sidechain input). And all it took was removing that input and re-scanning and the sidechain combo box was gone.

Any thoughts?

AU is tricky in that you have multiple ‘type’ of effects.
https://developer.apple.com/documentation/audiotoolbox/audiotoolbox_enumerations/1584142-audio_unit_types

So it is possible to set incorrect/invalid AU type and channel configuration.
if you’ll show your type (or full auval log) it’ll be a little easier to see if there’s a mismatch.