Features/KDE PulseAudio Integration

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
(Fill in some more sections.)
m (How To Test: Clarify the "PulseAudio tabs" part.)
 
(6 intermediate revisions by 2 users not shown)
Line 17: Line 17:
  
 
== Detailed Description ==
 
== Detailed Description ==
<!-- Expand on the summary, if appropriate. A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
+
The following new PulseAudio integration features (developed by Colin Guthrie from Mandriva) are available in Fedora 13:
 +
* Phonon detects PulseAudio and no longer shows non-PulseAudio devices when PulseAudio is running.
 +
* PulseAudio includes a new <code>module-device-manager</code> which allows Phonon to manage PulseAudio devices.
 +
* Using the above, Phonon allows setting device priorities for the devices reachable through PulseAudio.
 +
* KMix now shows PulseAudio volumes, including per-application volumes, and allows moving applications between devices.
 +
* The traditional ALSA backend for KMix is still available, use <code>export KMIX_PULSEAUDIO_DISABLE=1</code> to force its use even if PulseAudio is detected.
 +
Users not using PulseAudio are not affected by any of these changes.
 +
 
 +
See the blog links in the Documentation section for more information.
  
 
== Benefit to Fedora ==
 
== Benefit to Fedora ==
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Fedora become a better distribution or project because of this feature?-->
+
The popular KDE desktop now integrates better with the default sound solution in Fedora, allowing full use of its capabilities.
  
 
== Scope ==
 
== Scope ==
<!-- What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
+
* upgrade Phonon to at least 4.3.80 (done)
 +
* upgrade kdebase-runtime to at least 4.3.80 or backport the Phonon KCM changes (done (upgraded))
 +
* upgrade PulseAudio to at least 0.9.21 and enable <code>module-device-manager</code> (done)
 +
* backport the KMix PulseAudio backend, which is targeted upstream for 4.5 (done)
  
 
== How To Test ==
 
== How To Test ==
<!-- This does not need to be a full-fledged document.  Describe the dimensions of tests that this feature is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them. The more specific you can be, the better the community testing can be.  
+
No special hardware is needed, though there should be at least one sound device reachable through PulseAudio. (You can test with a dummy sink, but that won't be as effective for testing as a real one.)
 
+
# start the KDE Live CD
Remember that you are writing this how to for interested testers to use to check out your feature - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your feature.
+
# open KMix (click on the speaker icon in the panel, then on the Mixer button)
 
+
# verify that you see the PulseAudio tabs (''Playback Devices'', ''Capture Devices'', ''Playback Streams'' and ''Capture Streams'')
A good "how to test" should answer these four questions:
+
# start Dragon Player (or another Phonon-based application)
 
+
# play something with it
0. What special hardware / data / etc. is needed (if any)?
+
# verify that the application shows up in KMix (this also tests Phonon)
1. How do I prepare my system to test this feature? What packages
+
# verify that it doesn't say "ALSA plugin" (Phonon should use PulseAudio natively)
need to be installed, config files edited, etc.?
+
# verify that you don't get annoying "device 'Foo' unreachable, falling back to 'Bar'" notification popups from Phonon
2. What specific actions do I perform to check that the feature is
+
# verify that you actually hear the sound
working like it's supposed to?
+
# quit KMix (completely, i.e. File / Quit)
3. What are the expected results of those actions?
+
# open a Konsole
-->
+
# run <code>KMIX_PULSEAUDIO_DISABLE=1 kmix</code>
 +
# verify that you get the traditional ALSA mixer (all the hardware controls)
 +
# quit KMix (completely, i.e. File / Quit)
 +
# run just <code>kmix</code> (or start it from the menu)
 +
# verify that you get the PulseAudio KMix back
 +
# open the Multimedia tab in System Settings (i.e. the Phonon KCM)
 +
# verify that you see your sound devices listed (you should see the hardware devices which are reachable through PulseAudio, there should not be a "PulseAudio" or "PulseAudio Sound Server" device)
 +
All this should pass without crashes (obviously), error messages or annoying notification popups.
  
 
== User Experience ==
 
== User Experience ==
<!-- If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice. -->
+
KDE users are now able to set priorities for hardware devices while using PulseAudio and to control application volumes and devices used by individual applications.
  
 
== Dependencies ==
 
== Dependencies ==
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
+
Requirements this feature depends on:
 +
* [[Features/KDE44|KDE 4.4]] contains the Phonon improvements and is the base for the KMix backports (already in Rawhide)
 +
* PulseAudio 0.9.21 adds the <code>module-device-manager</code> (already in Rawhide)
 +
 
 +
Nothing else depends on this feature.
  
 
== Contingency Plan ==
 
== Contingency Plan ==
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. -->
+
The feature is already complete, but it is still technically possible to revert/disable it if we don't judge it good enough. The Phonon and KMix parts can be reverted separately. It is also possible to disable KMix PulseAudio integration by default while still shipping it by setting the <code>KMIX_PULSEAUDIO_DISABLE</code> environment variable.
  
 
== Documentation ==
 
== Documentation ==
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
+
Phonon:
 +
* [http://colin.guthr.ie/2009/10/kde-plus-pulseaudio-does-not-equal-sucks/ http://colin.guthr.ie/2009/10/kde-plus-pulseaudio-does-not-equal-sucks/]
 +
* [http://colin.guthr.ie/2009/10/update-on-kdepulseaudio/ http://colin.guthr.ie/2009/10/update-on-kdepulseaudio/]
 +
* [http://colin.guthr.ie/2009/10/so-how-does-the-kde-pulseaudio-support-work-anyway/ http://colin.guthr.ie/2009/10/so-how-does-the-kde-pulseaudio-support-work-anyway/]
 
* [http://colin.guthr.ie/2009/11/pulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4/ http://colin.guthr.ie/2009/11/pulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4/]
 
* [http://colin.guthr.ie/2009/11/pulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4/ http://colin.guthr.ie/2009/11/pulseaudio-phonon-support-now-in-kde-trunk-and-heading-towards-4-4/]
 +
 +
KMix:
 +
* [http://colin.guthr.ie/2010/01/mix-it-up/ http://colin.guthr.ie/2010/01/mix-it-up/]
 +
* [http://colin.guthr.ie/2010/01/mix-it-some-more/ http://colin.guthr.ie/2010/01/mix-it-some-more/]
  
 
== 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/ -->
+
* Fedora 13 features improved integration of the KDE desktop and applications with PulseAudio. Phonon, the KDE sound framework, now detects PulseAudio and allows you to configure the priorities of devices while still using PulseAudio (where before it would offer one PulseAudio device and several options for direct hardware access which do not work properly when PulseAudio is running). KMix, the KDE volume control application, now also detects PulseAudio and allows you to set application volumes and move applications between hardware devices when PulseAudio is running.
<!-- 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. -->
+
* Users of KMix will notice that most of their hardware sound controls are no longer shown in the default (PulseAudio-based) interface. To get access to these controls, close KMix (use right-click / quit) and restart it by running <code>KMIX_PULSEAUDIO_DISABLE=1 kmix</code> in a Konsole terminal. To make this change permanent, add <code>export KMIX_PULSEAUDIO_DISABLE=1</code> to your <code>~/.bashrc</code> file.
*
+
  
 
== Comments and Discussion ==
 
== Comments and Discussion ==
* See [[Talk:Features/YourFeatureName]] <!-- 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/KDE PulseAudio Integration]]
 
+
  
[[Category:FeaturePageIncomplete]]
+
[[Category:FeatureAcceptedF13]]
<!-- When your feature page is completed and ready for review -->
+
<!-- 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-->
+
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->
+

Latest revision as of 23:49, 30 May 2010

Contents

[edit] KDE PulseAudio Integration

[edit] Summary

Fedora 13 features improved PulseAudio integration in KDE's Phonon and KMix.

[edit] Owner

  • KDE SIG
  • Email: Kevin@tigcc.ticalc.org, rdieter@math.unl.edu
  • IRC: #fedora-kde

[edit] Current status

  • Targeted release: Fedora 13
  • Last updated: 2010-01-21
  • Percentage of completion: 100%

Phonon PulseAudio integration is complete and available both in Rawhide and F12 updates. KMix PulseAudio integration is now in Rawhide and expected to be feature-complete.

[edit] Detailed Description

The following new PulseAudio integration features (developed by Colin Guthrie from Mandriva) are available in Fedora 13:

  • Phonon detects PulseAudio and no longer shows non-PulseAudio devices when PulseAudio is running.
  • PulseAudio includes a new module-device-manager which allows Phonon to manage PulseAudio devices.
  • Using the above, Phonon allows setting device priorities for the devices reachable through PulseAudio.
  • KMix now shows PulseAudio volumes, including per-application volumes, and allows moving applications between devices.
  • The traditional ALSA backend for KMix is still available, use export KMIX_PULSEAUDIO_DISABLE=1 to force its use even if PulseAudio is detected.

Users not using PulseAudio are not affected by any of these changes.

See the blog links in the Documentation section for more information.

[edit] Benefit to Fedora

The popular KDE desktop now integrates better with the default sound solution in Fedora, allowing full use of its capabilities.

[edit] Scope

  • upgrade Phonon to at least 4.3.80 (done)
  • upgrade kdebase-runtime to at least 4.3.80 or backport the Phonon KCM changes (done (upgraded))
  • upgrade PulseAudio to at least 0.9.21 and enable module-device-manager (done)
  • backport the KMix PulseAudio backend, which is targeted upstream for 4.5 (done)

[edit] How To Test

No special hardware is needed, though there should be at least one sound device reachable through PulseAudio. (You can test with a dummy sink, but that won't be as effective for testing as a real one.)

  1. start the KDE Live CD
  2. open KMix (click on the speaker icon in the panel, then on the Mixer button)
  3. verify that you see the PulseAudio tabs (Playback Devices, Capture Devices, Playback Streams and Capture Streams)
  4. start Dragon Player (or another Phonon-based application)
  5. play something with it
  6. verify that the application shows up in KMix (this also tests Phonon)
  7. verify that it doesn't say "ALSA plugin" (Phonon should use PulseAudio natively)
  8. verify that you don't get annoying "device 'Foo' unreachable, falling back to 'Bar'" notification popups from Phonon
  9. verify that you actually hear the sound
  10. quit KMix (completely, i.e. File / Quit)
  11. open a Konsole
  12. run KMIX_PULSEAUDIO_DISABLE=1 kmix
  13. verify that you get the traditional ALSA mixer (all the hardware controls)
  14. quit KMix (completely, i.e. File / Quit)
  15. run just kmix (or start it from the menu)
  16. verify that you get the PulseAudio KMix back
  17. open the Multimedia tab in System Settings (i.e. the Phonon KCM)
  18. verify that you see your sound devices listed (you should see the hardware devices which are reachable through PulseAudio, there should not be a "PulseAudio" or "PulseAudio Sound Server" device)

All this should pass without crashes (obviously), error messages or annoying notification popups.

[edit] User Experience

KDE users are now able to set priorities for hardware devices while using PulseAudio and to control application volumes and devices used by individual applications.

[edit] Dependencies

Requirements this feature depends on:

  • KDE 4.4 contains the Phonon improvements and is the base for the KMix backports (already in Rawhide)
  • PulseAudio 0.9.21 adds the module-device-manager (already in Rawhide)

Nothing else depends on this feature.

[edit] Contingency Plan

The feature is already complete, but it is still technically possible to revert/disable it if we don't judge it good enough. The Phonon and KMix parts can be reverted separately. It is also possible to disable KMix PulseAudio integration by default while still shipping it by setting the KMIX_PULSEAUDIO_DISABLE environment variable.

[edit] Documentation

Phonon:

KMix:

[edit] Release Notes

  • Fedora 13 features improved integration of the KDE desktop and applications with PulseAudio. Phonon, the KDE sound framework, now detects PulseAudio and allows you to configure the priorities of devices while still using PulseAudio (where before it would offer one PulseAudio device and several options for direct hardware access which do not work properly when PulseAudio is running). KMix, the KDE volume control application, now also detects PulseAudio and allows you to set application volumes and move applications between hardware devices when PulseAudio is running.
  • Users of KMix will notice that most of their hardware sound controls are no longer shown in the default (PulseAudio-based) interface. To get access to these controls, close KMix (use right-click / quit) and restart it by running KMIX_PULSEAUDIO_DISABLE=1 kmix in a Konsole terminal. To make this change permanent, add export KMIX_PULSEAUDIO_DISABLE=1 to your ~/.bashrc file.

[edit] Comments and Discussion