smartelectronix icon indicating copy to clipboard operation
smartelectronix copied to clipboard

if this ever gets a clap linux binary, inform me please

Open RustoMCSpit opened this issue 1 year ago • 9 comments

https://github.com/RustoMCSpit/awesome-linux-clap-list

want to add this here

RustoMCSpit avatar Nov 26 '24 01:11 RustoMCSpit

https://github.com/RustoMCSpit/awesome-linux-clap-list

want to add this here

do you know anyone who could help port this to VST3 / CLAP ?

hems avatar Jun 11 '25 20:06 hems

@baconpaul do you know anyone?

RustoMCSpit avatar Jun 12 '25 21:06 RustoMCSpit

port a bit collection of plugins from hand coded vst2 + vstgui to something modern - that's a lot of work. I don't know anyone who would do that.

baconpaul avatar Jun 13 '25 07:06 baconpaul

port a bit collection of plugins from hand coded vst2 + vstgui to something modern - that's a lot of work. I don't know anyone who would do that.

What do you mean by "hand coded"? What would be "not hand coded"?

And instead of vstgui what would you recommend?

We could definitely start with no UI at all tbh, just sliders like SURGE XT style

hems avatar Jun 13 '25 16:06 hems

hand coded as - it is coded directly to the vst2 api there is no intermediary layer (juce, iplug, distro, etc...) so you just have to write everything again or play some very tricky adapting techniques (kinda like i did with airwin consolidated - but the code here is also much less regular than chris' code so that trick wont work).

There is actually no way to make a distributable binary from this code since it is GPL3 and requires VST2, which are incompatible so before anyone can make a open source based binary which is license correct, they need to do this rewrite.

instead of vstgui there's a million choices. juce, sdl, iplug, etc.... but the problem is more finding a programmer who either knows and wants to maintain vstgui code or can port it to something else and wants to do that work. Both of those are super hard.

We actually used the code here to re-implement the scope in surge and it was useful. But when we did that I looked at these thinking 'hey can i modernize these and make them buildable with a reasonable license' and the answer I came to was 'no'.

baconpaul avatar Jun 14 '25 08:06 baconpaul

We actually used the code here to re-implement the scope in surge and it was useful. But when we did that I looked at these thinking 'hey can i modernize these and make them buildable with a reasonable license' and the answer I came to was 'no'.

thanks a lot for all the insights @baconpaul ! great as usual

hems avatar Jun 14 '25 19:06 hems

If someone decides to tackle it I would probably keep vstgui and then rewrite the vst2 as a clap by hand using the clap saw demo which show shows how vstgui and clap interact. From there the clap wrapper would give you a vst3 and an au

Also probably want to delete the steinberg directory from this repo which has an unlicensed copy of the vst2 api.

baconpaul avatar Jun 15 '25 07:06 baconpaul

If someone decides to tackle it I would probably keep vstgui and then rewrite the vst2 as a clap by hand using the clap saw demo which show shows how vstgui and clap interact. From there the clap wrapper would give you a vst3 and an au

Also probably want to delete the steinberg directory from this repo which has an unlicensed copy of the vst2 api.

oh that's wicked that you have an example ! thank you loads.

at least now we got a starting point documented on how to push this forward.

hems avatar Jun 15 '25 17:06 hems

https://github.com/surge-synthesizer/clap-saw-demo/blob/951ceda820532e992bdfa6f988e885246d2f0db3/src/clap-saw-demo-editor.cpp#L27

that's the start of the relevant code binding the clap gui extension to a vstgui cframe. Note that vstgui on linux when i last looked was tricky (to make surge pre xt work with it we needed some patches) and so there's some extra plumbing there to deal with lifecycle and threading mismatches, but that codes all there for you to use as you want.

baconpaul avatar Jun 16 '25 07:06 baconpaul