Make volume control intuitive and easy to use.
- Targeted release: Fedora 11
- Last updated: 2008-11-10
- Percentage of completion: 50%
A lot of the necessary infrastructure work in PulseAudio has been done. E.g. it is possible to associate metadata with audio streams, and classify them according to roles (event, music, phone, ...).
At the Sound BoF at GUADEC this year, the plans for this feature were discussed in some detail: http://mail.gnome.org/archives/gnome-multimedia/2008-July/msg00001.html
Rawhide now contains changes made upstream to use libcanberra in the control-center for sound events configuration, and thus support the Freedesktop sound theme specification. This means that there should not be any hard requirements on esound anywhere in the stack, except in deprecated functions in some libraries.
A rewrite/merger of the sound capplet and volume control has begun upstream. The mixer applet has been turned into a status icon.
With the use of PulseAudio by default, it makes sense to no longer expose the unintuitive plethora of volume controls and channels that alsa exports, and which is currently reflected 1-1 in the gnome volume control tools (gnome-volume-control and mixer applet). PulseAudio already ships with a volume control app, pavucontrol, that is packaged for Fedora (but not installed by default).
- Graphical mixers (such as the volume applet, the mixer, and the multimedia keys handler) should be restricted to modifying PulseAudio's default output's mixer (which could be aggregated outputs).
- The control-center's sound setup tools should react to hardware hotplug (Bluetooth headsets/headphones, USB sound cards and webcams with microphones).
- The control-center should also allow basic microphone checking
- The control-center should allow tweaking of multi-inputs/outputs policies (play music to all devices, play only to headphones, etc.)
- The mixer applet should be turned into a status icon, to avoid a number of problems with the applet (may not have one, may have more than one, may have one even if there is no hardware,...)
Benefit to Fedora
The multimedia experience of Fedora users is improved by an easily understandable and much more flexible volume control model.
Affected modules are:
- kernel (ALSA) which should trim the number of user visible hardware channels
- PulseAudio to allow supporting features in the front-ends
- gst-plugins-pulse should support setting application specific volumes (see Bug #448924)
- gnome-volume-control will need application audio tracks support
- gnome-settings-daemon might need changes
- gnome-applets will loose the mixer applet. It will be replaced by a NullApplet, to make existing panel configurations work without warnings.
- gnome-control-center changes to tie in with the necessary configuration options
- Media apps (totem, rhythmbox,...) should use the gstreamer playbin2 element to get per-stream volume support for their private volume controls
How To Test and User Experience
- Michael is playing music using his computer's sound card/builtin speakers. But he wants more oompf, and plugs in USB speakers. The same sound starts blurting out of both sets of speakers
- Michael realises that his builtin speakers are too teeny anyway, so wants to only play sound effects at a low volume on them, and keep on playing music through the bigger USB speakers. If the USB speakers were to come unplugged, the sound would go back to the internal speakers. Replugging them would get them their music back.
- Tobias launches an audio chat (via Ekiga or Skype) with his agent, using the builtin microphone and speakers on his laptop, but wants more privacy. He switches on his Bluetooth headset, and automatically gets sound input and output to that device for his chat. (Note, he could be plugging in a USB headset).
- Maeby is playing loud music on her headphones at night. When she tries to grab a banana, the headphone jack gets unplugged. The music automatically pauses so as to avoid making a lot of noise through the normal speakers. (Note that a similar problem could happen with USB headphones, or a Bluetooth headset running out of battery).
- George-Michael's music is covered by sound effects. He likes the sound effects, but they're just too loud compared to his music. He reduces the sound effects' volume, without it affecting his music.
Notes on the mockups:
- the sound level bar should be a better widget than a progress bar
- sound effects selection should probably be in a treeview
- the sound playback output device would be disabled if the selected output for audio chat also has an output (such as a USB or Bluetooth headset, which would combine microphone and headphones). Not certain whether the selection would even be necessary.
- all the device selection drop-downs would be disabled if only one output or input exists
- related screenshots for [Windows Vista] (thanks Bryan!), and [MacOS X]
- Additional mockups by Bryan Clark for the volume control with [one device] and [multiple devices]
- See also current sound events configuration [in this blog entry].
- PulseAudio changes to provide necessary metadata on streams. This is all present in F10
Front-end changes would be backed out.
The Volume Control and Sound Preferences manuals have to be rewritten. This will have to wait until the new UI is in place.
The volume control and sound user interfaces have been rewritten to make them more intuitive and easy to use. As a consequence, there is no volume control applet anymore. If your panel is configured to contain a volume control applet, it will be silently ignored. Instead, a volume control status icon will automatically appear in the notification area when appropriate.