Back when I started using Linux on the desktop, all the soundcard drivers were in a project called OSS. You could have one sound app running at one time. So if you were playing an MP3 with Xmms, and you used Netscape 4.x to browse to a page that wanted to play sound, Netscape would lock up. I´d have to quit Xmms before I could continue browsing! Ah, happy days.
Then the KDE project came up with this cool thing called a Sound Server. They called it arts. (Gnome called theirs esd.) Basically, it worked on top of the OSS driver, so that it could mix multiple streams from different sound apps together, and stick the mixed stream into the soundcard. Now I could listen to Xmms and open Netscape on any page! Wow! Progress!
Then the dark side of sound servers reared its head. Each sound app had to now be able to talk to arts, rather than the OSS driver. So we had the xmms-arts-plugin. And soundAppx-arts-plugin. And foobarSound-arts-plugin. Each had to be installed separately - let alone developed and maintained separately. And for those apps, like Netscape, that didnt get their own plugins, there was this wrapper app called artsdsp that you would use to execute the app with - i.e. artsdsp netscape. Needless to say, this was very unstable and glitchy, at best.
Meanwhile, the ALSA project was simmering nicely in the background, and building up support across the soundcard range to rival the OSS project, but with a revamped and future-proof internal structure.
But even if you switched from OSS to ALSA for your soundcard driver, you still had to use arts (or esd) to have multiple sound streams simulaneously. The pain and suffering continued unabated.
And then, joy of joys, somebody came up with the ALSA dmix plugin. Suddenly, I could forget arts and all the little sound arts plugins that my apps would use to talk to arts. ALSA did all the sound mixing on its own without any help! And there wasnt any dodgy sound server process that would just crap out unannounced. It all Just Worked!
And after a short while, even those folks who make the RealAudio player, the Flash player, and (hey!) even the Audacity guys got with the program and made their apps talk to ALSA. Now everybody was at the same party and grooving together!
Sunlight broke through the cloud cover. Flowers popped up everywhere on my Linux desktop landscape, birds chirruped merrily, and the deer munched contentedly on the lush green grass that stretched away to the horizon.
It didnt matter which distro I used - Gentoo, Slack, Redhat/Fedora, Ubuntu ... everybody was in the same boat and singing the same beautiful song. Sound servers became a distant and ridiculous memory, something to raise as a topic at software engineer parties if the mood became sombre and we all needed a laugh.
That is, until today, when I installed Ubuntu 8.04.1 on this no-name P4 desktop. The install goes swimmingly, as I have come to expect from Ubuntu installs. Everything auto-configures without me lifting a finger - lovely. And I want the desktop to be usable for general audio and video for the user who is going to be using the machine most of the time, so I install ubuntu-restricted-extras to cover all the common DivX/Xvid/mp3/etc type media out there. I load a XviD avi to test out the newly-equipped Totem player, and .... nothing. If I move the slider I can see individual frames, but it doesnt actually play.
Hmmmm. Okay, I say, maybe some backend problem. Lets install Mplayer and have a go! Same thing - no playing.
Smplayer? Same deal. Ok, this is getting serious. Can VLC help? I install it, and the video plays OK - but no sound.
After digging around and scratching my head, I realise that, horror of HORRORS - my beloved and highly mature Linux distro of choice, Ubuntu, has got a Sound Server running in it! The thing they call PulseAudio!
Aaaaarrrggghh! The nightmare is come again!
What has become of my lush and happy Linux landscape! What have the developers been smoking? ALSA dmix was so nice! It was so clean and simple! And nice! What the hell is going on? Has everybody gone mad?
So I read up. I read this guys defence of PulseAudio.
I read ArsTechnicas loving summary of why PulseAudio is A Good Thing.
And I also read, with eyes wide with alarm, the HowTo for HowTo Get PulseAudio Actually Working On Your Machine.
(That is ignoring the Quick N Very Dirty FixMe Howto and the Slightly Different HowTo ...)
Now, I realise that plenty of people at Ubuntu from Shuttleworth down must have considered this, just like the guys at Fedora and SuSe who are also using this thing, and I can see that PulseAudio has got Way Cool Things going for it (like hotplugging audio-device support, redirecting audio over a network etc) - but if I cant play a silly little movie using this new WhizzBang Sound Server without following a rather frightening multi-page HowTo, then who the hell really wants to use it? Or use Ubuntu, for that matter?
Please bear in mind here that I am an experienced Unix System Administrator, infrastructure support engineer and developer - I dont mind messing with the terminal and getting my hands dirty (in fact I love it) - but I represent about 0.001% of the global computer-using population, and for good reason: most people like to use their cars and computers and stuff to Do Things, not Find Out How They Work For The Fun Of It.
And yes, I know that many, if not most, Ubuntu-ers have had no problems with PulseAudio - but Im using pretty generic kit and a totally default install, so what the hell happened to me and my install?
More to the point, how is the inevitable additional complexity of having a userspace sound system (again!) going to be handled in general? More plugins, more fiddling, more projects to maintain - where does it all end? libao-pulse? libsdl1.2debian-pulseaudio? I never used to need this extra rubbish....
From a slightly concerned Ubuntu lover.
p.s.
lspci shows:
00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 02)
p.p.s.
I see also that the Preferences->Sound->Sounds Tab gives me the option to untick Enable software sound mixing (ESD), log-out and in again, and then to have my media fun. Yeah, sorry - not good enough guys! It should Just Work!
p.p.p.s.
Yes, I know that ESD has actually been in Ubuntu for ages. When I have actually used vanilla Ubuntu in the past, ESD has always been disabled, if not in fact deleted from the filesystem, to the general betterment of the system and all human life in general. (ESD was always a sad creature.) My points and questions above still hold.
Bookmarks