[LV2] proposed Feature : noSampleAccurateControls

David Robillard d at drobilla.net
Tue Dec 15 12:01:59 PST 2015


On Thu, 2015-12-10 at 01:50 +0100, Robin Gareus wrote:
> On 12/10/2015 01:22 AM, David Robillard wrote:
> > On Sun, 2015-12-06 at 21:14 +0100, Robin Gareus wrote:
> >> noSampleAccurateControls signifies that a plugin favors regular
> >> block-sizes over sample-accurate control data.
> > [...]
> >> Some plugin-hosts (e.g Ardour, Carla) split the plugin's run() on
> >> automation events in order to pass control-port changes with sample
> >> accuracy.
> >>
> >> e.g jack-period: 64. event at sample 37 results in
> >>    run(37); change_port_values(); run(27);
> >>
> >> This is not always desirable, for example:
> >>   a convolution plugin with internally smoothed gain control
> >> will prefer to be called with the convolution kernel size.
> > 
> > The main question that comes to mind is: how useful is this without
> > knowing what the internal ideal block size is (e.g. the convolution
> > kernel size)?
> > 
> > e.g. is regular better, even if the regular period is a bad length for
> > the plugin?
> > 
> 
> yes, regular is better.
> 
> Two LV2 implementations using libzita-convolver just watch run() and
> schedule a worker to re-initialize the engine whenever the length
> changes (guitarix and convo.lv2), pending the yet-to-be-documented
> http://lv2plug.in/ns/ext/buf-size#nominalBlockLength
> 
> As for the "bad length", there's
> http://lv2plug.in/ns/ext/buf-size/#powerOf2BlockLength and knowing the
> length:
> http://lv2plug.in/ns/ext/buf-size/#minBlockLength

Seems a bit fuzzy and overlapping with the above-mentioned options, but
I suppose it does no harm and provides the host with some useful
information about the best way to run the plugin, so, sure.

I am not sure about the name, though.  Block size is only tied to sample
accurate controls for control ports, there are other ways of controlling
that do not have this strong association (and things are starting to
move towards them more).  This is really about block length, not sample
accurate controls, or controls in general.

buf-size:regularBlockLength a lv2:Feature ?

-- 
dr




More information about the Devel mailing list