[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: [linux-audio-dev] Re: LADSPA GUI [was: New LADSPA Version - Issues Resolved?]
From: Alexander König (alex_AT_rhlx01.fht-esslingen.de)
Date: to maalis 09 2000 - 19:27:59 EST


Hmm I agree with what you have said, and I'm sorry for coming up with
that IsToggle stuff. Sorry ;)

I didn't mean to include any GUI functionality into the plugins. I was
just trying to imagine how I could include LADSPA support into
terminatorX (as I just implemented a sequecer that uses events that
support only one float value - which fits nicely to the LADSPA design
;). Now I think for your usual DSP plugin the author doesn't really want
to take care of GUI issues, I guess. For better integration I think it
makes sense when the host takes care of the GUI (in any way). The
problem is: Let's say my host (with a GUI ;) has LADSPA support and I
load a plugin and let the user place it somewhere in the audio
processing chain - now how can he operate it, how can he modify
parameters/ports?

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 :)

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.

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.

Comments?

Alex

-- 
________________________________________________________________________
                            Alexander König - alex_AT_42.fht-esslingen.de
                                             http://www.terminatorX.cx

[From the Homer Quotables:] I thought there was chocolate inside ... Well, why was it wrapped in foil? -- Homer Simpson Mr. Plow


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