Created: 2006-06-19 by ScottBalneaves
Packages affected: ltsp-client
Network sound is a difficult problem. We've used esd for the longest time, because it sucked the least. Now that GStreamer .10, and Pulse audio are here, we need to fix things properly, once and for all.
As thin client computing becomes more and more prevalent, users will want a richer thin client sound experience, including full and transparent mixer support, and mic inputs for voip or teaching applications. Multicast sound would also be nice for teaching applications.
Danni is a teacher in a lab class. For her "Media and Internet" class, she wants her students to be able to create full multimedia presentations in OpenOffice.org Impress, with recorded sound clips from the students, who are all equiped with microphone/headsets. The students simply click on the "Sound Recorder" program under Applications->Sound and Video, adjust their mixer settings for the mic, and speak as they always would, just like they were on a "Fat" client.
- Hans is running a German language class. He has some kind of multi-cast audio server, that allows him to play language tapes. These are multicast out across the network seamlessly, so that the server doesn't need to send the audio stream individually to each of the students. As the users sit at their thin clients, they can all hear the language tape being played.
Scott's a little hard of hearing in one ear, and as a result, he needs to have his right channel on his headset set about 50% higher than the left ear. He's on a thin client listening to his "Pink Floyd" OGG's in RhythmBox. He can pop open the mixer app, and set the left and right volume normally, without having to mess about with his lts.conf file.
Removal of esd, and substitute Pulse audio.
Things that need to "just work":
- Volume control/mixer
- Handled by GStreamer, Pulse understands mixer settings.
- Handled by GStreamer, Pulse can deal with latency issues.
- Flash 9 will speak ALSA, the Pulse audio libs can plug into ALSA, and look like a virtual sound card.
- Sound recording apps, such as Gnome Sound Recorder, or Ekiga
- Either handled by GStreamer, or ALSA
- Cool new sound app, great for music classes. Speaks GStreamer.
By moving to Pulse, everything desired by the developers will work.
- Pulse audio packages will need to be created. Currently in the Debian unstable repository.
- Make sure we create a sane Pulse config for the thin client, handling input, output, and mixer controls.
- At this time, we'll handle the first sound device we find.
- Pulse uses a XProperty on the root window for authentication, make sure all of this works properly.
- gst-pulse packages will need to be created, and integrated into Ubuntu-desktop: see Gnome 2.18 below.
- phonon-gstreamer packages will need to be created for KDE 4.
PulseAudio provides compatibility for OSS, ALSA, EsoundD, Jack with the potential to support NASD, aRts, Phonon, etc in the future.
OSS applications need wrappers to use "padsp" to redirect to PulseAudio similar to "esddsp" but with greater stability.
MrMoo on #ltsp has already done most of the heavy lifting: http://developer.novell.com/wiki/index.php/Edgy/HOWTO:_PulseAudio
MarioDebian is using PulseAudio for thin clients networks (TCOS) from Aug 2006: (spa)PulseAudio working on TCOS (thin client operating system) TOS info Pulseaudio hook for initramfs-tools-tcos (spa)Flash 9, Alsa and PulseAudio don't work
- Upstream Gnome 2.18 integration: separating main audio and conferencing devices.
- Phonon integration with KDE 4: KDE 4 general availability.
- Phonon-GStreamer integration (Google SoC 2006 project).
- Feisty+1: udev/dbus/hal magic to handle multiple sound cards.