From Fedora Project Wiki

KDE PulseAudio Integration

Summary

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

Owner

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

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.

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.

Benefit to Fedora

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

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)

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.

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.

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.

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.

Documentation

Phonon:

KMix:

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.

Comments and Discussion