Menu

#24 The LV2 custom GUI doens't work in Ardour

0.6.6
wont-fix
Frank
GUI (1) LV2 (1)
5
2020-12-16
2018-03-29
unfa
No

I have reported this issue to Ardour devs, but looks like the problem might be on the QMidiArp side. Details are there:
http://tracker.ardour.org/view.php?id=6949#c20239

Discussion

  • Frank

    Frank - 2018-04-01

    Hi,
    The QMidiArp plugins work with jalv.gtk and ardour4 on my system, both using suil's libsuil_qt5_in_gtk2.so , which on my distro is installed in /usr/lib64/suil-0. But I don't have ardour5.
    Could you try jalv.gtk https://git.code.sf.net/p/qmidiarp/lfo in a terminal and see whether this works?

    I understand the mess with different toolkit library versions and LV2, but qmidiarp as an application has been using Qt ever since, so the module GUIs are also Qt.
    Regarding carla there seem to be communication issues between the GUI and the dsp, probably independent of this lib version stuff. As to Rui's plugins, they can use the external_ui extension maybe this is why they work in ardour without suil?

    Regards
    Frank

     
  • Frank

    Frank - 2018-04-01
    • status: unread --> pending
     
  • Dany L

    Dany L - 2018-12-20

    Hi,

    I meet the same behavior as @unfa described. I am on Ubuntu Studio 18.10 running Ardour 5.12.0 (the one included in the distro). QMidiArp is included in the distro and the lv2 plugins has the issue described. The QT UI does not display at all. Only the frame does display.
    https://i.imgur.com/6qlC0Kg.png

    If I run Ardour from the command line I see this message appears when opening the plugin. : QApplication: invalid style override passed, ignoring it.

    I tried running it with jalv.gtk as you suggested. The same happens. Same message and I only see the frame, no widgets inside, and then the window closes automatically. Here is the output of running jalv.gtl:

    Plugin: https://git.code.sf.net/p/qmidiarp/lfo
    UI: https://git.code.sf.net/p/qmidiarp/lfo#ui
    JACK Name: QMidiArp LFO
    Sample rate: 48000 Hz
    Block length: 512 frames
    MIDI buffers: 32768 bytes
    Comm buffers: 396416 bytes
    Update rate: 25,0 Hz

    JACK Name: QMidiArp LFO
    AMPLITUDE = 64,000000
    OFFSET = 64,000000
    RESOLUTION = 2,000000
    LENGTH = 3,000000
    FREQUENCY = 3,000000
    CH_OUT = 0,000000
    CH_IN = 16,000000
    CURSOR_POS = 0,000000
    WAVEFORM = 0,000000
    LOOPMODE = 0,000000
    MUTE = 0,000000
    CC_OUT = 74,000000
    CC_IN = 74,000000
    INDEX_IN1 = 0,000000
    INDEX_IN2 = 127,000000
    RANGE_IN1 = 0,000000
    RANGE_IN2 = 127,000000
    ENABLE_NOTEOFF = 0,000000
    ENABLE_RESTARTBYKBD = 0,000000
    ENABLE_TRIGBYKBD = 0,000000
    ENABLE_TRIGLEGATO = 0,000000
    RECORD = 0,000000
    DEFER = 0,000000
    TRANSPORT_MODE = 1,000000
    TEMPO = 120,000000
    WaveOut = 0,000000
    QApplication: invalid style override passed, ignoring it.
    Erreur de segmentation (core dumped)

    I tried compiling qmidiarp from source. It runs correctly as a standalone application but not as a lv2 plugin. Well, it works as a plugin but the UI doesn't show, and in this case even the frame don't show. Maybe something is missing from my compiling process.

    I'd be very interested if you had any info on this issue. I could also help at trying stuff on my side if you provide me some procedures.

    Thanks!
    And by the way, your arpeggiator is very awesome!

     
  • Frank

    Frank - 2019-11-13

    Hi,
    if anybody is still around here: jalv.gtk (and other gtk hosts) can use Qt5 plugins only if suil > 10.2 is installed correctly. However, for the later Ardour versions (>=3?) even this suil version will probably not work, and there is nothing I can do about this from my side.

     
  • scott

    scott - 2019-12-02

    This plugin is having the same error as the v1 plugins I filed about a month ago which got fixed for the same issue. The plugin needs to be self-contained otherwise it will take down the daw. The status now for v1 plugins is that its xstatic branch has been merged with the master so here is no longer an issue.
    https://sourceforge.net/p/samplv1/tickets/15/

    The reason why ardour doesn't use plugin crash-protection is explained over here, -- the same thread is used as the plugin (further explains why plugins need to be self-contained)
    https://ardour.org/plugins-in-process.html
    https://discourse.ardour.org/t/ardour5-crashes-suil-error/99723/2

    @Frank -- let us know if there's something we users can do to try to fix this.. if you can create a branch for a static-build for the plugin to be self-contained, and have it as a way to test static builds we can git clone/compile it and see how well that goes.

    Here your latest commit for better make rules works here on debian -- I don't know if I require libjack-dev , but I was able to compile I believe using libjack-jackd2-dev. The standalone binary runs, but the LV2 .so plugins show they are using shared QT libraries and that is an issue with ardour... as soon as I saw "ldd" showing me the shared libraries I knew the issue is about self-containment. Perhaps someone from the Ardour ml or maybe someone who's fixed this same issue with their own plugin might be able to give advanced opinion on this as it should not take too much work to change the few areas needed to go from shared to static api library. (or I suppose to go with hidden symbols -- I don't know exactly what that means I think this was mentioned on the kxstudio site)

    I hope this helps to explain where the issue resides and where things can be further looked into.

    thanks

     
  • Frank

    Frank - 2020-01-27

    OK after checking things once again I found out that my last message about suil versions was not correct, apologies. The last (and probably first) suil version with which qmidiarp worked in jalv.gtk is suil-0.10.0 . After that it seems the plugin has to create an own QApplication instance, which for the year between 0.10.0 and 0.10.2 was not the case. I will check what I can do with the people involved (rncbc, drobilla) and hopefully find a way out.

    Cheers

     
  • Frank

    Frank - 2020-01-29

    The current git version restablishes compatibility with suil >= 0.10.2 . The ui should show again with jalv.gtk . However this does not address the static / self-contained world.

     
  • Frank

    Frank - 2020-01-29
    • assigned_to: Frank
    • Group: 0.6.5 --> 0.6.6
     
  • Markku Tavasti

    Markku Tavasti - 2020-05-12

    I try to run qmidiarp plugin in Mixbus 6, and on opening UI, I get:

    suil error: Unable to open UI library /usr/lib/lv2/qmidiarp_arp.lv2/qmidiarp_arp_ui.so (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: undefined symbol: hb_font_funcs_set_nominal_glyph_func)

    In system libs, it is libharfbuzz.so, but in Mixbus delivered version which it uses, there is no such symbol.

    Discussing with Ardour developers, only way to solve is have plugins statically linked.

    See also https://linuxmusicians.com/viewtopic.php?p=84986#p84986

     
  • Frank

    Frank - 2020-12-16
    • status: pending --> wont-fix
     
  • Frank

    Frank - 2020-12-16

    Indeed it would be necessary to use a static build of the plugins if you encounter these problems with Ardour/Mixbus, but I haven't planned to make/publish one now. If anybody wants to contribute this please feel free to jump in.

     

Log in to post a comment.