I heard this stuff ("...it was terrible until PulseAudio delivered us from evil") so many times that I actually began to question my memory and dug down in old mailing list threads and my old screenshot folder. It especially pisses me off that so much of it is PR -- which I appreciate, but which I think has little place in the world of free software, at least the way I see it.

For all of you poor onlookers who have no idea why people don't like PulseAudio, sit down and let grumpy ol' notalaser tell you the story of how PulseAudio gets all this hate -- much of which is, in fact, entirely undeserved today.

Back in 1999-2000 or so, things were really bad when it came to audio on Linux. The biggest problem most users faced right after being able to finally make something come out of their speakers was mixing audio streams from more than one source. This was especially relevant because, at the time, audio effects were really in vogue on the desktop.

The problem was that OSS was flaky and had basically no support for software mixing -- which meant that, save for the few sound cards that supported this feature in hardware, you couldn't play more than one stream at once. ALSA, on the other hand, was in a very early state, had all sorts of trouble, not too many drivers and updates were going slow considering that this was back when virtually everyone installed Linux from CDs and the biggest hurdle to a rolling release model was dial-up.

The way most desktops solved this problem was with a sound server (yep, basically PulseAudio). KDE used something called aRts; Gnome, I think, used Enlightenment's ESD. Both of these would do the mixing in software and pour everything into /dev/dsp. The bad news? They were really slow, high-latency (and I mean high latency, sometimes I'd get the sound alert a dialog about ten seconds after closing the dialog) and were a little funky. If aRts' queue stalled, for instance, the effect was a little comic -- after unstalling it would end up playing all the sounds that had accumulated in the queue. It was very comic.

By 2004-2005 or so, however, the whole concept ended up being mostly irrelevant, as ALSA began to really support hardware (and software mixing). Gnome eventually dropped ESD altogether. KDE kept up with aRts (but IIRC a lot of distributions started shipping KDE with aRts disabled) up to 2004, then embedded some of its ideas into Phonon. Those of us using something else finally rejoiced and never ran a sound server again.

2004 is also the year when PulseAudio was first released. By the time it got included by default in Fedora, in 2006, playing multiple streams using nothing but ALSA was very much a solved problem. I think it was so solved that it worked on Gentoo out of the box, without having to configure anything, on the more common sound card models. Not that Linux sound was perfect -- drivers were still flaky-ish sometimes, but obviously that was not something that a sound server, be it PA or something else, could solve.

So fast forward to 2007, when PulseAudio is actually unleashed upon the computers of everyone else except Lennart and his friends as it's adopted and enabled by default in Fedora 8. To put it mildly, nothing worked anymore. Very literally -- when we installed it at the crufty place where I held a part-time job there, it broke sound on every single one of the 10-15 different configurations we had, from laptops to desktops. On really old desktops, the breakage was subtle (high latency, occasional crashes). On newer laptops it was entirely terrible, they wouldn't even hiss. PA had no useful documentation, basically no means to do any useful debugging, and its upstream team quickly made a lot of friends due to its leaders' difficult (if superficially gentle) personality.

This was extremely unfortunate because alsa -- while not sucking as much as Pulse's PR machine claimed -- was still pretty bad, and many of its design decisions were firmly rooted in the landscape of the late 1990s Linux. dmix wasn't too power efficient and it had a bunch of other problems re. dynamically-added devices. Linux' sound system needed the improvements that PulseAudio brought; unfortunately, PulseAudio was both very slow in delivering them (in a manner that would not crash once a day, that is) and very eager in being adopted, which resulted in it being widely deployed while it was pretty much in early beta.

This is how everyone came to hate PulseAudio (and Lennart Poettering). It created quite a rift in the community, too, one that went on to be made even deeper. It also hurt PA's development pace in the long run.

tl;dr PulseAudio was too bold, too soon, even though it was, in many ways, too late.