Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can JUCE plugins on linux work properly with LV2 and KX? Related to Surge #228

Open
baconpaul opened this issue Mar 8, 2020 · 6 comments

Comments

@baconpaul
Copy link

@falkTX sorry if I should drop this in a different repo. And also apologies for asking a relatively remedial question about the linux music environment.

We’re thinking about what to do with surge for 1.7 and part of me is thinking to dump vstgui and our hand rolled plugins and move to JUCE. We have a good build infrastructure which works with JUCE and scripts on linux mac and windows for several other projects, and JUCE is just amazing infrastructure.

The reason I’ve been hesitant is because of LV2 and build environments on linux. KX is a pretty central distribution channel for surge (and linux synths generally) so wanted to ask a couple of questions.

  1. The mainstream of JUCE doesn’t build LV2 but I know you have a fork that does. I’m using JUCE 5.4 (including things like the AudioParameterValueTreeBlah) in my new synths. Do you have a mechanism to make an LV2 out of them? Can I use that easily? (My plugins are all GPL3)

  2. I’ve taken the habit of running projucer at build time (see for instance https://github.com/surge-synthesizer/tuning-workbench-synth.git or our branch of dexed which adds tuning and MPE). Is that incompatible with you?

  3. And just generally how do I think about using distribution mechanisms other than ‘build it yourself’ for JUCE plugins on linux using the KXStudio infrastructure?

If I was supporting only mac and windows, Surge 1.7 would be a JUCE app, no question. The hand rolled plugins and vstgui have given me really only headaches. But it’s super important to me that I not leave the LInux community behind. Thanks for any guidance or pointers.

@falkTX
Copy link
Contributor

falkTX commented Mar 8, 2020

@falkTX sorry if I should drop this in a different repo. And also apologies for asking a relatively remedial question about the linux music environment.

no problem!

1. The mainstream of JUCE doesn’t build LV2 but I know you have a fork that does. I’m using JUCE 5.4 (including things like the AudioParameterValueTreeBlah) in my new synths. Do you have a mechanism to make an LV2 out of them? Can I use that easily? (My plugins are all GPL3)

It is quite simple, the code is mostly separate from all of juce.
Mostly just copying a file and folders.

DISTRHO/juce repo has branches for up to date juce btw.
And someone made something more official, kinda, as my juce removes commercial option to focus on pure GPLv3.

2. I’ve taken the habit of running projucer at build time (see for instance https://github.com/surge-synthesizer/tuning-workbench-synth.git or our branch of dexed which adds tuning and MPE). Is that incompatible with you?

Yeah, I never added LV2 support in projucer.
But that could be done by anyone, and everyone in the community will benefit.

3. And just generally how do I think about using distribution mechanisms other than ‘build it yourself’ for JUCE plugins on linux using the KXStudio infrastructure?

If I was supporting only mac and windows, Surge 1.7 would be a JUCE app, no question. The hand rolled plugins and vstgui have given me really only headaches. But it’s super important to me that I not leave the LInux community behind. Thanks for any guidance or pointers.

I have other plugins made with juce in the KXStudio repos.
So if you decide to change to that, it won't affect the presence of it in the KX repos.

@baconpaul
Copy link
Author

Thank you very much for the quick response! Very useful.

Yeah, I never added LV2 support in projucer.

Then how do you generate the build files? I run projucer —resave to eject the Builds/ and JuceLibraryCode/ directories at build time.

@falkTX
Copy link
Contributor

falkTX commented Mar 8, 2020

I am hardcode, I create my own Makefiles :)

On a serious note, on DISTRHO-Ports I use premake3, based on old juced project.
Carla and a few other things that can use JUCE I actually do manually create Makefiles.

@baconpaul
Copy link
Author

Gotcha! Well I could imagine wanting to fix that indeed.

Let me ponder for a bit - wont’ make a decision until April for surge. But will let you know - probably in an issue over in DISTRO/juce though.

Thanks as always for the quick response.

(Oh and we will probably release the tuning workbench synth in April also. I’ll tag a new issue over here when I do so we can include at least the standalone version in KX)

@falkTX
Copy link
Contributor

falkTX commented May 17, 2020

A question related to this - is surge going to change to juce anytime soon?
I ask because if yes, it is pointless to fix current surge lv2 implementation.

@baconpaul
Copy link
Author

Short version not this year probably.
Longer version, maybe, but only to juce6/cmake, and we are migrating all our other plugs to juce6/cmake right now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants