AAX instrument with side chain input does not show up in PT

Our AAX instrument plugin with the following channel configuration does not show up in Pro Tools:

TalCore::TalCore()
   : AudioProcessor (BusesProperties()
                     .withOutput ("Output 1", AudioChannelSet::stereo(), true)
                     .withOutput ("Output 2", AudioChannelSet::stereo(), false)
                     .withInput("Input", AudioChannelSet::stereo(), true)
                     .withInput  ("Sidechain", AudioChannelSet::stereo(), false)) // this line makes problems

It works if i remove the sidechain input channel. The problem is that i need this sidechain input for the VST3 format.
I’m using CMake. I tried to exclude the sidechain with #if JucePlugin_Build_AAX. But it looks like this is always true, because i build all formats together and i want to keep it that way.

Any help is welcome. I’m stuck here and need a solution.

IIRC ProTools only accepts mono sidechains.

In the isBusesLayoutSupported() you should be able to accept different layouts depending on PluginHostType.
And you might be able to create a BusesProperties in a free function:

AudioProcessor::BusesProperties createBusesProperties()
{
    juce::PluginHostType hostType;
    auto properties = BusesProperties()
                     .withOutput ("Output 1", AudioChannelSet::stereo(), true)
                     .withOutput ("Output 2", AudioChannelSet::stereo(), false)
                     .withInput("Input", AudioChannelSet::stereo(), true);
    properties.addBus ("Sidechain", 
                       hostType.isProTools() ? AudioChannelSet::mono() :
                                               AudioChannelSet::stereo(), 
                       false);
    return properties;
}

TalCore::TalCore() : AudioProcessor (createBusesProperties() // ...

Good luck

2 Likes

Your solution worked. Thanks a lot daniel.

juce::AudioProcessor::BusesProperties TalCore::createBusesProperties()
{
    juce::PluginHostType hostType;
    auto properties = BusesProperties()
            .withOutput ("Output 1", AudioChannelSet::stereo(), true)
            .withOutput ("Output 2", AudioChannelSet::stereo(), false)
            .withOutput ("Output 3", AudioChannelSet::stereo(), false)
            .withOutput ("Output 4", AudioChannelSet::stereo(), false)
            .withOutput ("Output 5", AudioChannelSet::stereo(), false)
            .withOutput ("Output 6", AudioChannelSet::stereo(), false)
            .withOutput ("Output 7", AudioChannelSet::stereo(), false)
            .withOutput ("Output 8", AudioChannelSet::stereo(), false)
            .withOutput ("Output 9", AudioChannelSet::stereo(), false)
            .withOutput ("Output 10", AudioChannelSet::stereo(), false)
            .withOutput ("Output 11", AudioChannelSet::stereo(), false)
            .withOutput ("Output 12", AudioChannelSet::stereo(), false)
            .withOutput ("Output 13", AudioChannelSet::stereo(), false)
            .withOutput ("Output 14", AudioChannelSet::stereo(), false)
            .withOutput ("Output 15", AudioChannelSet::stereo(), false)
            .withOutput ("Output 16", AudioChannelSet::stereo(), false)
            .withInput("Input", AudioChannelSet::stereo(), true);
    if (!hostType.isProTools())
    {
        properties.addBus(true, "Sidechain", AudioChannelSet::stereo(),false);
    }

    return properties;
}

I had to remove the whole sidechain bus. Maybe because it is an instrument.