I don't agree with the contention that it's a mess and has "always been a mess" which suggests
that it's not got any better.
With OSS you had the abstraction in all the wrong places, so often there simply wasn't any way
to do what the user wanted, unless the user happened to want to do whatever the OSS designers
thought you should do (basically, play video games which use 16-bit stereo sound).
ALSA gets more of that right. There's a good chance that whatever my hardware is actually
capable of is reflected sensibly into userspace. I get dB relative amplifier settings for
example, instead of arbitrary "1-100" scales that could mean anything and frequently do.
Recent versions of ALSA finally default to "restore what you can" when your driver updates add
or remove some of the mixer controls for your hardware, which was a huge oversight in older
versions.
JACK gets a lot of stuff right that basically no-one had got right before, although other
modern operating systems are moving in the right direction.
In my experience even (Linux) distribution vendors have got a lot better about audio. Most of
them ship frameworks like JACK so that you don't need to compile anything yourself. They
usually make some attempt to properly set up your sound card, and to restore those settings
next time you use the computer. They will set the permissions correctly for the console user.
In some cases they even remember to grant the console user the new (non-dangerous) real time
quota so that he or she can use pro-audio software without editing text files.
However there's plenty more ground to be covered. Most of the heavy lifting now needs to be
done by the desktop environments (GNOME, KDE etc.), which have traditionally taken the 1990s
DOS game approach of pretending everyone owns a Soundblaster 16 and wants to either play
exactly one music file, or make useless desktop bleeps, or maybe, if they're feeling really
lucky, record a badly distorted or inaudibly quiet 8-bit version of their own voice saying
"Testing". The jury is still out on Pulseaudio, but all the previous attempts at this sort of
thing have been disastrous and I have no reason to think Pulseaudio's developers are any
smarter. JACK makes application developers actually have to care about audio - and that,
apparently, is unacceptable for anything except pro audio software. So, either Pulseaudio will
turn out to finally get this stuff right without making app developers think about it, or
we're back to just ALSA, which at least had dmix working on all the machines I own.
If you're using a properly configured laptop with a pro outboard card and a copy of Ardour
putting together a demo track you could imagine that Linux audio is fine now. But a phone call
from someone who is trying to make the "new mail" sound from Evolution audible - and has been
confronted by forty more or less identically labeled sliders which seem to do nothing - will
soon wake you up to a world where there's a lot left to do. Still, we're closer than we were a
few years ago.
Posted Mar 31, 2008 14:57 UTC (Mon) by Los__D (subscriber, #15263)
[Link]
or make useless desktop bleeps
Hey, we NEED that bleep to tell us when the pagefile was expanded once again, and data might have been lost... Oh wait, wrong OS, carry on.
Linux audio
Posted Mar 31, 2008 16:40 UTC (Mon) by vmole (subscriber, #111)
[Link]
I don't think PulseAudio is perfect, but as someone who has been struggling with audio-related Linux stuff since kernel 1.0.x, it's a lot closer than anything else. The config files are sane, and documented in a way non-experts can figure out. If all you need is single system audio on a single card, you probably don't even need to look at the config. Of course, PA still relies on ALSA, and ALSA has to keep up with all the crappy implementations of supposed standards like intel-hda.
Linux audio
Posted Mar 31, 2008 17:29 UTC (Mon) by Frej (subscriber, #4165)
[Link]
If editing files is needed, well that's the flaw number 1. ;)
Linux audio
Posted Mar 31, 2008 18:33 UTC (Mon) by vmole (subscriber, #111)
[Link]
So how is it supposed to know where to send sound in a multisystem setup? (Actually, PA supports avahi (zeroconf), so actually, I suppose it can automatically figure this stuff out. Never tried that, though.)
Or are you just objecting to text editors? PA has GUI config tools. They're still editing files, though. For that matter, so is GConf.