Features/KDE PulseAudio Integration

= 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: Users not using PulseAudio are not affected by any of these changes.
 * Phonon detects PulseAudio and no longer shows non-PulseAudio devices when PulseAudio is running.
 * PulseAudio includes a new  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  to force its use even if PulseAudio is detected.

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  (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.) All this should pass without crashes (obviously), error messages or annoying notification popups.
 * 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
 * 13) verify that you get the traditional ALSA mixer (all the hardware controls)
 * 14) quit KMix (completely, i.e. File / Quit)
 * 15) run just   (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)

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  (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  environment variable.

Documentation
Phonon:
 * 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/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/

KMix:
 * http://colin.guthr.ie/2010/01/mix-it-up/
 * http://colin.guthr.ie/2010/01/mix-it-some-more/

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  in a Konsole terminal. To make this change permanent, add   to your   file.

Comments and Discussion

 * See Talk:Features/KDE PulseAudio Integration