-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
LV2 support #562
Comments
+1 👍 |
Some day, for sure... |
Let me take a minute to second this feature request. I think supporting LADSPA and/or LV2 instrument plugins would greatly benefit LMMS, as it opens LMMS up to a wealth of instruments that are readily accessible in various Linux distro repositories. I wrote a sound engine and some synths from scratch a couple months ago, and was wondering if I couldn't take some of the stuff I wrote and turn it into something people could use in LMMS and other music applications. I would presume LV2 to be the best answer to this, being a standard in the Linux community, but as far as I can tell the only way for instruments in LMMS is to tailor a proprietary-format plugin specifically for LMMS. (EDIT: apologizes for the confusion- by 'proprietary' here, I mean 'made for LMMS and probably used exclusively by LMMS'. Other programs could use the format, certainly - it's open-source. But in reality I doubt such programs exist. When I want to develop a audio plugin that could be used in multiple audio applications, I'm probably going to want to use something more standardized. Thus the need for a LV2 host.) I'm a programmer myself; While my hands are tied at the moment, I might try to hack something up on my own if this issue just gets completely ignored. As far as implementation goes, it appears that Lilv would be the way to go. There's a nice example host, Jalv to show how Lilv is used. My one question to any LMMS dev'rs out there is: If someone were to implement a LV2 host for both instruments, would that be done via the LMMS plugin? Would it be independent of the instrument plugins? Or would it be a mix of the two? |
There's nothing proprietary about the LMMS native plugin format. LMMS is all entirely open source and so are all our existing plugins, as well as our plugin format. If you want to write an instrument for LMMS, I suggest taking one of the existing instruments - a good, simple one is Bitinvader, it's very basic - and looking at the source code to see how things are done. For effect plugins, my Amplifier is a good, simple example. As for an LV2 host, you'd either need to write two separate hosts, one for instruments and another for effects. Or one host and two front-ends to use it on the LMMS side. I'd suggest taking a look at how things are done on the VST side. Also Zyn can be a good example too. |
Done. |
Bumping to 1.3 (really 2.0) since it will get lost in 1.2. 🍕 |
@badosu wrote Mar 10:
:) |
I like the third this request, because I just found out, I could use calf studio plugin in lmms if we had an lv2 host. |
Will you be replacing the LMMS versions of the CALF plugings better GUI of the LV2 versions of the CALF plugings where you can? After all you don't need two versions of the CALF plugings. |
Yes, although if backwards compatibility is an issue, we may decide to keep both for a while (all speculative, LV2 support is a ways out) |
I found LV2 versions of the MDA Piano VSTIs -----> http://git.elephly.net/gitweb.cgi?p=software/lv2-mdametapiano.git |
@Reaper10 In my opinion it does not make sense to build everything and the kitchen sink right into LMMS. There's a reason that plugins are called "plugins". 😉 |
There's a reason that plugins are called "plugins". This is true but LMMS could a acoustic piano plugin build in. Besides that Vst are extremely loading. |
Then we should improve the plugin support and not make more native plugins. |
@Reaper10 If LV2 support is implemented (which is what this issue is about) then you should be able to install the piano plugin you have linked and simply use it. Pulling all kinds of plugins and effects into LMMS' code base puts a large burden on the developers to keep them all up to date. Let's not turn LMMS into an |
What's the status of this issue? |
@suhr personally I'm unwilling to work on this before 1.2 is out of the way |
Meanwhile, the Lv2 URID feature PR is ready for review: #5517 . |
Great job all involved! |
Lv2 URID feature is now supported on master (7a9b336). Next will probably be more atom support (events for piano-based instruments) or the options extension. |
All Atom ports are now being created and connected. Currently only MIDI input ports are supplied with data. Major contribution to LMMS#562 ("lv2 support").
All Atom ports are now being created and connected. Currently only MIDI input ports are supplied with data. Major contribution to LMMS#562 ("lv2 support").
All Atom ports are now being created and connected. Currently only MIDI input ports are supplied with data. Major contribution to LMMS#562 ("lv2 support").
All Atom ports are now being created and connected. Currently only MIDI input ports are supplied with data. Major contribution to #562 ("lv2 support").
Lv2 has MIDI support (using Atoms) now (8b2902c). This enables instruments (like pianos or guitars). Next things will be options and buf-size. Then maybe worker. |
Major news of the last weeks (thanks to the reviewers, especially @DomClark and @zonkmachine):
Possible next things (though this should wait until reorg #5592 is finished):
|
Also Buf Size is partly done. |
Is LV2 usable in LMMS now? I have configured LMMS build and it shows:
Should I install a specific package (on Fedora) to make this warning go away? |
Do you have the packages "lv2" and "lilv" installed (on some distributions, you may need source RPMs for them, too)? You need both in order to compile LMMS with Lv2 support. |
Interesting, I need to do some testing on openSUSE. LMMS did compile without errors, but I think that's because I have, liblilv installed. a C library to make use of LV2 plugins. In yast , when looking for lv2, I also found a long list with things like lv2 calf plugins. |
In fact I think lv2 or lilv are not dependencies for LMMS and currently the show as optional in the cmake log. However, I installed lv2* and lilv* and that "not found" was changed to OK. |
I have them installed now, so will have to compile again. I am also trying out Pipe Wire, and currently have an issue. When I checked I noticed jack not running though, and LMMS did not produce any sound. Setting LMMS to jack did not fix it, and every time I start LMMS it now shows me the settings screen. I might know why though, I probably need to install pipe wire jack something. When I installed Calf lv2 plugins and those two files, YAST wanted to install jack, which I accepted. I also hope this does not make compiling harder, but I will report on any progress. |
Lv2 support should be completely independent of the backend used. If Yast forces you to install jack, that's really strange. Please note, this issue is mostly for users requesting specific Lv2 features or for devs updating about new Lv2 development. I think build issues, even if related to Lv2, should go into a separate issue (or even better, discord chat). |
I have some thinking to do. Installing pipe wire removes pulse which makes sense, but I fear this will mess up my compiling the LMMS master branch. I am gonna bother the openSUSE forum about this. |
All Atom ports are now being created and connected. Currently only MIDI input ports are supplied with data. Major contribution to LMMS#562 ("lv2 support").
Can I ask a question, because I am getting confused ? Can somebody tell me if the newer Calf plugins should work in LMMS, and should show their Gui yet? I think I can load them but the specific calf gui is not showing. For those wondering what gui I am talking about: I already asked on the LMMS forum and LMMS discord about this, but nobody seems to know. |
No gui support yet via lmms native lv2. This works with Carla though. Some plugins are blacklisted for now for various reasons, most commonly because they simply wont work without the gui but also other issues. Some Calf plugins are among those blacklisted. They can be enabled though. See this comment on startup:
|
Thank you :) |
Some updates of the recent months of Lv2 development:
|
#6484 is right now a discussion about buffer sizes between two of the more experienced developers. Is that a necessary discussion to help finishing the PR? |
FWIW, I am reminded there is the host compatability list - https://lv2plug.in/pages/host-compatibility.html - https://gitlab.com/lv2/site/-/blob/main/host_compatibility.ttl |
No description provided.
The text was updated successfully, but these errors were encountered: