[LV2] proposed Feature : noSampleAccurateControls
Robin Gareus
robin at gareus.org
Wed Dec 9 16:50:42 PST 2015
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
best,
robin
More information about the Devel
mailing list