JUCE LV2 Plugin Wrapper

Hi!

With a little help from falkTX, I’ve applied the LV2 wrapper to K-Meter (http://code.mzuther.de/kmeter/) today. Doing the change was easy, and after ironing out two small bugs, the resulting plug-in seems to work perfectly in both jalv 1.4.0 and Ardour 3.

I’d love to see this code merged into JUCE so that plug-in designers can start using it. In my opinion, an LV2 hosting class could follow later, but I feel that LV2 could do with some momentum… :slight_smile:

Thanks to anybody involved!

Martin

Just a small update: I’ve already converted two other plug-ins. traKmeter (http://code.mzuther.de/trakmeter/) works fine while the other (unreleased) one still needs some tweaking of the accompanying RDF files but works fine otherwise.

Martin

Jules, when can we have the LV2 wrapper imported into juce?

If you need a host to test it on Windows or OSX, good news! mine is getting there - http://i.imgur.com/tAFgI6Z.png

(I'll release 2.0-beta3 this weekend)

 

The latest code for the wrapper is here https://github.com/DISTRHO/DISTRHO-Ports/tree/master/libs/juce/source/modules/juce_audio_plugin_client/LV2

 

2 Likes

Sorry, this had entirely fallen off my radar! Will try to find time to look into it asap!

1 Like

Juce-4 is coming and this seems to be getting ignored...

I recently made the code so that all features are enabled by default.
See the macros at https://github.com/DISTRHO/DISTRHO-Ports/blob/master/libs/juce/source/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp#L18

Besides those there's only a 'JucePlugin_LV2Category' to set a custom category (I can give you a list of the valid ones so they can go into IntroJucer).
Not setting that macro is fine. The code also uses JucePlugin_IsSynth just in case.

Parameters, presets, state, time information and UI is all working.

The only thing that the code needs right now is getting rid of the custom base64 function and using the new juce one.

 

I know Juce cannot load LV2 plugins right now, but the same is true for RTAS and AAX plugins.

Juce-4 sounds like the perfect time for the LV2 wrapper inclusion in Juce.

 

We're just drowning in things to do right now, but thanks - we do want to do this and will figure something out as soon as we've got V4 launched!

Sounds reasonable.

I'll wait until the official V4 announcement and then ping you again. :)

Any chance of seeing this in JUCE at some point?

3 Likes

Damn! Yes, would love to… Just so hard to prioritise stuff like this against other things. But it’s not forgotten, honestly!

1 Like

So, an LV2 wrapper is in the plans ? But not LADSPA ? Seems fair enough, because I think that an LV2 plugin can be used in an LADSPA host, without the GUI.

Ok, bummer. I have a project where I use the ALSA LADSPA PCM plugin (which can only use LADSPA plugins), and AFAIK there is no LV2 variant of it. And, for synergetic effects, I’d like to implement my plugin in JUCE to get more “bang for the buck”.

I am new to this but am very interested in trying the LV2 wrapper for JUCE. Is the best starting point still the DISTRHO code in github and the details in this thread?

Thanks.

A better LV2 integration would be very welcome!

1 Like

Is the talk of integrating LV2 into JUCE been abandoned now? Is there an up to date version of the FalkTX JUCE fork?

2 Likes

I would like to know about this as well

1 Like

Prioritising LV2 I guess is a bit low at the moment without a large number of big hosts supporting it and hence without much user demand, but it would be cool to have this as an option so we can start to see more plugins offering LV2 and maybe host adoption would pick up the pace a little.

what does LV2 provide that AU/VST do not?

So, basically the LV2 wrapper is already here, but has to be included in the JUCE base code with the necessary Projucer changes ?

I guess that having the LV2 hosting code in JUCE as well would be the last thing to do to say that JUCE supports LV2 fully

We’ve no objection to supporting it in principle - we’ll certainly take a look at any PR you want to offer!

(I think the main thing that scares us is the idea of maintaining yet another format, especially when it’s likely to only be used by a very small number of people)

Today, the list of hosts compatible with LV2 is quite short indeed : Ardour, Harrison Mixbus, Calf Studio Gear, Qtractor, Traverso DAW, MusE and Audacity. I guess Tracktion/Waveform would get it as well if the JUCE hosting code for LV2 becomes available.

Otherwise, LV2 support is linked with people interest and major DAWs compatibility. Sounds quite like a “Chicken or the Egg” problem for now !

Maybe including the existing LV2 base code would not involve any additional support in the future if the format is already stable enough ?

1 Like