[LV2] friendly reminder 2017 -- was: Qt5 plugin UIs and libsuil

David Robillard d at drobilla.net
Fri Mar 10 10:19:24 PST 2017

On Wed, 2017-03-08 at 20:23 +0100, Robin Gareus wrote:
> On 03/08/2017 08:04 PM, David Robillard wrote:
> > 
> > Yeah, suil should be able to do this, providing a
> > suil_just_show_the_thing() or whatever that Just Works whenever
> > possible.
> I'd love to see an efficient IPC mechanism that works x-platform on
> all
> the platforms that LV2 works on.

Nobody ever got fired for using TCP sockets.

"Efficient", well, yeah.  No.  This is a fallback (or single-plugin
host) mechanism, not something ideal.  That said, it can easily be good
enough.  Hell, people do this for actual plugins and kinda sorta get
away with it, most UIs are waaaaaaaaaaaaayyyyyyyy less demanding.

> And then the plugin UIs - separate-applications - still need to ship
> the
> whole stack.  Also opening and closing a plugin UI will load e.g. a
> few
> hundred MB of QT5 libs and that for every plugin GUI.

That has nothing to do with doing it out of process, and everything to
do with using a toolkit/stack/whatever that's hundreds of MB.

Consider it hereby taken for granted that we all know that Robin thinks
using Gtk or Qt or whatever for plugins UIs is insane in any and all
circumstances :P

> > Clearly it was a mistake to not bake this in from day one,
> > preventing
> > all the horrific nonsense like external-ui that burdens both plugin
> > and
> > host authors with this crap, but oh well.  Live and learn :)
> I'm tempted to state the opposite. Allowing separation is a geeky
> pipedream without any real world impact.

Yeah, because "here's a pointer to your plugin instance, do whatever!"
worked out *so* well for VST :P  In any case, separation is only
getting more relevant, IMO, but I don't see how that's the "opposite"
position at all.

(Separation is really just a side-effect of having a plugin control API
that actually makes sense)

The mistake is having this be something that pollutes the UI API and
thus burdens both plugin and host authors at the same time, when the
general problem ("I have a widget of some type and maybe this is not
embeddable in the host and an out-of-process solution is necessary")
is, well... general.

There are pros and cons to separation, but that aside, external-ui is
just a complete shit way to go about it.


More information about the Devel mailing list