Re: [LAD] [ANN] IR: LV2 Convolution Reverb

From: David Robillard <d@email-addr-hidden>
Date: Tue Feb 22 2011 - 00:56:58 EET

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

_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Tue Feb 22 04:15:03 2011

This archive was generated by hypermail 2.1.8 : Tue Feb 22 2011 - 04:15:03 EET