Channel Configuration

The new channel configuration system is quite confusing. Could you make a tutorial on how to setup simple cases?

I'm having problems with Pro Tools. Logic seems to just show Mono, Mono->Stereo, and Stereo (as it should) while Pro Tools now returns that:

I just need Mono and Stereo (for now). What should I do?



Just to add more details. The multiple channel configurations in Pro Tools appears only when I have the old deprecated field empty (so I'm not using any old code). By default now Pro Tools returns the pic in OP.

I've played a bit with what I could find in the forum and examples and apparently this code seems to returns just Mono and Stereo (as it should), but no Mono->Stereo.

bool setPreferredBusArrangement (bool isInputBus, int busIndex,
                                 const AudioChannelSet& preferred) override

        const int numChannels = preferred.size();

        // do not allow disabling a bus
        if (numChannels == 0) return false;
        // always have the same channel layout on both input and output on the main bus
        if (! AudioProcessor::setPreferredBusArrangement (! isInputBus, busIndex, preferred))
            return false;

        // you must ALWAYS call through to the base class if you accept the layout change
        return AudioProcessor::setPreferredBusArrangement (isInputBus, busIndex, preferred);


I have no idea if this is the correct way to do what I need (a simple Mono, Stereo or even Mono->Stereo plugin).



You should be returning false in setPreferredBusArrangement if numChannels is bigger than two, right?

Yes, I guess I have to add that as well, but it seems that the bit to have same amount of input and output automatically force only Mono and Stereo configurations.

Another weird thing reported by one of my users is a configuration Stereo/Mono (again, Pro Tools only) which essentially crashed the host.