[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