I have been running ubuntu 8.04 on my main system since the alpha releases (And what a stable alpha it was to be fair). It was quite fun to watch your OS develop around you day by day, with sometimes hundreds of package updates from one day to the next..
Anyway, today is the day, Ubuntu 8.04 has been released, and since I had no new packages to install (Running on the dev update repository had already updated me last night :P) I decided to have a quick look into one feature I really like in 8.04, PulseAudio.
PulseAudio is a new sound management layer For linux, It sits above the physical sound card and alsa driver, but below the high end codec stacks such as gstreamer, it replaces (in the case of a gnome system) the englightened sound daemon (ESD) and so any app that uses ESD (most) will automatically get routed through PulseAudio without knowing.
Pulse audio then allows some very cool new features, which has been holding the audio side of linux back for a long time.
For example, you can: (and I must mention, VERY easily)
- Control each program’s sound output (volume / route) individually
- Move audio to a different output card without having to stop / re-open the application.
- Duplicate audio out of numerous soundcards
- Even send a particular audio stream to another machine running pulse audio on your network with two clicks of a mouse.
All in all, very impressive. Ubuntu uses PulseAudio as default in 8.04, so not much to do on the setup side, you will however, want to apt-get ‘paman’ ‘paprefs’ ‘pavucontrol’ and ‘pavumeter’:
sudo apt-get install paman paprefs pavucontrol pavumeter
This will give you some decent gui’s to control these pulseaudio advance features (like re-routing audio streams and controlling volume levels per application).
(Before the ‘ewww… GUI’s’ argument starts.. this is meant to be a DESKTOP system remember!)
Anyway.. does it work… Damn right it does, here is a screenshot of pulseaudio instantly detecting three different audio streams and what applications they are from, and letting me control the volumes of each independently.
(click for larger image)
Next task on the list is moving audio streams from one desktop to another on the same network, the pulseaudio servers can be setup to detect each other in paprefs.. I doubt this is going to take very long or be very hard! Rock on!
EDIT: plugged USB headset in, right-clicked an audio stream in pavucontrol, and clicked the USB soundcard. Instantly audio came to my headphone and not a bean to the speakers. Then I tried ‘simultanious output’ and this worked perfectly too, allowing volume control over the master streams and each substream (one too each output device)
EDIT2: Installed paprefs and pavucontrol on laptop (also running ubuntu 8.04) (Still one of the beta builds… and it’s fixed my laptops suspend to RAM too!!) and ticked ‘make devices network descoverable’ in paprefs…. I now have a movie on my desktop playing through my laptop speakers… and a IP radio station on my laptop playing through my desktop..
No Typing ip addresses, no specifying soundcard port numbers for the sound daemon.. just works!
I’m a *little* paranoid when it comes to net security, so I have my own subnet.. so in this case i’m happy for the sound server to be open.. but looks like it supports auth too!
This is seriously good stuff!