From Fedora Project Wiki
(Change 'best effort' to 'best try' for legal reasons. - See spot for details.)
 
(23 intermediate revisions by 2 users not shown)
Line 12: Line 12:
== Current status ==
== Current status ==
* Targeted release: [[Releases/12 | Fedora 12]]  
* Targeted release: [[Releases/12 | Fedora 12]]  
* Last updated: 2009-06-19
* Last updated: 2009-09-24
* Percentage of completion: 50%
* 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
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


Support for fading (ie front/back balance in >2 channel setups) has been committed upstream (see http://bugzilla.gnome.org/show_bug.cgi?id=568936)
Fading control (ie front/back balance in >2 channel setups) is available in rawhide.


The UI for switching profiles is being discussed in bug http://bugzilla.gnome.org/show_bug.cgi?id=572217
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 ==
== Detailed Description ==
Line 26: Line 30:


* 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.
* 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 effort at figuring this out itself.
* 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.
* 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.
* Volume control problems. In many cases, these problems can be solved by populating the alsa device database with suitable settings.
Line 37: Line 41:


== How To Test ==
== 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.  
To test fade control, you need an audio setup that supports surround sound.  
# Play some audio, e.g. in rhythmbox
# Play some audio, e.g. in rhythmbox
Line 47: Line 53:
# Check that the fade slider is not enabled
# Check that the fade slider is not enabled


To test profiles: TBD
To test profiles, you need one or more sound devices that support multiple profiles.
# Open the hardware tab of gnome-volume-control
# Select the sound device that you want to test
# When the device is selected, a combobox with available profiles for this device will appear below the list of devices
# 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.
# The last selected device and profile should be remembered across logouts/reboots


To test input switching: TBD
To test output switching:
# Select a sound device that has multiple outputs (such as speakers and headphones)
# Switch to the output tab of gnome-volume-control
# Verify that changing the selected output in the "Connector" control has the desired effect
 
To test input switching:
# Select a sound device that has multiple inputs (such as internal microphone and line-in)
# Switch to the input tab of gnome-volume-control
# Verify that changing the selected input in the "Connector" control has the desired effect


== User Experience ==
== 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.  
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:
 
[[File:HardwareTab.png]]
 
Here is how input switching works:
 
[[File:InputSwitching.png]]


== Dependencies ==
== Dependencies ==
Line 59: Line 86:
== Contingency Plan ==
== 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).
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
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.
for that.
The additions to the alsa database are incremental in nature.


== Documentation ==
== Documentation ==
* '''FIXME''': None yet.
* '''FIXME''' None yet.


== Release Notes ==
== Release Notes ==
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/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.
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
* TBD.


== Comments and Discussion ==
== Comments and Discussion ==
* See [[Talk:Features/VolumeControlContinued]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
* See [[Talk:Features/VolumeControlContinued]]   
 


[[Category:FeatureReadyForWrangler]]
[[Category:FeatureAcceptedF12]]
<!-- When your feature page is completed and ready for review -->
<!-- When your feature page is completed and ready for review -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->

Latest revision as of 14:17, 20 October 2011

Feature Name

Volume Control

Summary

Make volume control versatile enough to handle most common uses.

Owner

  • 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:

HardwareTab.png

Here is how input switching works:

InputSwitching.png

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