CLAP: The New Audio Plug-in Standard (by U-he, Bitwig and others)

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

S0lo wrote: Sun Jul 24, 2022 1:47 pm In the future, it might help if some one drops a few lines on how to install that Qt dependency. When I tried it, the installer said something like 6.7GB required!!. I stoped it. Thinking let’s try the other options like surge saw, and clap_template before going into this. They worked, and so I never got to build those examples.
If days had an infinite amount of hours I would probably try this GUI library. It is developed by an extreme clever C++ hacker and seems to play nice with plugins. Seems a bit on its early days though:
https://github.com/cycfi/elements

On paper it seems a perfect match for CLAP.

Post

rafa1981 wrote: Sun Jul 24, 2022 2:54 pm
S0lo wrote: Sun Jul 24, 2022 1:47 pm In the future, it might help if some one drops a few lines on how to install that Qt dependency. When I tried it, the installer said something like 6.7GB required!!. I stoped it. Thinking let’s try the other options like surge saw, and clap_template before going into this. They worked, and so I never got to build those examples.
If days had an infinite amount of hours I would probably try this GUI library. It is developed by an extreme clever C++ hacker and seems to play nice with plugins. Seems a bit on its early days though:
https://github.com/cycfi/elements

On paper it seems a perfect match for CLAP.
Oooh thanks for this pointer. We’ve been playing with a few for examples so will check this out

Post

You're welcome :). They have a discord. It is pretty quiet but Joel answers questions .

Post

S0lo wrote: Sun Jul 24, 2022 1:47 pm In the future, it might help if some one drops a few lines on how to install that Qt dependency. When I tried it, the installer said something like 6.7GB required!!. I stoped it. Thinking let’s try the other options like surge saw, and clap_template before going into this. They worked, and so I never got to build those examples.
Qt is just really that big. No other way. :)

Post

baconpaul wrote: Sun Jul 24, 2022 2:41 pmOh sorry the problem is you are using `CLAP_VERSION_INIT` rather than `CLAP_VERSION` in your description. Just fix that and you will be fine.
Ok! I got VS to build a dll. Sorry, very noob when it comes to this stuff, do I rename the dll the .clap orrr...?

Edit: I got it to built without any changes, so CLAP_VERSION_INIT seems to be correct.

Post

Yup just rename it

Post

Architeuthis wrote: Mon Jul 25, 2022 4:03 am
baconpaul wrote: Sun Jul 24, 2022 2:41 pmOh sorry the problem is you are using `CLAP_VERSION_INIT` rather than `CLAP_VERSION` in your description. Just fix that and you will be fine.
Ok! I got VS to build a dll. Sorry, very noob when it comes to this stuff, do I rename the dll the .clap orrr...?

Edit: I got it to built without any changes, so CLAP_VERSION_INIT seems to be correct.
I thought I replied to this.. but apparently not ... CLAP_VERSION_INIT is defined as an initialization list while CLAP_VERSION is defined as a constant (static const) with CLAP_VERSION_INIT as the initializer.

For struct-initialization like that, either one should work just fine. In some other contexts (eg. when passing the version as an argument to a function) it might actually matter, though I forgot what the actual rules for C would be. You should get a pretty obvious error with most compilers though if you use the wrong one.

Post

mystran wrote: Mon Jul 25, 2022 10:41 am
Architeuthis wrote: Mon Jul 25, 2022 4:03 am
baconpaul wrote: Sun Jul 24, 2022 2:41 pmOh sorry the problem is you are using `CLAP_VERSION_INIT` rather than `CLAP_VERSION` in your description. Just fix that and you will be fine.
Ok! I got VS to build a dll. Sorry, very noob when it comes to this stuff, do I rename the dll the .clap orrr...?

Edit: I got it to built without any changes, so CLAP_VERSION_INIT seems to be correct.
I thought I replied to this.. but apparently not ... CLAP_VERSION_INIT is defined as an initialization list while CLAP_VERSION is defined as a constant (static const) with CLAP_VERSION_INIT as the initializer.

For struct-initialization like that, either one should work just fine. In some other contexts (eg. when passing the version as an argument to a function) it might actually matter, though I forgot what the actual rules for C would be. You should get a pretty obvious error with most compilers though if you use the wrong one.
Yeah there’s an msvc and c++ std constraint also for initialization and I also forget what it is. In the late 19s / earky 20s this broke some of the Microsoft builds hence the static and init list macros. But as you said if it works it works.

Post

Edit: The way I got it to build in visual studio is by dragging in `plugin-template.c` located in `clap\src` and also right click on the project (which is one level under "Solution") go to properites -> C/C++ and add the clap/include folder for additional include directories.

For the noobs: The Clap plugin folder is located C:\Program Files\Common Files\Clap
Rename your .dll to .clap
Your plugin will be called "Plugin Name" as an instrument... even though it's an effect.
Change

Code: Select all

s_my_plug_desc
by replacing

Code: Select all

CLAP_PLUGIN_FEATURE_INSTRUMENT
with

Code: Select all

CLAP_PLUGIN_FEATURE_AUDIO_EFFECT
Ok, looks like everything is working in Multitrack Studio. Any news on REAPER supporting CLAP? After trying REAPER then FL Studio then MuLab I'm back to REAPER only because MuLab doesn't have gradual tempo change. It sounds like MuLab will support CLAP in the future, it's just a matter of the developer finding time to integrate it.

I would like to make youtube videos for CLAP going from knowing nothing about audio to making a lowpass filter. First we need a good free DAW for CLAP. Multitrack studio is... umm... not pretty. Holding out for REAPER.
You do not have the required permissions to view the files attached to this post.
Last edited by Architeuthis on Tue Jul 26, 2022 1:40 am, edited 1 time in total.

Post

I check the reaper forums weekly for news on updates, but haven't yet seen anything definitive about CLAP. Go to their Pre-Release subforum for the latest updates.

Post

Well, those two always have a lot of stuff going on. They probably plan additional overhauls of the FX section, midi editors, etc and make it land as 7.0? Who knows... It is not a small feature for Reaper but it will come.

The Bitwig people have been working on it for some time and the host side is much harder than the plugin one.

Post

Knowing Justin he'll probably want to implement everything from scratch anyway (which he did for LV2 last year).

Post

So I was trying to map some VST timeinfo/transport into clap and vise versa,

I noticed that clap_beattime and clap_sectime are defined as int64_t. Shouldn't these be double/float. I guess there has to be some sort of scaling? or these count in nano seconds? nano beats ?
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

S0lo wrote: Mon Jul 25, 2022 9:50 pm So I was trying to map some VST timeinfo/transport into clap and vise versa,

I noticed that clap_beattime and clap_sectime are defined as int64_t. Shouldn't these be double/float. I guess there has to be some sort of scaling? or these count in nano seconds? nano beats ?
The conversion factors are in *fixedpoint.h. They're fixed-point numbers to avoid rounding errors.
Last edited by robbert-vdh on Mon Jul 25, 2022 10:35 pm, edited 1 time in total.

Post

robbert-vdh wrote: Mon Jul 25, 2022 9:51 pm
S0lo wrote: Mon Jul 25, 2022 9:50 pm So I was trying to map some VST timeinfo/transport into clap and vise versa,

I noticed that clap_beattime and clap_sectime are defined as int64_t. Shouldn't these be double/float. I guess there has to be some sort of scaling? or these count in nano seconds? nano beats ?
The conversion factors are in fixedtime.h. They're fixed-point numbers to avoid rounding errors.
Thanks!! :tu: I guess you meant fixedpoint.h
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post Reply

Return to “DSP and Plugin Development”