There was a time when Linux distributions automatically started sound daemons for the user. Typically these were aRts for KDE and esd for Enlightenment, Gnome and others. The main goal was to allow simultaneous audio playback from multiple applications.
Unfortunately, using these daemons has side effects:
- they introduce significant latency
- they require applications to be ported and configured to use them
- they block the audio device for either serious or rather dumb audio applications
Then, thanks to an tremendous development effort, a new audio layer for Linux was born that addressed the main goal of these daemons, allowing hardware mixing where available and enabling software mixing when necessary. The daemons became obsolete and were eventually removed from the default install of all major distributions. The only daemon that stayed relevant was JACK as it addressed audio production needs and most sound creation tools were extended to support that interface, too.
Now, guess what. There’s a new daemon in town. It’s better than ESD, but will still block your audio device. And from what I’ve read it is not designed to compete with JACK in the ultra-low-latency sector. A major motivation for its creation must have been a severe allergic reaction to ALSA. And Fedora and Ubuntu intend to force it upon us.
I got aware of that after upgrading my laptop to hardy, when mplayer failed to playback audio until I killed the pulseaudio daemon. Oh man, was I happy when the daemons where gone.
Yeah, I know, they promise some interesting features. I also read that PulseAudio is causing significant load under certain conditions. I’m just not sure that you really need an extra CPU hog just to play audio, unless you really dedicate your machine to audio production in which case I cannot see why we should not stick with JACK.
I really wonder whether investing all that energy into improving ALSA instead (and maybe gstreamer or JACK) might have helped to provide some of the same features without the hassle of yet another daemon with yet another API.