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!