<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">>> I have written a FFTW based block convolution jack client, but I am</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">>> having difficulty processing the last jackframes%L samples of the jack</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">>> buffer.  I have read that it might be an idea to collect the samples</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">></span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">> What do you mean by "the last jackframes%L samples" ??</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">The algorithm I am using is the standard overlap-add method of block convolution as defined in Oppenheim and Schafer 1989.  Basically, I take a FIR filter of length M taps, zero pad to N=L+M-1 where L is the length of my sub-block of convolution. Also zero pad L inputs up to to N, then convolve these N inputs with the zero padded filter.<br>
The first M-1 outputs are added to the last M-1 outputs from the previous block, and the output of the current block is truncated to L samples (from N).<br><br>My question is, how do I handle the final sub-block of convolution of each jack buffer, as it will not be of length L, but of length (FRAMES mod L) where FRAMES is the length of the jack buffer.<br>
<br>+-------</span><span style="font-family: courier new,monospace;">+-------</span><span style="font-family: courier new,monospace;">+-------</span><span style="font-family: courier new,monospace;">+-------</span><span style="font-family: courier new,monospace;">+----+</span><br>
<span style="font-family: courier new,monospace;">|       |       |       |       |    |<br>+-------</span><span style="font-family: courier new,monospace;">+-------</span><span style="font-family: courier new,monospace;">+-------</span><span style="font-family: courier new,monospace;">+-------</span><span style="font-family: courier new,monospace;">+----+</span><br>
<span style="font-family: courier new,monospace;">0       L       2L      3L      4L   FRAMES</span><span style="font-family: courier new,monospace;"><br><br><br>--<br>Damien<br style="font-family: courier new,monospace;">
</span>