[LAD] [ANN] IR: LV2 Convolution Reverb

David Robillard d at drobilla.net
Mon Feb 21 22:56:58 UTC 2011


On Mon, 2011-02-21 at 20:56 +0000, Fons Adriaensen wrote:
> On Mon, Feb 21, 2011 at 02:30:25PM -0500, David Robillard wrote:
> 
> > > I just did a simple test:
> > > 
> > > * added a few lines (< 10) of code to jaaa,
> > > * started Ardour and opened its 'Locations' window,
> > > * and had jaaa running within it in seconds.
> > > 
> > > And that's wihout any cooperation from Ardour. A plugin could use
> > > whatever X11 toolkit it likes and with minimal support from the host
> > > do the same. Apart from that it would need some cooperation to transfer
> > > data between the dsp code and the GUI, but this can be made almost 
> > > transparent to the host.
> > 
> > This is currently a possibility, but it throws away the ability to do
> > things possible when the toolkits do match (notably embedding the GUI in
> > another window, such as the presets/etc bar ardour adds to the top).
> 
> Embedding the GUI in whatever window you like (e.g. a channel strip)
> is just the same thing. The changes I made to jaaa made it accept a
> window ID instead of its own top level parent window. It could equally
> well accept parameters that define a rectangle in a host's window. And
> if the host doesn't trust the plugin not to go outside its assigned
> area it can just create a window for the plugin to use and have peace.
> 
> > It is also not portable (depends on X11),
> 
> I don't care about any system that doesn't support X11. I don't even
> care about some that do.

Which is why yours is a poor solution. It loses much, and gains little
if anything.  Making a UNIX only plugin or UI is fine. Making a UNIX
only plugin API is (in this case) stupid.

You /can/ implement "I don't give a damn about anything but <toolkit X>"
plugin UIs (or hosts) right now, by design. I have always strongly
advocated this. You can't, however, use some nonexistent authority to
force all the other developers to agree - many (and in this case
virtually all) don't. Try and make a monolithic kitchen sink plugin API
like that and watch as everyone outright rejects the entire thing
instead of little replaceable slivers of it...

Yours is a valid perspective for UI and host authors. It is a terrible
one from the API designer perspective. The good design lets you and
others work only with your preferred technology - and interoperate with
others with different tastes.  This is possible, feasible, and makes
more developers and users happy.  It is, in other words, an objectively
much better solution.

-dr





More information about the Linux-audio-dev mailing list