Cool new plug in format on the way -- CLAP

DSP, Plug-in and Host development discussion.
RELATED
PRODUCTS
User avatar
teilo
KVRian
1408 posts since 30 Mar, 2008 from MN, USA

Post Fri Jan 28, 2022 11:32 am

DarkStar wrote: Fri Jan 28, 2022 9:49 am I must have missed this, but what are the advantages of a CLAP plug-in over its VST2 / VST3 / AU / AAX versions?
Aside from the technical advantages of CLAP by itself, it also can serve as the primary development target, and then be wrapped as a VST2/VST3/AU. At present, most development (which is not using something like JUCE, which, really, is it's own custom format that itself gets wrapped) targets VST2 or AU, and is then wrapped to support the other formats. Most developers target VST2, and then wrap to AU and VST3. CLAP is way more capable of this, because of it's simple function-based API, and its extra technical capabilities.

This is especially important now that new developers are no longer allowed to license VST2, and the handwriting on the wall seems to be saying that in the next 24 months, Steinberg will disallow updates to existing plugins or the development of new plugins on VST2, even for those who already have a VST2 license to do so. This means that every developer who uses VST2 as their primary target will be SOL.

VST3 is a non-starter for primary development because of its limitations and fragmented capabilities (for example, it doesn't even support direct MIDI ins/outs). Steinberg released a half-baked format to the world, and immediately started shutting down VST2. Over time, they have added features to it here and there (like MIDI-learn) but that's not very useful if the DAWs have not yet been updated to support them. So all in all, it's a terrible base format to target.
Apple Silicon Native Audio Software Database: https://asaudio.tech. KVR Discussion Topic.

User avatar
Urs
u-he
26368 posts since 8 Aug, 2002 from Berlin

Post Fri Jan 28, 2022 2:04 pm

The immediate benefit is simplicity. There's a kind of spiritual difference here in that CLAP allows hosts and plug-ins to tell each other if the misbehave. They look to each other at eye level.

A CLAP plug-in can be compiled with a very picky pseudo-host wrapped between itself and the host which will tell the plug-in about various common issues, e.g. when calling the host from the wrong thread. (thankfully a CLAP plug-in can always tell what thread it's on, and every API call is marked with the thread it's supposed to use for the call)

So we think that, apart from a sensible license scheme that doesn't alienate developers of any level of experience, CLAP is equipped to become very robust. There's surely a plethora of possibilities to crash things, but there are a lot of common issues that will simply be avoided.

User avatar
Music Engineer
KVRAF
4079 posts since 8 Mar, 2004 from Berlin, Germany

Post Fri Jan 28, 2022 2:29 pm

Super Piano Hater 64 wrote: Fri Jan 28, 2022 10:48 amThe feature set isn't hugely impressive ...
as i understand it, one big feature is that the base api is actually quite featureless and just about every feature is realized by means of a suitable "extension". even the most basic stuff like parameter handling and state recall is realized via such extensions. the only feature that is really baked into the core api seems to be the audio processing callback. the base api will ship with a bunch of standard extensions to do precisely those things that everyone expects from an audio-plugin api (parameters, state, gui, etc.) but the set of extensions is open-ended (and yes, there's one for microtuning via the host in the making, too - a feature that i'm also looking forward to). so, even if the feature set may not be impressive yet, this is certainly expected to grow over time. in that respect, it's actually quite similar to LV2 which also revolves a lot about an "extension" concept (i think)
Last edited by Music Engineer on Sun Feb 06, 2022 1:09 am, edited 5 times in total.

User avatar
Super Piano Hater 64
KVRist
296 posts since 24 Jan, 2021

Post Fri Jan 28, 2022 2:39 pm

Music Engineer wrote: Fri Jan 28, 2022 2:29 pm
Super Piano Hater 64 wrote: Fri Jan 28, 2022 10:48 amThe feature set isn't hugely impressive ...
as i understand it, one big feature is that the base api is actually quite featureless and just about every feature is realized by means of a suitable "extension". even the most basic stuff like parameter handling and state recall is realized via such extensions. the base api will ship with a bunch of standard extensions to do precisely these things that everyone expects from an audio-plugin api (parameters, state, etc.) but the set of extensions is open-ended. so, even if the feature set may not be impressive yet, this is certainly expected to grow over time
I'm personally not a fan of this style of API design, because I've seen so many vendors implement a core API and ignore all the extensions. This even sort of happened with VST3, although there were obviously other factors involved. I'll just cross my fingers and see how it plays out. The validation strategies (like the one described by Urs above) give me a lot of hope.

Quick edit: I'm also not trying to rag on CLAP for not being shiny enough. I was mostly trying to say that its best features have nothing to do with its "features." It sounds like a really solid design to me and I look forward to working with it.
I hate signatures too.

User avatar
nix808
KVRAF
4707 posts since 22 Jul, 2006 from Tasmania, Australia

Post Fri Jan 28, 2022 3:09 pm

CLAP could be for me
-but I am a little trendy
and CLAP doesn't appeal to me as a name

anyone else want to change it to BOLT?
(Bolt-On Language Type)

nice one on trying to get around Steiny
VST3 seems no successor

User avatar
Urs
u-he
26368 posts since 8 Aug, 2002 from Berlin

Post Fri Jan 28, 2022 10:33 pm

As far as I can tell, CLAP doesn’t lack any features compared to any other established format. The extension concept helps to reduce bloat and keep things tidy. A pure MIDI processor doesn’t need to deal with surround concepts or multithreaded processing. Likewise, an analysis tool might not need MIDI or Note Expressions.

It’s a modern and consistent equivalent of “canDo” and “wantThisOrThat”, simply don’t implement the extension and the host can save the resources. It’s a pattern rather than a convention.

DarkStar
KVRAF
10155 posts since 2 Sep, 2003 from Surrey, UK

Post Sun Jan 30, 2022 10:14 am

Got it, thank you all.
DarkStar, ... Interesting, if true
Inspired by ...

Return to “DSP and Plug-in Development”