About CLAP

Official support for: u-he.com
Post Reply New Topic
RELATED
PRODUCTS

Post

u-u-u wrote: Mon Dec 20, 2021 1:40 am Also how to solve the problem of backwards compability for a stepped parameter?
E.g. a "Band type" parameter of an EQ plugin. If a value option is added or the order changes between two versions of a plugin there could be a mechanism which maps the old indices to the new indices. This way the host could adapt its automation curve accordingly.
One of the main reasons I originally embraced Audio Units almost twenty years ago was its parameter scheme. E.g. one could extend the range of integer parameters without breaking backward compatibility - because they weren't normalised. This has become deeply embedded in my company culture. One could say "this is what we do", as we maintain plug-ins such as MFM over the years by adding little new things.

Afaiaa the plug-in standards that have strictly normalised parameter ranges have never added any workarounds to compensate for such changes in plug-ins. It's a bit as if that's something "plug-ins maybe shouldn't do", and because they're all controlled by host developers, it may be a bit "let's keep it that way".

Which is another reason for our decision to promote CLAP: As plug-in developers we always feel like our products are second-class citizens in the DAW ecosystem, as if the plug-in standard forms a harness of what we can do and what we can't do. As someone expresses it so nicely, "as if the host puts its fingers into the plug-in and directs it". CLAP feels a lot more on equal level, which is already expressed by having a host object and a plug-in object. The host isn't a shapeless god entity, it's just another struct that we communicate with.

Post

bero wrote: Mon Dec 20, 2021 1:46 am As soon as I have time, I will port the CLAP headers also to Object Pascal and then add support for CLAP plugins to my own yet unreleased DAW, which has already long support for VST2.x and VST3.x.
:party:

Post

baconpaul wrote: Mon Dec 20, 2021 2:03 am
u-u-u wrote: Sun Dec 19, 2021 11:10 am Edit: And I assume for Surge as well.
yup
Your input has been a game changer for us! Thank you so much!

:hug:

Post

bero wrote: Mon Dec 20, 2021 1:46 am As soon as I have time, I will port the CLAP headers also to Object Pascal and then add support for CLAP plugins to my own yet unreleased DAW, which has already long support for VST2.x and VST3.x.
Any way to see what it's all about and/or participate in a beta?
Music tech enthusiast
DAW, VST & hardware hoarder
My "music": https://soundcloud.com/antic604

Post

Urs wrote: Mon Dec 20, 2021 7:45 amE.g. one could extend the range of integer parameters without breaking backward compatibility - because they weren't normalised.
Just being curious: in AU, what happens if you reduce the parameter range in an update? Automation envelopes get clipped?

Post

EvilDragon wrote: Mon Dec 20, 2021 8:22 am
Urs wrote: Mon Dec 20, 2021 7:45 amE.g. one could extend the range of integer parameters without breaking backward compatibility - because they weren't normalised.
Just being curious: in AU, what happens if you reduce the parameter range in an update? Automation envelopes get clipped?
Dunno, I never tried. Maybe it's documented somewhere.

Post

Urs wrote: Mon Dec 20, 2021 8:24 am
EvilDragon wrote: Mon Dec 20, 2021 8:22 am
Urs wrote: Mon Dec 20, 2021 7:45 amE.g. one could extend the range of integer parameters without breaking backward compatibility - because they weren't normalised.
Just being curious: in AU, what happens if you reduce the parameter range in an update? Automation envelopes get clipped?
Dunno, I never tried. Maybe it's documented somewhere.
Yes, think about that, DAW developers ;) I think for stepped parameters there could be a fallback value for deleted list entries (a remapping from old to new values). For continuous parameters it should be a bit harder because the parameter(s) of a nonlinear automation would have to be designed in a way that they can adopt to a curve split so that each resulting segment still can be represented by the same amount of parameters. Almost every daw has this issue when moving time selections of automation when they split curved segments. The mathematical solution isn't trivial, I guess.

Post

Thanks Urs.

I am planning to support this plugin format. It's time for us free developers to get rid of Steinberg. They ignored our demands for too many years and have contracts that are not fair for us.
It would be helpful for all if JUCE also supported it. Then it would more quickly distribute.

Thumbs up!
Markus
https://www.tone2.com
Our award-winning synthesizers offer true high-end sound quality.

Post

Markus Krause wrote: Mon Dec 20, 2021 11:12 am It would be helpful for all if JUCE also supported it. Then it would more quickly distribute.
indeed. i guess that requires some more lobbying. they are probably still busy with wrapping lv2. but as Urs mentioned, there is already some activity going on by others wrapping it into juce like here:

https://github.com/baconpaul/clap-juce-extensions

i'm planning to try this as soon as i have (finally) switched my build-system from projucer to cmake (btw. - what else is there? Urs - you mentioned that a couple of open source projects have already implemented it - where are these?). writing the wrapper code is one thing - but making the new format available in the projucer is a whole different story which is probably not a reasonable thing to do for 3rd parties. it would probably be a nightmare to try to maintain a fork with the suitably augmented projucer code and keep it in sync with the original (and likely the reason, why it never happened for the lv2-enabled fork of juce). sooo...seems like i need to learn how to use cmake now. ok - this has been on my todo list for quite a while anyway
Last edited by Music Engineer on Mon Dec 20, 2021 2:37 pm, edited 1 time in total.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Music Engineer wrote: Mon Dec 20, 2021 12:57 pm (btw. - what else is there? Urs - you mentioned that a couple of open source projects have already implemented it - where are these?)
These are all work in progress as some parts of CLAP are still drafts. While I don't expect major changes, there's nothing really that's final release code.

Post

We'll definitely support CLAP if it gets added to JUCE.
AudioThing (VST, AU, AAX, CLAP Plugins)
Bluesky | Instagram | Discord Server

Post

Hit me up on surge discord if you have questions about this. I just made a clap chatter channel there. Surge Monique and a couple of others are starting to work

Post

For the non coding ignoramus users here, ie me, what exactly is clap?

A new code language, or just a format that is essentially a wrapper, that can also be wrapped.... or something completely different?

Post

Urs wrote: Mon Dec 20, 2021 1:49 pm These are all work in progress as some parts of CLAP are still drafts. While I don't expect major changes, there's nothing really that's final release code.
so does that mean that the code is not open yet and will only be revealed once it's finished? or do you mean, it wouldn't make much sense to look at the code just yet? being in a "work in progress" state generally applies to many projects...indefinitely....well - at least this is the case for most of my projects - so many loose ends everywhere :hihi: i'm just a bit curious what these projects might be and how such an integration could generally look like - not expecting anything production ready. but i'm absolutely not in a hurry and can wait, too
baconpaul wrote:Hit me up on surge discord if you have questions about this. I just made a clap chatter channel there. Surge Monique and a couple of others are starting to work
..aahh! surge! ok - good to know! i guessed that it would be integrated there soon. and vcv rack, too? somhow, i have a hunch these actually could be some of the projects, Urs is talking about... i'm not yet ready to ask any serious questions. as said - i first need to get the ball rolling with using cmake in general. maybe then. i'm still using that projucer thing - but will hopefully retire it soon. i guess, cmake is much better for all these project management chores
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

AnX wrote: Mon Dec 20, 2021 4:12 pm A new code language, or just a format that is essentially a wrapper, that can also be wrapped.... or something completely different?
A new interface for a host and a plugin to communicate, similar to VST or AU.

Post Reply

Return to “u-he”