[linux-audio-dev] External audio interface (edirol FA/UA-101)

Jussi Laako jussi.laako at pp.inet.fi
Fri Sep 30 18:01:04 EDT 2005

On Fri, 2005-09-30 at 22:22 +0200, Florian Schmidt wrote:
> b] that the buffersize will not change inbetween two buffersize_callbacks.
> http://jackit.sourceforge.net/docs/reference/html/types_8h.html#a13
> I suppose your sample rate conversion stuff is violating the jack API
> requirements.

Could be, somewhat. Usually buffersize callback is used to allocate
buffers. My implementation guarantees that process callback is not
called with _more_ data between the buffersize callbacks. It can be one
sample less. It's just based on libsamplerate.

> Well, my jack_convolve simply uses what jack is providing (chopping up
> the response in buffersized chunks so each block can be directly
> processed without extra delay). jack_convolve relies on both a] and b]
> from above (well it really ignores the possibilities of the buffer size
> changing, so it really is broken, too, in a sense).

My rtEq code for example just does .Put() to filter and .Get() from
filter. All the buffer vs processing size is hidden and non-relevant.
And in case of recursive multi rate filter it can be different on each
recursion anyway.

> Which really is a problem i think. I don't use any USB hw for example,
> so i don't really know how this is solved in these cases.

In case of OSS backend, this can be handled by the driver. For multiple
samplerate case this is more complex.

Jussi Laako <jussi.laako at pp.inet.fi>

More information about the linux-audio-dev mailing list