[linux-audio-dev] jack and alsa design issue

Dave Robillard drobilla at connect.carleton.ca
Sat Mar 19 08:05:27 UTC 2005

On Fri, 2005-18-03 at 08:24 -0700, Hans Fugal wrote:
> I'm writing an application that will use alsa in the common case, but be
> jack-capable. I'm faced with the following design question: Do I wrap
> the jack part to emulate the read/write of alsa, or do I wrap the alsa
> part to emulate the callback style of jack? In other words, do I push or
> pull from the audio segment of the program?
> As I understand it, alsa can be asynchronous but it requires using SIGIO
> which doesn't excite me. So I'd have to create another thread that
> selects and fills a ringbuffer.
> To adapt jack, I'd have a ringbuffer which is drained when the program
> pulls the audio.
> Adapting Jack seems the easier thing to do, but what do you think?

Definitely write everything as a "pulling" callback-based system, and
wrap that for alsa.  A callback is simple to wrap in a blocking system,
but the other way around just doesn't work (certainly not with jack's RT
requirements anyway)


More information about the Linux-audio-dev mailing list