[LV2] plea to plugin UI devs

Robin Gareus robin at gareus.org
Sat Mar 19 03:19:14 PDT 2016


On 03/18/2016 11:14 AM, Filipe Coelho wrote:

> I mean, we currently we have these plugins using gtk2:
>  - abgate
>  - ams.lv2
>  - amsynth
>  - beatslash
>  - calf
>  - deteriorate
>  - drmr
>  - eq10q
>  - invada
>  - ir.lv2
>  - lsp-plugins
>  - guitarix
>  - vocproc
 - ingen

AFAICT that's the gtkmm/c++ list, the posix-c/gtk2 list is longer.


> I don't think we will ever see all those plugins ported to gtk3.
> If any of those gets ported to gtk3, they will stop working on
> gtk2-based hosts (Ardour and Ingen at least).
> Since Ardour (and consequently Mixbus) are very big players in Linux
> audio, developers will not update to gtk3 and lose the ability to show
> their UI in ardour.

Yes, it's a chicken/egg.

The long term plan for Ardour and its derivatives is to get rid of the
gtk dependency. Most of gtk is gone already (only some spread-sheety
things like the preferences still use gtk widgets). gdk may stay for
windowing abstraction and event handling (or might be replaced with pugl
very long term). But don't hold your breath just yet.

The main reason why we can't get rid of gtk right now are the
File-browser and Treeview widgets. Those are really hard to replace.


> There are some ways around this:
>  - both ardour and plugins move to gtk3 *at the same time* (very
> unlikely to happen, I'd say impossible)

There is no benefit at all to this. Just a lot of work in exchange a few
set of issues. It'll probably get worse once there's gtk4, Qt6.

>  - plugin devs begin supporting both gtk2 and gtk3

 - libsuil adds a external process UI wrapper.


> Oh, and you're not safe from this just because you use Qt.
> Here's a few scenarios that will trigger a host crash:
> 1. Load a plugin that uses a different Qt version (but this can be
> avoided by proper distro packaging)
> 2. Load a plugin that has gtk2 symbols, then later on a plugin with gtk3
> ones
> 3. Use Qt's gtk2 theme and load a gtk3-based plugin
> 4. (Whenever Qt's gtk theme gets ported to gtk3) Load a plugin that uses
> gtk2
> 
> As you say, we're moving from "old" toolkits to new ones.
> I agree with this, so I believe it's only a matter of time until Qt5
> switches its gtk theme to gtk3.
> When this happens, some of your users will be unable to load gtk2 UIs.

It all feels like history repeating. We've been there in 2012. We're
here again now. We can't move huge existing projects but things will
change over time if new projects would at least not make the same
mistakes all over again.



Plugins are supposed to be portable and usable in a range of host as
wide as possible.

If that is not your goal, you're better off writing a standalone
application where you can do as you please.

2c,
robin


More information about the Devel mailing list