[linux-audio-dev] LADSPA needs & wishes
steve at plugin.org.uk
Sun Jan 28 15:01:26 UTC 2007
On 28 Jan 2007, at 05:07, Fraser wrote:
>> however, it and i think all the other issues you raise are all
>> solved by
>> LV2 (LADSPA Version 2), which has come about in part from other
>> difficulties with the same range of problems as you.
> ahh, so there is a V2 coming, not too much info about it yet out there
> (unless you know where to look)
Which is deliberate, as it's not quite finished yet. There was quite
a lot of discussion here though.
On the "natural" parameter values, I really rather like it that way.
Sure, it costs a bit of CPU to do the conversion, but it means that
different plugins of the same type are more likely to be compatible,
and it makes wiring up things in a modular synth style easier. It
also means that things like preset files contain the same values as
the live display, which is helpful.
When it comes to burning a bit of extra CPU power to make the users
life easier, I'm all for it.
>> From my quick look at the LV2 spec there's something I'd like to
>> see (this
> is just my 2c):
> The plugin doesn't know when a parameter has changed, so it must
> it's internal values from the displayed parameter 'as often as
> possible' -
> once per run() call (doing it in the for loop itself is just too
Sure. This was an issue in LADSPA, though not a significant enough
one that anyone wanted it changed. I would suspect you're
overestimating the burden compared to the function call overhead and
cache thrashing. I'd be interested to see figures indicating
otherwise though. There will obviously be cases where it's faster to
set values using callbacks, but I'll bet it's not universal.
It's also quite convenient for both the plugin and host not to have
to provide/call callbacks for every parameter.
> This has the following advantages
> 1) run() just runs (saved a bit of cpu)
But costs you some extra function calls, and makes the CPU load
dependent on the frequency of changes, which makes predictably
hitting RT deadlines harder.
> 2) internal values are only calculated when the parameter they are
> associated with changes
> 3) changes to parameters can be presented to the run() function
I don't see how it makes any difference in this area?
> 4) the plugin knows when a parameter changed and so can smooth
> jumps in
> values itself (rather then hoping to host is doing it)
Either way the plugin is free to do parameter smoothing. Typically I
just do a linear interpolation and/or a 1st order LP filter.
More information about the Linux-audio-dev