Menu

#462 LV2 plugin support

None
closed
1
2025-01-07
2015-12-18
Ted Felix
No

We really should support LV2 plugins.

For now, one can use an external plugin host like Carla to connect plugins via JACK.

See [bugs:#1433].

Related

Bugs: #1433
Feature Requests: #471

Discussion

1 2 3 .. 9 > >> (Page 1 of 9)
  • Ted Felix

    Ted Felix - 2019-02-24

    It would probably be best to implement JACK MIDI before this. See [#471].

     

    Related

    Feature Requests: #471

  • Lorenzo

    Lorenzo - 2019-07-25

    I must say that while I previously agreed with the jack midi statement, I have reconsidered (see #471).
    Yet, now IF LV2 be supported there should also be a mechanism to do 'direct export' / 'render' (to audio)

    It would be interested to see how it's done in QTractor which AFAIK uses alsa midi only and at the same time does LV2 and project rendering.

     

    Last edit: Lorenzo 2019-07-25
    • Demonic Sweaters

      I personlly don't find Jack MIDI very useful, since I use Alsa sequencer for everything else and it's still easily accessed though Qjackctl. What are the advantages of using Jack for MIDI? I would love to see LV2 support though, and a render option would be nice too, but I usually use JACK Timemachine for that and it works okay.

       

      Last edit: Ted Felix 2023-08-30
  • Ted Felix

    Ted Felix - 2020-02-13
     
  • Petr Petrov

    Petr Petrov - 2022-01-19

    I second this ticket

     
  • Ted Felix

    Ted Felix - 2022-06-20

    Rosegarden does not need native LV2. Carla should have all the plugin support needed for a project. We don't need several programs all doing the same thing.

    -- AV videxx@protonmail.com on the user list 6/6/2022

     

    Last edit: Ted Felix 2023-08-30
  • Daniel Woodfield

    I don't believe that Carla is available in DSSI or LADSPA format, just as 1) a standalone JACK client, 2) as an LV2 plugin itself, and 3) as a VST plugin itself (not sure if VST2 or VST3). So the only practical way to connect to it is through JACK itself.

    If I have an LV2 instrument I'm looking to use with a Rosegarden project, I have to connect Carla to Rosegarden's audio input and render the audio in real-time. My use case is mostly using sfizz (an SFZ plugin) to record myself playing the keyboard with really good samples, but my computer isn't powerful enough to do that without inducing a giant mess of xruns.

    Correct me if I'm wrong on this, but if Rosegarden had LV2 support built-in, then it could render sound from MIDI through plugins in computation time, not real-time, allowing folks like me with underpowered laptops to use them for more serious work.

    While I value the Unix philosophy immensely and wish to respect the time of the (very capable) Rosegarden developers, I think this is a hardware accessibility problem for the reasons stated above and would love to see it solved. Rosegarden is the most stable DAW I've used on Linux thus far, and this one feature is, as far as I can tell, the biggest thing stopping me from switching to it permanently.

     

    Last edit: Ted Felix 2023-08-30
    • Ted Felix

      Ted Felix - 2023-04-01

      My use case is mostly using sfizz (an SFZ plugin) to record myself playing the keyboard with really good samples, but my computer isn't powerful enough to do that without inducing a giant mess of xruns.

      I'm running an 11-year-old Core i3 (M370) and fluidsynth works fine for me with 4 or 5 tracks of MIDI and an audio track. Barely uses any CPU. No xruns.

      if Rosegarden had LV2 support built-in, then it could render sound from MIDI through plugins in computation time

      I don't think so. I suspect Rosegarden would need a "fast render" feature to do this. Currently we lock playback to the ALSA sequencer clock. Maybe there's a simple way to trick ALSA, but I suspect not.

      Rosegarden is the most stable DAW I've used on Linux thus far,

      That's been my goal these past ten years or so. Glad to hear it's becoming reality. Let me know if you run into any crashes or other instabilities and I will have a look.

      I would love to implement LV2 and I think it would be a good idea. Just don't have time. Also have a huge backlog of new feature requests and bugs. Hoping to be back to working here soon. The June delivery is coming up fast.

       
  • Philip Leishman

    Philip Leishman - 2023-04-10

    Never used audio much - more midi.
    Anyway I thought this might be a good Easter project so I had a go at it.
    I have made lv2 support an optional feature. To use it you must have the lilv library installed.
    I also put a search field in the AudioPluginDialog - makes plugins easier to find.
    Some plugins work eg. AM pitchshifter, GVerb, Simple Amplifier.
    Some don't. But then some LADSPA plugins don't work for me either !
    Still some work to do on the instantiation features.
    See merge request for the code so far.

     

    Last edit: Ted Felix 2023-08-30
  • Lorenzo

    Lorenzo - 2023-04-15

    Very interesting Philip. How would one go about with enabling it? I guess this is at compile time?

    I also never use audio in Rosegarden much but having LV2 for midi (i.e. LV2 synths and possibly chaining audio effects to them) would definitely be useful. The Sfizz example is on. Yoshimi would also come to mind as well as dexed.

    There are LV2 hosts / clients such as carla or (simpler) jalv but they all seem to use jack midi. Same for most synths (for example sfizz does have an independent sfizz_jack client. Again this is jack-midi only.

    All of the above can be used of course with a2jmidid.

    The initial question of if/how to do a 'direct' export of a track made with LV2 plugins involved still remains. I feel that if we managed to have that LV2 directly in rosegarden would be a very big advantage and time-saver.

     

    Last edit: Ted Felix 2023-08-30
  • Philip Leishman

    Philip Leishman - 2023-04-15

    To enable you must install the lilv library (see https://drobilla.net/software/lilv.html). Cmake should tell you about the option lv2.
    This is still very much work in progress. So far I cannot set an lv2 synth plugin - rosegarden crashes.
    Some plugins work. Others don't !!!
    As to the direct export - I haven't considered that yet.

     
  • Philip Leishman

    Philip Leishman - 2023-04-27

    I started looking at the external editor. For LV2 I got quite a few working in a test program.
    The editor button is always enabled in rosegarden. However I have yet to find an existing plugin (ladspa or dssi) which has an external editor.
    Do I need to install something ?
    Does anyone know a plugin with an external editor ?

     

    Last edit: Ted Felix 2023-04-27
    • Ted Felix

      Ted Felix - 2023-04-27

      When I press the "Editor" button with hexter (a softsynth), I get a dialog with a list of patches to select from. There are also other parameters on two more tabs. I get this UI if I press the editor button on the "Instrument Parameters" panel, or on the dialog that pops up when I press the "hexter" button in the Instrument Parameters panel.

      If I add an audio plugin, like a compressor, I see a dialog with all the parameters when I click on the plugin button. There is an "Editor" button here and it does nothing. Since I already have access to all the parameters, that seems ok.

      I have very limited experience with plugins, however. I assumed this was how they all worked. SoftSynths have editors, audio plugins do not. But maybe there are exceptions?

       

      Last edit: Ted Felix 2023-08-30
  • Philip Leishman

    Philip Leishman - 2023-04-27

    Thanks for the info. I installed hexter and I could set it as a synth - working fine. Unfortunately the "Editor" button does not work for me. Rosegarden says "debug/[] - [AudioPluginOSCGUIManager] showGUI(): 10000 , 999" but no window opens.
    Synths and audio plugins can have editors. I have attached an example from the guitarix GxReverb-Stereo lv2 plugin

     
  • Philip Leishman

    Philip Leishman - 2023-04-28

    OK - hexter does have a gui and after configuring my network domain properly it works as you described!!
    Thanks for the info.
    LV2 uses a completely different method for providing guis. I will look into it.

     
    • Ted Felix

      Ted Felix - 2023-04-28

      after configuring my network domain properly it works as you described!!

      Really? Bizarre. Does that fix any of the others as well?

       
  • Philip Leishman

    Philip Leishman - 2023-04-28

    Yes the osc protocol was using the domain name which was not in /etc/hosts - so no network connection.
    I still can't find any other plugins that have a gui.
    Most of the lv2 plugins I have installed do have a gui. Here is another example from lsp loud_comp_stereo

     
  • Philip Leishman

    Philip Leishman - 2023-05-10

    So up to now we just had osc gui plugins. Lv2 guis are completely different.
    I have made a new AudioPluginGUIManager class which delegates to the different gui types.
    Also I have reinstated the hasGui call for osc - it works fine for me - see the original comment.
    I will have a go at getting some lv2 guis working
    Suggestions and comments welcome !

     
  • Philip Leishman

    Philip Leishman - 2023-05-13

    In the latest version the X11 guis (eg. guitarix, lsp) seem to work (at least partially)

     

    Last edit: Ted Felix 2023-05-21
  • Ted Felix

    Ted Felix - 2023-05-21
    • labels: --> lv2, plugins
    • assigned_to: Philip Leishman
     
  • Ted Felix

    Ted Felix - 2023-08-30

    Just starting to look at this. Philip, what's your feeling on a beta release for December? Realistic or not? Alpha/experimental more likely? What limitations does your implementation have at this point?

     
  • Ted Felix

    Ted Felix - 2023-08-30
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,3 +1,3 @@
    -We really should support LV2 plugins.
    +We really should support [LV2 plugins](https://lv2plug.in/).
    
     See [bugs:#1433].
    
     

    Related

    Bugs: #1433

  • Ted Felix

    Ted Felix - 2023-08-30
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,3 +1,5 @@
     We really should support [LV2 plugins](https://lv2plug.in/).
    
    +For now, one can use an external plugin host like [Carla](https://kx.studio/Applications:Carla) to connect plugins via JACK.
    +
     See [bugs:#1433].
    
     

    Related

    Bugs: #1433

  • Philip Leishman

    Philip Leishman - 2023-09-01

    Still very much alpha.
    This turned out to be quite complex.
    The status:

    1. some plugins work and some don't (no surprise there)
    2. The X11 guis seem to run OK (but not with full functionality)

    Still to do:

    1. gtk guis
    2. improve ui <-> plugin communication - atom port, control out, direct access
    3. additional features which seem necessary (eg. opts feature)

    I have been looking at starting two guis if a mono plugin is used on stereo audio (one gui for each channel). This seems to be quite complex and probably not worth it.

    An alpha release will probably be OK - I believe it will do no harm !

     
    • Philip Leishman

      Philip Leishman - 2023-11-06

      I have made considerable progress in a test program (not yet integrated into rosegarden). For the points above:

      1. gtk guis - now working - requires some gtk infrastructure in rosegarden !
      2. The communication seems to be working quite well
      3. I put in the additional features

      I will wait for the new release before putting this into rosegarden. The presents status on my branch could be taken for alpha testing.

       
1 2 3 .. 9 > >> (Page 1 of 9)

Log in to post a comment.

MongoDB Logo MongoDB