For a long time, PulseAudio was the go-to sound server for Linux, reliably catering to the multimedia requirements of countless users. However, the landscape is evolving.
In recent years, PipeWire, a more versatile and modern audio framework, has emerged as the preferred choice, now widely adopted as the default by most Linux distributions.
This shift has significantly slowed down the development of PulseAudio, evidenced by the considerable gap of over a year and a half since the release of its last version, 16.
It should be no surprise that development on PulseAudio has slowed down considerably. We expect significant new work to continue in PipeWire, WirePlumber, and related projects.
Of course, the project will continue to be maintained. However, there will be a notable slowdown in its pace.
We’re still around if any issues come up. Since libpulse is still the recommended API for most audio applications, it continues to be supported. There is some continuing work on Pavucontrol that we will also try to shepherd in. Our resources continue to be limited, so contributors’ patience is greatly appreciated.
But despite the slower development trajectory, PulseAudio 17.0’s release is here, so let’s check out what’s changed.
What’s New in PulseAudio 17.0
For end users, PulseAudio 17.0 introduces significant updates to ALSA UCM-based setups, changing how its configuration maps to PulseAudio profiles and ports.
This modification means the elimination of combined ports for non-conflicting devices, resulting in a more streamlined and conflict-free audio experience.
Additionally, in setups where multiple inputs or outputs can run concurrently and independently, users will now see more than one input/output sink available, providing greater flexibility in audio management.
A significant feature in this update is introducing a battery level indication for Bluetooth devices, allowing a PulseAudio host to share its battery level with connected Bluetooth devices.
This is particularly useful in scenarios where, for example, a PulseAudio-based device is connected to a car’s audio system, enabling the car to display the device’s battery level.
Furthermore, for Bluetooth audio enthusiasts, the support for the FastStream codec is a welcome addition. FastStream, known for providing higher-quality bidirectional audio, is now supported, enhancing the audio experience for devices equipped with this codec.
For application developers, the update includes an increase in the maximum supported sample rate, with PA_RATE_MAX now reaching 768kHz, broadening the scope for high-resolution audio applications.
Lastly, packagers will note the updated dependency on the webrtc-audio-processing library, now at version 1.3. This change brings improvements in echo cancellation and a higher tolerance for drift, though it comes with removing beamforming support, a feature dropped in the upstream library.