Page 1 of 1

Query about the LV2 plugin format

Posted: Mon Sep 03, 2018 12:04 pm
by milk
Breaking this out from the other thread as TBH it's OT there.

j_e_f_f_g wrote:It's shocking how something as basic/fundamental as data storage/organization is so horrendously ill-conceived and unwieldy. But then, he did make the absurd choice of turtle for a storage format, so there's no limit to how bad it can get. And it's gonna get bad when Wayland takes over. (Not because of Wayland though.)


The use of Turtle in the LV2 plugin format; what are the advantages, what are the disadvantages?

Are objections (seen threads such as the one linked above, or this one), with the use of a semantic/relational format, or with the choice of such a format (Turtle), or with the way that format has been used? Would another variety of semantic (or other) format have been better (i.e., if JSON-LD had been available then)?

Pointers to prehashed discussion points made in mailing lists also welcome.

Re: Query about the LV2 plugin format

Posted: Mon Sep 03, 2018 1:40 pm
by SpotlightKid
I don't really have a problem with turtle either. The important thing is that there is a standard for describing parameter values and their storage. The situation with VST, where every plugin and host just basically stores a binary blob in their own proprietary format, hinders exchangeability between different programs (which is probably why it is still prevalent in the commercial world).

Developers do seem to have problems with implementing all the aspects of the LV2 specs correctly, though. I think it comes down to better developer documentation. Not just reference docs but tutorials, which do not stop at implementing very basic plug-ins, but show how to do preset handling in hosts, and for plugins storage of file references, samples and other data and so on.

Re: Query about the LV2 plugin format

Posted: Tue Sep 04, 2018 6:04 pm
by tramp
falkTX wrote:The LV2 author has been researching json-ld for possibly use in LV2. Although it seems simple at first glance, the implementation is not.


Indeed, JSON is very error-proneand tend to segfault on semantic mismatch. However I personally like it more then turtle, but that is urelevant for a plugin standard.

The advance of a turtle file per plugin is clearly that the host could collect data for the requirements/meaning/metatdata of a plugin without load the binary into the processing space. That is clearly a advance over any other plugin standard out there.
Which format is using for that dosen't matter, as long it is standardized. So why not turtle?

However, I see the problems with the LV2 plugin format more on the GUI side, were no standard is given.
Formally, LV2 starts with the goal to support "any GUI toolkit" out there, which is a to high goal to fill for a host. The gaps become now visible, where popular hosts simply skip support for some GUI tool-kits, even if they could support it.

A standardized LV2 GUI toolkit could prevent a lot of plugin developers to develop there own toolkit just to draw some knobs and background images.

I remember very well the first LV2 plugin, developed by Krzysztof Foltman, yes, it was the CALF suite, comes with a GTK based GUI, were still wasn't a host outside who could load a LV2 plug.

I've followed that, and found myself no this days develop my own Xlib based toolkit, over the last few weeks, just to draw some knobs, have I mention background images?

Re: Query about the LV2 plugin format

Posted: Wed Sep 05, 2018 8:36 am
by tramp
Unfortunately, in the LV2 book the only GUI examples been GTK based.
I guess it's time to change that, and provide instead a Xlib based example (I'm willing to do so) to avoid further complications.

Re: Query about the LV2 plugin format

Posted: Wed Sep 05, 2018 5:58 pm
by sadko4u
tramp wrote:Unfortunately, in the LV2 book the only GUI examples been GTK based.
I guess it's time to change that, and provide instead a Xlib based example (I'm willing to do so) to avoid further complications.

Yes, we need to kill it with fire!
No one should use GTK as toolkit for plugin development!

About turtle: I don't like it, I don't think that was a good design choice.
For non-trivial plugins it can take megabytes of text data.
That's why I just wrote turtle generator for LSP that generates proper configuration, that solved my problem of writing turtle files forever.
Similarily I don't like LV2 design because it requires too sharp learning curve. Many things could be done easier I think.

Re: Query about the LV2 plugin format

Posted: Wed Sep 05, 2018 7:28 pm
by Lyberta
What's wrong with GTK? Haven't coded for it so I have no idea.

Re: Query about the LV2 plugin format

Posted: Wed Sep 05, 2018 8:48 pm
by ssj71
Lyberta wrote:What's wrong with GTK? Haven't coded for it so I have no idea.

Nothing wrong with GTK, lots wrong with using GTK for a plugin.
See: http://lists.lv2plug.in/pipermail/devel ... 01593.html for some explanation

Re: Query about the LV2 plugin format

Posted: Thu Sep 06, 2018 5:28 am
by rghvdberg
sadko4u wrote:Yes, we need to kill it with fire!

:lol:

Re: Query about the LV2 plugin format

Posted: Thu Sep 06, 2018 7:18 am
by Lyberta
ssj71 wrote:Nothing wrong with GTK, lots wrong with using GTK for a plugin.
See: http://lists.lv2plug.in/pipermail/devel ... 01593.html for some explanation


Ugh, and I just wanted to add Qt GUI to my plugins. I'm so discouraged right now.

Re: Query about the LV2 plugin format

Posted: Sat Oct 06, 2018 7:58 am
by tramp
Lyberta wrote:
ssj71 wrote:Nothing wrong with GTK, lots wrong with using GTK for a plugin.
See: http://lists.lv2plug.in/pipermail/devel ... 01593.html for some explanation


Ugh, and I just wanted to add Qt GUI to my plugins. I'm so discouraged right now.


Here is one of my xlib based LV2 GUI implementation, you may use it as skeleton (or as it is) to develop your own xlib based implementation.
It handle mouse and keyboard events, and do proper window resizing.
All drawing is done in cairo.
https://github.com/brummer10/GxVintageF ... fm_x11ui.c

regards
hermann

Re: Query about the LV2 plugin format

Posted: Sat Oct 06, 2018 4:00 pm
by khz
[X] Yes

Re: Query about the LV2 plugin format

Posted: Mon Apr 22, 2019 8:00 pm
by ctrecordings
ssj71 wrote:
Lyberta wrote:What's wrong with GTK? Haven't coded for it so I have no idea.

Nothing wrong with GTK, lots wrong with using GTK for a plugin.
See: http://lists.lv2plug.in/pipermail/devel ... 01593.html for some explanation


We went the XLib route for our UIs which has made things very lean but the one thing I'm missing from something like GTK or QT is an open file dialog. I'm still not sure what our best bet for implementing it will be on linux.

Re: Query about the LV2 plugin format

Posted: Tue Apr 23, 2019 5:39 pm
by tramp
You may want to check out here:
https://github.com/x42/sofd