AudioExperience

  • Launchpad Entry: desktop-karmic-audio-experience

  • Created: 2009-06-03

  • Contributors: Luke Yelavich, Daniel Chen

  • Packages affected: alsa-driver, alsa-lib, alsa-utils, pulseaudio, gnome-media, libao, openal-soft, libsdl1.2, portaudio19

Summary

Improve the audio stability and experience for users in the Ubuntu Karmic release

Release Note

Ubuntu's audio management and playback is now more unified, using pulseaudio at the core, together with new configuratino tools to make use of a wider array of audio configurations.

Rationale

The current audio experience and stability in Ubuntu varies widely, depending on sound hardware, and applications used. PulseAudio is not integrated quite as well as it could be, and applications use a mix and match of PulseAudio, ALSA, or even OSS. This specification will discuss all the inconsistancies, and whether they can be fixed in the Ubuntu Karmic time frame.

User stories

  • Jane recently bought a set of USB speakers to use with her notebook. She wants to be able to play her music through these speakers, and control the audio volume.
  • Ben wants to use his bluetooth headset to talk via VoIP using Ekiga. He wants his music to stop playing when he receives a call. He wants to hear the call sound via his computer's sound card.
  • Erick wants to play a game with full 5.1 surround sound. He wants to be able to connect his computer to his optical equipt sound system. He also wants to be able to watch videos with the same sound experience.

Implementation

There are several tasks that need to be done to make the audio experience the best it can be:

  • At the userspace and kernel sync points in the karmic cycle, we need to check and double check that everything is in sync for the audio stack, alsa, pulse, etc.
  • At feature freeze time, we need to assess where the stack is, what is going upstream, and whether we should push for newer versions/newer patches to be included from upstream to provide better stability and experience.

UI Changes

  • The volume control applet that interfaces with PulseAudio at the backend needs to be the default volume applet in GNOME.

  • The volume control applet needs to allow the adjustment of volume for the sound hardware, as well as individual applications. The applet also needs to let users choose which sound hardware to use for different applications.
  • The volume control applet needs to allow users to choose what speaker configuration they want to use, whether it be stereo, 4 speaker, 5.1 speaker, etc. This is due to sound hardware not being able to detect whether a sound system with more than 2 speakers is connected.

Code Changes

  • Packages that provide audio output in Ubuntu all need to be checked, to ensure they can work with Pulseaudio somehow, whether it be native pulseaudio support, or via the pulseaudio alsa redirection plugin. This includes checking that the safe subset of the ALSA API (http://0pointer.de/blog/projects/guide-to-sound-apis.html) is used. Packages that are affected are:

    • libao
    • openal-soft
    • libsdl1.2
    • portaudio19
    • flashplugin-nonfree (While we can't check the parts of the ALSA API used, we can check that it still works via the alsa pulseaudio plugin.)
    • There may be more depending on user feedback/demand.
  • Suspend and resuming with USB and bluetooth audio devices needs to be either fixed or implemented. In its current state, audio resumes playing, but only through the computer's internal sound card.
  • Get user help to populate a database of suitable mixer settings for their sound hardware. The best way to do this would be to write a script to collect their mixer data based on what they have set as suitable default values, and submit this data to a bug report, which can then be harvisted to populate the db.
  • Migrate pulseaudio/alsa apport hooks to use the alsa-info script, as the script gives very comprehensive feedback on a user's system.

Migration

  • The deletion of ~/.asoundrc and ~/.asoundrc.asoundconf needs to be done using interractive upgrade hooks, https://wiki.ubuntu.com/InteractiveUpgradeHooks

  • We shouldn't touch /etc/asound.conf, but alert the user that its there, incase the file contains important configuration definitions they wish to keep. This file cannot be moved out of the way based on its contents since the format of the file can be rather complex.

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.

Unresolved issues

  • ALSA does not yet support more than 2 channels of audio over HDMI, even though HDMI is capable of 7.1 uncompressed PCM, so unless HDMI support is improved in the next couple of months, the only 5.1/7.1 speaker output support will remain optical and coaxial outputs.

BoF agenda and discussion


CategorySpec

References

DesktopTeam/Specs/Karmic/AudioExperience (last edited 2009-06-19 04:47:47 by ppp121-44-20-186)