|
Most are quite similar, which is why the vast majority of commercial plug-in developers gravitate to using something like JUCE (or, to a lesser extent, iPlug). Such a framework makes it easy to target a single API and output cross-platform versions for AAX/AUv2/AUv3/VST2/VST3/etc... I have no doubt that JUCE will support CLAP, and therefore make it easier for developers to spit out yet another format. Alternatively, CLAP could end up as the intermediate format, with bindings supplied for presentation within other native plug-in formats. VST3 is the one that sticks out like a sore thumb, because it represented a radical change in how the user interface classes interact with the audio processor class. This created a massive problem because you had to assume that the UI and the processor were essentially running in separate processes and communicated via message passing through a specific interface or just plain text. It's the reason why VST3 didn't ever gain the traction and support of VST2, since Cubase was for many years the only VST3 host, and since more complex plug-ins like, say, Kontakt, would require a huge amount of developer time to upgrade, a stalemate existed for too long. So it's hard to see everyone getting behind yet another format to support and test, especially if the core code has to conform to the lowest common denominator, as it were. On closed vs. open, although AU is controlled by Apple, and VST by Steinberg, they are both open to the point that anyone can download required SDKs and develop for them. Avid traditionally kept their SDKs through application forms and NDAs, so not everyone had access. Even now, IIRC, JUCE doesn't come with the AAX bindings necessary to build such a plug-in, they have to be copied in from the official distribution. |
Adding VST3 support to Ardour/Mixbus, we did not experience this as a notable issue at all.
Far more problematic from a hosting perspective in VST3, though it has also been present in AU since the start, is multi-bus output. At the "processing audio" level, it's still pretty simple, but "allow the user to connect stuff" level, its far from simple, unless you just do what reaper has done and flatten all the busses.
VST2 was not "open" in a way that made it usable by libre software developers. AU doesn't really matter much since it's single platform.
I think it is also important to stress again that most plugin developers that do this stuff for anything close to a living have not targetted specific plugin APIs for years. As you noted, many will use a framework like JUCE, others have their own in-house equivalent, which lets them create the DSP and GUIs in a plugin-API agnostic way.