[LAD] Plugin block length restrictions

From: David Robillard <d@email-addr-hidden>
Date: Sun Oct 21 2012 - 23:24:16 EEST

I have explicitly asked about block length restrictions on l-a-d several
times, but of course that doesn't work. Setting up an idea to be flamed
works wonderfully though (mining that most plentiful resource of
assholes on mailing lists). The convoLV2 announcement served this
purpose nicely. In summary:

Convolution is the only reason anyone has come up with for a power of 2
block length restriction. Apparently that is wrong.

Only one argument has ever been posed for a fixed restriction, and that
was wrong too (outside LADSPA anyway, where we are not forced to use
control ports).

So, unless anyone has new compelling examples, we have some new
implementation recommendations for the block length restrictions defined
in LV2 1.2.0:

 * Fixed and power of two can be difficult or impossible to implement,
   and are not useful, so hosts should not bother trying to implement
   either (except where it is trivial), and plugins should not expect
   them to.

 * The remaining restrictions, minimum and maximum, are needed to do
   some things without latency, and are useful for performance reasons,
   so hosts should try to implement this if possible. Plugins should
   only require these if absolutely necessary, since some hosts may not
   be able to implement minimum in particular. convoLV2 is an example
   of a plugin with minimum and maximum restrictions.

As before, all hosts should implement passing the maximum length to the
plugin, which is often required and easy to do.

There is one issue related to minimum, buffer alignment, which is useful
for SIMD (e.g. using SSE). This has not yet been addressed in the
specifications.

-dr

_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev

Received on Mon Oct 22 00:15:12 2012

This archive was generated by hypermail 2.1.8 : Mon Oct 22 2012 - 00:15:12 EEST