Re: [linux-audio-dev] Re: LADSPA GUI [was: New LADSPA Version - Issues Resolved?]

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

Subject: Re: [linux-audio-dev] Re: LADSPA GUI [was: New LADSPA Version - Issues Resolved?]
From: David Olofson (david_AT_gardena.net)
Date: to maalis 09 2000 - 22:18:08 EST


On Fri, 10 Mar 2000, Alexander König wrote:
> Without knowing the value range I cannot proivde any useful GUI to the
> plugin. Or if I could and just don't know how, someone tell me please :)

See my external .conf file idea earlier. BTW, it's usable/useful
regardless of whether controller ranges are fixed or defined by the
plugins.

> I modified my (naive) suggestion a bit. It's not specifically GUI
> related in any way, it just lets the host know how the control ports
> work... my mentioning of the GUI was just the problem that occurded to
> me, but I'm sure there are other situations when it make sense to let
> the host know the value range. So here is my modified proposal:
>
> Every control port could have one of these:
>
> struct PortValueHints
> {
> float MinValue;
> float MaxValue;
> float DefaultValue;
> float ValueStep;
> };
>
> Now if the port controlled were for example some volume it could set
> MinValue=0, MaxValue=2, DefaultValue=1 and ValueStep=0 signaling the
> host that this control port takes values form 0.0 to 2.0 with no
> stepping at all.
>
> If the port were some "toggle" ;) port (for example turning on some
> special feature) it could set Min=0, Max=1, Def=0 and Step=1.0 signaling
> the host it's just reacting on two different values 0.0 and 1.0. Hmm of
> course the host wouldn't know how the plugin reacted for 0.5 (which
> would still be a valid input of course) - we could either define how
> plugin should have to react then or an intelligent host shouldn't let
> the user set anything else but 0 or 1.
>
> If the port were some mode-selection kind of port where the plugin could
> work mode 1, 2 or 3 it could set MinValue=1.0, MaxValue=3.0, Default=1.0
> and ValueStep to 1.0...
>
> If the host doesn't care about those hints - ok - LADSPA will be the
> same as without. If the app cares it can try to provide some useful
> automatically generated GUI for the plugin if it wants to.

Fine, but there is a problem with this. If there are various rules
for how control inputs should be treated, the host has to contain
lots of code to handle all of it - and the issues involved when
connecting inputs and output. This is a lot more complicated and
slower than hardcoding it into the plugins, and using a fixed range,
or possibly a very limited set of control data types.

> Alternatively the information about the control ports could be stored
> some other description file - but as nobodies gonna maintain that I
> guess it's better to keep it in the binary.

Any information about valid input values should *definitely* go into
the plugin binaries, as using invalid values could crash the plugins!
Any other stuff can be thrown out in a separate (human readable)
file, as it's irrelevant to the signal processing and the engine.

//David

.- M u C o S --------------------------------. .- David Olofson ------.
| A Free/Open Multimedia | | Audio Hacker |
| Plugin and Integration Standard | | Linux Advocate |
`------------> http://www.linuxdj.com/mucos -' | Open Source Advocate |
.- A u d i a l i t y ------------------------. | Singer |
| Rock Solid Low Latency Signal Processing | | Songwriter |
`---> http://www.angelfire.com/or/audiality -' `-> david_AT_linuxdj.com -'


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

This archive was generated by hypermail 2b28 : su maalis 12 2000 - 09:14:06 EST