Included:
1. Existing RTAS, AAX, AU, VST, VST3 Wrappers extended to enable multiple Input and Output Buses (sidechain In / Aux Out)
2. A new ChannelLayout class to handle information about connected channels and buses
3. Slightly modified versions of the existing AudioProcessor and Utility classes to handle the new Bus/Channel capabilities
4. Info about additional changes (not necessary for the multi-IO features): Some of the Wrappers contain additional fixes or improvements
It's not as simple as just checking them in - there's an awful lot that'd need re-writing before it could be added to the library, I'm afraid! I do want to make this happen pretty soon though.
Hey Buncker, any chance that in the meantime while jules is scrutinizing your code and reviewing it for checking it into the main juce tree, that you could set up a github repository for it? I suppose for most people here it would be simpler to grab the stuff from github than having to download/extract/move/patch, plus one could easily track any changes you make...?
I mean that if update will be available in a week or two, then there is no need to do all the work by myself, and it would be good to know what do you mean by "high on my to-do-list".
Don't get me wrong, but we are waiting for about a year (or two) for a sidechain implementation and if you can give reliable estimations, please do.
And if you have no any reliable estimation, pleas post that info too.
That is very important for me at the moment
PS at the moment - Juce plugin framework does not support proper multy-output busses arrangement (for virtual instruments) for AU, RTAS etc, and these functions could be implementing without big code changes AFAIR.
Tell me if I'm wrong but after having a quick look at the code you're providing, it seems that only SingleComponentEffect (Editor + process in the same component) model is handled right?
Any chance to have such wrapping for the more general case of multiple components? In my opinion, apart from SideChains, the only main enhancement of this VST3 SDK is to provide a true separation of Processing and Editor, hence allowing for example to have one component on one machine and the other on an other for instance, or simply in two different memory spaces, through the use of the Steinberg COM like communication. I guess it would make the juce wrapping even trickier, but for me it would really be huge.
Agreed, this a far away from supporting everything in the VST3 paradigm. However, it’s a start, and everyone inclined to do so can contribute majorly to this patch.
Since I just moved from Germany to Portugal, I currently only have limited time, which I need to work on my official client's projects. Therefore I'm not able to update the wrappers at the moment.
Regarding the SingleComponentEffect:
At first I tried to implement the multi component VST3 approach but there were so many problems wrapping this to fit the JUCE framework, that I decided to drop that for now. Yes it is possible but needs a lot more work.
A wrapper is always a compromise. We also don't support every available AU or AAX feature with the existing wrappers.
If anybody has suggestions how to improve my code, I'll be happy to check the suggestions and update the wrappers but I'm not able to do bigger steps within the next few weeks.