Re: [LAD] Plugin block length restrictions

From: Fons Adriaensen <fons@email-addr-hidden>
Date: Mon Oct 22 2012 - 00:10:40 EEST

On Sun, Oct 21, 2012 at 04:24:16PM -0400, David Robillard wrote:

> * 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.

Neither fixed nor power-of-2 are strictly required for zero-latency
convolution although they make it somewhat easier to implement. For
the simple reason that convolution is not a block processing algorithm
in the first place, even if the most efficient implementations use block
processing. The next N output samples depend only on the next N input
samples (and previous ones) for any value of N. So it is always possible
to allow a call to process() for an arbitrary N samples.

That does not mean that there are no real block processing algorithms,
which do not share the property mentioned above, and which require a
fixed M of input samples even to produce a single output sample. Not
because of the implementation but because of the nature of the algorithm
itself. For example most of the processing inside JAMIN is of that type,
as will be almost all algorithms that perform spectral processing, e.g.
time stretching, morphing, and the like.

Given that, claiming that fixed and power-of-2 block sizes are 'not
useful' is a mistake. And for real block-oriented algorithms, processing
a block is an atomic operation, and it would be futile to try and change
a parameter value anywhere except on a block boundary anyway.

Ciao,

-- 
FA
_______________________________________________
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:13 EEST