The LV2 custom GUI doens't work in Ardour
Linux MIDI arpeggiator, phrase generator and controller LFO
Status: Alpha
Brought to you by:
emuse
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
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
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!
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.
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
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
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.
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
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.