Now available: VST3 Wrapper | Sidechains and Aux In/Out for RTAS, AAX, AU

Hey, I already asked that earlier, although I admittedly initially adressed this to the wrong person, can you create a github repo for your patch?
Would make things a lot easier, and would allow everyone to track changes made by you without constantly looking at this thread.

Jules,

If possible, may be you can merge just multiple output busses support at the moment, so that this big task will be divided into smaller implementation steps?

That kind of update will be unbelievable cool!

Anyone using this may want to update the VST setSpeakerArrangement function to the following:


bool setSpeakerArrangement (VstSpeakerArrangement* pluginInput,
                                VstSpeakerArrangement* pluginOutput)
    {
        for (int i = channelLayouts.size(); --i >= 0;)
        {
            ChannelLayout* layout = channelLayouts[i];
            //activate the buses step by step untill the total number of active channels matches the desired number
            layout->setBusesActive(false, ChannelLayout::kInput);
            layout->setBusesActive(false, ChannelLayout::kOutput);
            bool inCountMatches  = false;
            bool outCountMatches = false;
            
            for(int j = 0; j < layout->getNumBuses(ChannelLayout::kInput, false); j++)
            {
                layout->setBusActive(true, j, ChannelLayout::kInput);
                if(layout->getNumTotalChannels(ChannelLayout::kInput, true) == pluginInput->numChannels)
                {
                    inCountMatches = true;
                    break;
                }
            }
            for(int j = 0; j < layout->getNumBuses(ChannelLayout::kOutput, false); j++)
            {
                layout->setBusActive(true, j, ChannelLayout::kOutput);
                if(layout->getNumTotalChannels(ChannelLayout::kOutput, true) == pluginOutput->numChannels)
                {
                    outCountMatches = true;
                    break;
                }
            }
            if (inCountMatches && outCountMatches)
            {
                speakerIn  = (VstSpeakerArrangementType) pluginInput->type;
                speakerOut = (VstSpeakerArrangementType) pluginOutput->type;
                numInChans  = pluginInput->numChannels;
                numOutChans = pluginOutput->numChannels;
                currentChannelLayoutIdx = i;
                filter->setPlayConfigDetails (numInChans, numOutChans,
                                              filter->getSampleRate(),
                                              filter->getBlockSize(),
                                              *layout);
                filter->setSpeakerArrangement (getSpeakerArrangementString (speakerIn),
                                               getSpeakerArrangementString (speakerOut));
                return true;
            }
        }
        filter->setSpeakerArrangement (String::empty, String::empty);
        return false;
    }

Hi, 

because of the many private requests I got and since these features are still missing in official JUCE, here is an updated version that is compatible with the JUCE commit at github from July 13 2015.

Please check the included readme file.

http://codecooking.net/transfer/eg9h34bf83gbw9wf9/JUCE_Multi-IO_Audio_Code.zip