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
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
