I'm going to bypass the licensing discussion, which has been discussed before, and where the CLAP license is clearly superior to the VST3 licensing scheme, since I don't think that was the intent of your question.I'm a little bit biased here. Might be better to ask someone else who creates plug-ins or hosts with VSTx and CLAP, but who wasn't involved in the design of either.Interesting. Would you say CLAP is a superior format overall to VST2/3?That's where CLAP shines because it does not implement automation and MIDI in a concurrent way. With its unified event queue we were able to implement time stamped automation within a single day. We still smooth automation events, but whatever influence buffer size had, it's gone in CLAP.
And so "Superior" is difficult to judge and full of bias. But you can look on technical merits.
VST3 and CLAP both support sample accurate parameter automation and CLAP VST2 and 3 both have timestamped midi. (VST2 puts all automation events at the top of the block so it is block size dependent).
There's some programming reasons why implementing VST3 parameter automation is very painful, though, mostly involving the queue structure presented by the API to the developer. One of the things in CLAP which is clever is all events, no matter their nature or provenance, come in a single sample time ordered event in every block. This is much easier to implement.
As such, implementing sample accurate CLAP automation is natural, whereas in VST3 its quite tedious, and so many bits of code and popular frameworks retain the vst2-style 'grab the last'.
the same is true for note expressions, which again are a powerful but infrequently implemented VST3 feature. It's worth asking why, with what 15 years of VST3, these aren't things we all use.
As Urs mentioned, the popular frameworks have also not adapted to these features. JUCE (which is basically a 'wrapper' approach on `juce::AudioProcessor` which is roughly a VST2-look-alike semantically) doesn't provide sample accurate automation, just MIDI. (And even a subset of the MIDi was wrong until fairly recently because the VST3 treatment of MIDI as a non-existent protocol for software). the JUCE team has plans to fix this in JUCE 9; and the clap juce extensions currently give you a get-out-of-jail-free option which lets your JUCE-clap skip directly to the CLAP api. This is how Surge XT CLAP gets polymod, note expressions, sample accurate automation, etc... despite being a JUCE plugin for the other formats.
Funnily, the easiest way to implement VST3 note expressions and sample accurate automation today is probably to write a CLAP and use the CLAP->VST3 wrapper, which has done the painful and annoying work to unpack and repack the vst3 queues into something useful. That's how six sines and short circuit get note expressions and automation.
Hope that helps.
Statistics: Posted by baconpaul — Wed Mar 19, 2025 2:11 pm