Features/VolumeControlContinued

= Feature Name = Volume Control

Summary
Make volume control versatile enough to handle most common uses.

Owner

 * Name: Lennart Poettering,  Bastien Nocera


 * Email: lpoetter@redhat.com, bnocera@redhat.com

Current status

 * Targeted release: Fedora 12
 * Last updated: 2009-09-24
 * Percentage of completion: 100%

The necessary infrastructure for profile switching is available in PulseAudio, and can be tested with pavucontrol. Upstream PA has gained an additional concept of 'ports' and a way to describe the alsa setup in a way that PA can make sense of, see https://tango.0pointer.de/pipermail/pulseaudio-discuss/2009-June/004229.html

Fading control (ie front/back balance in >2 channel setups) is available in rawhide.

The UI for device selection and profile switching is available in rawhide.

The UI for input switching (port selection) is also available in rawhide.

The speaker setup dialog has been punted to the next release.

Detailed Description
In the run-up to Fedora 11, a number of shortcomings with the Features/VolumeControl feature were identified and lead to some heated discussions. This is a follow-up feature to address these points in Fedora 12. In particular, the following things will be addressed:


 * Profile support. Profiles are PulseAudios way of grouping alsa devices that can be used together in meaningful ways. Typical profiles are 'Output Analog Stereo + Input Analog Stereo' or 'Output Digital Stereo (IEC958)'. Pavucontrol already supports profile selection in F11.
 * Input switching. People need a way to switch between internal microphone, external microphone, line in, etc, as source for recording audio. Since alsa does not offer good support for this, PulseAudio will have to make a best try at figuring this out itself.
 * Fade control. Similar to the existing balance slider, but for front/back.
 * Volume control problems. In many cases, these problems can be solved by populating the alsa device database with suitable settings.

Benefit to Fedora
Fedora gains a volume control that 'just works' in most cases, which should greatly reduce the need to fall back to raw Alsa controls.

Scope
This feature requires changes to PulseAudio (input switching), gnome-media (UI for profiles, input switching and fading) and alsa (database entries for cards/drivers).

How To Test
The GNOME sound properties dialog that is being tested here (/usr/bin/gnome-volume-control) is available in the menus under System → Preferences → Sound.

To test fade control, you need an audio setup that supports surround sound.
 * 1) Play some audio, e.g. in rhythmbox
 * 2) Open the output tab of gnome-volume-control
 * 3) Check that the fade slider is visible and enabled
 * 4) Move the fade slider, verify that the sound is changed as indicated by the labels
 * 5) Check that balance and fade interact as expected
 * 6) Switch to an audio setup that does not support surround sound (either by using different hardware or by selecting a different profile)
 * 7) Open the output tab of gnome-volume-control
 * 8) Check that the fade slider is not enabled

To test profiles, you need one or more sound devices that support multiple profiles.
 * 1) Open the hardware tab of gnome-volume-control
 * 2) Select the sound device that you want to test
 * 3) When the device is selected, a combobox with available profiles for this device will appear below the list of devices
 * 4) Select various profiles from the list and verify that the changes are reflected on the the input and output tabs, as well as respected by applications that are playing sound.
 * 5) The last selected device and profile should be remembered across logouts/reboots

To test output switching:
 * 1) Select a sound device that has multiple outputs (such as speakers and headphones)
 * 2) Switch to the output tab of gnome-volume-control
 * 3) Verify that changing the selected output in the "Connector" control has the desired effect

To test input switching:
 * 1) Select a sound device that has multiple inputs (such as internal microphone and line-in)
 * 2) Switch to the input tab of gnome-volume-control
 * 3) Verify that changing the selected input in the "Connector" control has the desired effect

User Experience
The changes to the user experience should be small, compared to the Fedora 11 volume control. The Input and Output tabs in gnome-volume-control will gain a way to select profiles and switch input devices, and the Output tab will have a Fade slider below the Balance slider, if the selected output device supports it.

Here is how the new hardware tab looks:



Here is how input switching works:



Dependencies
Updates to the alsa database need to land in the alsa packages.

Contingency Plan
The listed parts of this feature can be deployed partially, if some are not completed in time (e.g. allow input switching, but leave out fade control). If profile support is not completed in time, we can just fall back to pavucontrol for that. The additions to the alsa database are incremental in nature.

Documentation

 * FIXME None yet.

Release Notes
The GNOME sound properties dialog (in the menus under System → Preferences → Sound) has been enhanced to allow control of multiple sound devices and their profiles. It has also gained a simple way to select the input source when recording.

Comments and Discussion

 * See Talk:Features/VolumeControlContinued