Re: [linux-audio-dev] Project: modular synth editor

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Project: modular synth editor
From: Alfons Adriaensen (fons.adriaensen_AT_alcatel.be)
Date: Thu Jan 15 2004 - 15:52:45 EET


On Thu, Jan 15, 2004 at 11:18:10AM +0000, Steve Harris wrote:

> It's not really possible for the plugin to create a UI independently, the
> UI control has to be routed via to host to allow automation.
>
> I prefer a model when the host is reponsible for requesting the UI
> creation, the UI talks to the host (eg. via OSC) and the host relays the
> changes, via th LADSPA API to the plugin.

The best the host can do ATM is to create widgets based on the port hints.
These do not provide any information on how the parameters may be related
or interact. Also, not all parameters types are available.
All this could be in a separate file of course, but I doubt if it's possible
to define a configuration format that captures all possible interactions
and relations that a module designer can think of.

If on the other hand, the 'logic' is in the plugin (as seems natural, since
it's part of the module's functionality), the interfaces are lacking.
They are ATM one way only, and limited to setting parameter values.
  

> > And that's a pity. Since all ports in LADSPA are pointers, even if they
> > only carry a single value for each call to the process fuction, setting
> > the pointer to NULL would have been the obvious way to signal an unconnected
> > port. But it's too late now to do adopt this obvious convention.
>
> Obvious, but highly inconvienient for plugin authors. It means you have to
> check for the connected state of every input and have some kind of
> fallback plan for when its not connected.

This can be as simple as connecting to your own zero-valued buffer, if
that is what you prefer to do with an unconnected port.

A better solution would have been to have a bit in the hints saying that
this port must always be connected by the host, if necessary to a dummy buffer.
Or even a single bit for the entire plugin. But again it's too late for that.

OTOH, we could introduce the reverse: a bit in the hints requesting the host
*not* to connect a dummy buffer, but instead to set the pointer to NULL if
the port is unconnected. This would be backwards compatible, AFAICS.

> FWIW, I dont think its neccesarily important that LADSPA is used in
> modular synths, its far more important that modular synths all use the
> same module format, whatever it is, to save the duplication of effort
> thats going on currently.

I'd agree, but not if the common format is defined to be lowest common
denominator, and dumbed down to make life as simple as possible for simple
cases at the expense of the more general. That's the way MS Word was
designed, and you all know the result :-)

On a more general tone: I think we should be less afraid of complexity
and learning curves. Dumbing down maybe required in order to be popular,
but that's not my aim. And finally, I believe diversity is a Good Thing.

-- 
FA


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Thu Jan 15 2004 - 15:57:00 EET