I revised the current version of the juce_AU_Wrapper to make it more flexible.
It shouldn’t break any existing code that is using the current version.
I additionally implemented:
- arbitrary m to n channel configurations
- multiple input and output busses for synths and effects
- sidechain capabilities (using additional busses)
- synths may have inputs/sidechains, too (for example for a vocoder)
- a synth can be an effect at the same time
- the channel names provided by the juce getI/OChannelName functions are used and shown
- juce::Audioprocessor is informed when the number of channels provided by the host changes (getNumI/OChannel will always return the number that is actually provided by the host)
- default, minimum and maximum parameter values are handled correctly. This avoids errors and warnings with auval if minimum and maximum of a juce parameter differ from 0 and 1. In that way dependancies between parameters are handled correctly.
That’s it for now. As already mentioned, the code should work with plugins that use the current juce_AU_Wrapper without further adjustments (at least for the test cases that came into my mind).
If you’re interested in putting some of that into the official juce tip, I can send you my code.