LWN.net Logo

Thank you

Thank you

Posted Sep 21, 2008 23:48 UTC (Sun) by mezcalero (subscriber, #45103)
In reply to: Thank you by jebba
Parent article: LPC: Linux audio: it's a mess

PA now uses a "glitch-free" playback model which allows dynamic adjusting of the latency (and thus CPU load) to what the currently connected clients require without any discontinuities in audio. That's why PA is (or "can be" in a good setup) more power friendly than JACK is.

JACK is optimized for lowest latencies, CPU load comes second, and dynamic interruption-free changing of these parameters is not required. For PA however, we want dynamic latencies, generally low CPU load and the parameters need to be flexible.

But even if you would add "glitch-free" to JACK (which makes no real sense), it still is not designed for desktop use. PA carefully makes sure not to convert (or not even touch) audio data if not necessary. OTOH JACK only knows FLOAT samples, and thus audio type conversion is necessary usually at output and often enough on input too. That makes a lot sense for them. It's a very good choice, but it's not the right choice for the desktop.

The requirements of desktop/embedded use, and pro audio use are different. This results in different products. Trying to marry them is a great idea, but also very difficult to achieve. Of course, we should be trying to do this, but we have much bigger problems to fix before we start with that.

Lennart


(Log in to post comments)

Thank you

Posted Sep 22, 2008 7:24 UTC (Mon) by alankila (subscriber, #47141) [Link]

In fact with my brief tussle with JACK a year or two back, it seemed to me that the JACK itself might not actually mandate any particular sampling format. It's just that everybody talks float by default, because it is an excellent choice for professional audio work. (If there are any intents to support any other format, they aren't readily apparent.)

The buffers passed between applications were still void * pointers and the only clue for their contents was a simple string describing what kind of format you had requested from JACK, a #define which expanded to a string such as "32-bit pcm floating point audio"...

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds