Username or EmailPassword
Well now. Audio on Linux was already a real mess before Lennart created Pulseaudio. And there were a lot of things that were simply impossible. Like switching your app's audio on the fly to hardware you just plugged in. Proper bluetooth headset support. Doing ssh -X and having mplayer play audio and video over the network. All things I use regularly (yes even remote AV - my old laptop doesn't have the cpu for h264 video, but plenty of bandwith), all stuff that I couldn't do before.
So maybe it took a while to get here, and Pulseaudio had problems while it was being tested by consecutively wider groups of users with more varied hardware and software combinations.
But we're in a much better place now than before Pulseaudio was here, and Lennart did all this work and just kept improving it while taking a boatload of flak from users. I'm not sure I wouldn't have taken my marbles and gone home if I had been in his position - he's got my respect.
Actually, all of what you mentioned was possible before Pulseaudio... guess how? OSS4! But oh no, we couldn't do that, NIH and pride of course so we had to think of something incompatible with every other *NIX out there, with higher latency, years of instability, and software incompatibility. Everything already worked with OSS 4, as the API has been stable for years. Nothing at first, and I do mean nothing, worked with Pulseaudio properly and many things *still* don't.
ALSA is a mess, absolutely. But Pulseaudio doesn't fix that, it just sort of helps gloss over ALSA's issues. Even now Pulseaudio doesn't work properly with some hardware, try it with an emu10k1 based card like the SB Live or Audigy2 (still a lot of those around, they're good cards). Some of the few cards that actually have an awesome ALSA driver, and Pulseaudio plays horribly with them.
Linux audio needed a cleaning up. That is for certain. But Poettering didn't clean it up, he just buried the mess down deeper beneath yet another abstraction layer. Guess what? Now it's even messier than it once was.
OSS4? So... you're advocating doing floating point in kernel space? Because that's what's implied with in-kernel mixing and floating point audio formats.
ALSA might have a difficult API - but from what I understand it's just good at exposing the hardware (features) that are there.
And how does OSS4 deal with user-space audio drivers like for Firewire Audio, or Bluetooth A2DP? How should it do in-kernel mixing for those?
Pulseaudio pushes the stack more - it deals with dynamic latency requests and power management and lots of other things. Things up and down the stack often made wrong assumptions, and got away with it because no software ever pushed it hard. If anything, pulseaudio forced them to confront this, and improve the quality across the board (similar to how NetworkManager forced the wireless network drivers to improve).
What you're advocating is ripping out ALSA and pushing OSS4 in the kernel upstream, right? And then you'd hope to adapt the layers above it so they have similar features than what we have now. All the while hoping that when OSS4 is pushed harder, no evolution or redesign is needed to support certain features.
You don't think this process would cause at least as much or - more likely - even more pain as what we've been through with Pulseaudio?
I don't believe so.
Across several machines and distributions, I haven't noticed any significant latency with PulseAudio in some time. And its pretty much always had significantly less latency than ESD, where the delay often was noticable.
Sound "just works" -- it just comes out of my PC speakers -- both with my Sidux Linux desktop and my Fedora 13 laptop, both with Pulse. Pulse is a huge improvement over ESD, which was itself a huge improvement over bare ALSA. IMHO, anyway.
I freely admit that I'm not an audiophile, but for my casual needs, Pulse has worked pretty well.
All of the problems in Linux audio are in ALSA.
However, instead of fixing ALSA, another layer was added on top.
How does adding yet another layer on top of a crappy foundation make things better?
I'm going to be ignorant today and ask what the problems are with ALSA? It's always worked fine for me, but all I do is listen to music or videos. I've never done any audio recording work. Is that where all the problems are?