Re: [linux-audio-dev] Arbitrary bufsizes in plugins requiring power of 2 bufsizes, Was: jack_convolve-0.0.10, libconvolve-0.0.3 released

2005-07-01 Thread Florian Schmidt
On Wed, 29 Jun 2005 23:07:24 +0200 fons adriaensen [EMAIL PROTECTED] wrote: Another very useful feature would be tail extension (combine convolution with traditional reverb processing to lighten the CPU load) I don't think this requires special support from the convolution engine - it's

[linux-audio-dev] Arbitrary bufsizes in plugins requiring power of 2 bufsizes, Was: jack_convolve-0.0.10, libconvolve-0.0.3 released

2005-06-29 Thread Benno Senoner
My suggestion is to handle buffering in the convolution plugin and accept any buffer size from the host. I'd do it without threading to ensure the lowest possible latency. For example: assume we run convolution at 512 samples. use a ringbuffer structure (eg like RingBuffer.h in

Re: [linux-audio-dev] Arbitrary bufsizes in plugins requiring power of 2 bufsizes, Was: jack_convolve-0.0.10, libconvolve-0.0.3 released

2005-06-29 Thread Florian Schmidt
On Wed, 29 Jun 2005 13:20:31 +0200 Benno Senoner [EMAIL PROTECTED] wrote: assume we run convolution at 512 samples. process(float *input,float *output, int numframes) { if(numframes == 512) { convolve(input, output, 512); return; } This has a subtle bug afaict. Let's

Re: [linux-audio-dev] Arbitrary bufsizes in plugins requiring power of 2 bufsizes, Was: jack_convolve-0.0.10, libconvolve-0.0.3 released

2005-06-29 Thread Alfons Adriaensen
On Wed, Jun 29, 2005 at 03:43:39PM +0200, Florian Schmidt wrote: This has a subtle bug afaict. Let's assume the host called several process() with numframes != 512 first, then one with numframes == 512, i.e.: 1. 123 2. 432 3. 234 4. 512 The 4th process call disregards data already in

Re: [linux-audio-dev] Arbitrary bufsizes in plugins requiring power of 2 bufsizes, Was: jack_convolve-0.0.10, libconvolve-0.0.3 released

2005-06-29 Thread Benno Senoner
Florian Schmidt wrote: On Wed, 29 Jun 2005 13:20:31 +0200 Benno Senoner [EMAIL PROTECTED] wrote: assume we run convolution at 512 samples. process(float *input,float *output, int numframes) { if(numframes == 512) { convolve(input, output, 512); return; } This has a

Re: [linux-audio-dev] Arbitrary bufsizes in plugins requiring power of 2 bufsizes, Was: jack_convolve-0.0.10, libconvolve-0.0.3 released

2005-06-29 Thread Alfons Adriaensen
On Wed, Jun 29, 2005 at 05:45:12PM +0200, Benno Senoner wrote: So a 2nd output ringbuffer buffer would be required. Yes. In my lib, the two ringbuffers are part of the convolver, and the FFT and MAC operations operate directly on them. The API to write/read them is similar to ALSA's memory

Re: [linux-audio-dev] Arbitrary bufsizes in plugins requiring power of 2 bufsizes, Was: jack_convolve-0.0.10, libconvolve-0.0.3 released

2005-06-29 Thread fons adriaensen
On Wed, Jun 29, 2005 at 06:02:24PM +0200, Florian Schmidt wrote: What other goodies does it have? Nothing special. I'd like to add a mode using multiple block sizes for minimal delay. This is not trivial and requires multiple threads as well. What do you mean by the API being a bit more

Re: [linux-audio-dev] Arbitrary bufsizes in plugins requiring power of 2 bufsizes, Was: jack_convolve-0.0.10, libconvolve-0.0.3 released

2005-06-29 Thread Benno Senoner
fons adriaensen wrote: On Wed, Jun 29, 2005 at 06:02:24PM +0200, Florian Schmidt wrote: What other goodies does it have? Nothing special. I'd like to add a mode using multiple block sizes for minimal delay. This is not trivial and requires multiple threads as well. Another

Re: [linux-audio-dev] Arbitrary bufsizes in plugins requiring power of 2 bufsizes, Was: jack_convolve-0.0.10, libconvolve-0.0.3 released

2005-06-29 Thread fons adriaensen
On Wed, Jun 29, 2005 at 10:20:47PM +0200, Benno Senoner wrote: Another very useful feature would be tail extension (combine convolution with traditional reverb processing to lighten the CPU load) I don't think this requires special support from the convolution engine - it's jsut an