[LV2] Resolution of issues relating to LV2 Buf Size properties.

Robin Davies rerdavies at gmail.com
Sat Apr 22 20:14:05 PDT 2023


I stumbled across some old mailing list discussions on the use of Buf Size
parameters; but I was unable to figure out what the final resolution to
some the issues raised were.

The issues raised affect both an LV2 Host (PiPedal), and a convolution
reverb plugin (TooB Convolution Reverb).

The particular issue is that of determining what the fixed buffer size will
be when process() is called.

Pipedal as a host takes the safe approach and tears down and recreates all
plugins if the buffer size changes.

I'm just about to make a change to Toob Convolution Reverb that exploits
fixed buffer sizes. There was a suggestion in the mailing list that Carla
was going to notify plugins of a buffer size change using an
LV2_Options_Interface::set.

The specific questions:


   - At instantiation time, can I reasonably having declared that my plugin
   requires  the LV2_Block_Size__fixedSize feature (lv2:requiresFeature
   bufsize:fixedSize) , that the nominalBlockSize I receive at instantiation
   time will be the maximum block size used when process() is called?

   - Can I prevent Carla and similar plugins from using
   LV2_Options_Interface::set. to notify of a buffer size change, instead of
   recreating the plugin from scratch? The prospects of tearing down and
   recreating very elaborate buffer and threading schemes while the realtime
   thread is running are not appealing.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lv2plug.in/pipermail/devel-lv2plug.in/attachments/20230422/0d7b84ad/attachment.htm>


More information about the Devel mailing list