On Mon, Jun 19, 2006 at 10:34:05PM +0100, Steve Harris wrote:
FWIW, I think the "not changing any code"
thing is a blind, someone,
somewhere has to change some code if you want new behaviour*. To me the
critical thing is not that, but that a display function or whatever only
solves half the problem. You would also like the app to be able to
"understand" the control value and it's units. But I said that allready :)
* though not if you don't which can be more of an advantage than you'd
think.
What worries me is that LV2 is *not* going to solve the problem that
DR raised w.r.t. my "Moog" filter plugins.
IIRC the control law is :
f = pow (2, v) * frequency_of_middle_C
or some such, where v is the parameter value. So the relation v->f is
*exponential* (not logarithmic).
Now in a sophisticated soft-synth, the control port could be connected
to either:
1. another module:
In that case the host needs to know the relation above.
2. a GUI widget:
This may want to display the frequency either in musical terms,
or in Hz. The relation widget_pos->v should be linear, while
the relation displayed_frequency->v is logarithmic, using
the inverse relation of the one above.
3. a MIDI controller:
Since we are controlling a frequency, it would make sense to
use MIDI note numbers. So the host needs to know that
v = (n - 60) / 12.0f;
4. an OSC path:
Here we would probably want the plain frequency as the OSC
parameter value.
So how are we going to tell this to the host ?
I'm sure LV2 can _represent_ all of this, but representation is
not the same as meaning. For the host to understand it, either
- it has a degree in music science and DSP,
- the meaning of the tags used is predefined by some standard.
The latter is missing, and once it is defined the need for
an 'open' representation format no longer exists.
--
FA
Follie! Follie! Delirio vano e' questo!