Pipewire: free multimedia framework matures to version 1.0

Pipewire is making people sit up and take notice: After the progress of the last few months, main developer Wim Taymans gave the multimedia framework version number 1.0. This is no small jump, given the previous version 0.3.85. In Tayman’s opinion, as the key developer behind the project, Pipewire has reached the necessary maturity in three areas: As a replacement for the JACK Audio interface, which is mainly used in professional music production, Pipewire was able to significantly reduce latencies. Pipewire has now also mastered the standardized stress test for JACK, which required further adjustments to memory management and the scheduler. Two other missing pieces of the puzzle were support for the netJACK2 protocol to use the audio interface over a network, and a Firewire audio driver.

Advertisement

On common Linux desktops, Pipewire has succeeded Pulseaudio and now exactly replicates its characteristics. Pipewire also supplies other codecs such as mSBC and the new Bluetooth codec LC3. According to its developer, compatibility with Pulseaudio was a lot more difficult than that with JACK Audio: According to Wim Taymans, due to its less stringent structure, Pulseaudio often shows idiosyncratic behavior in terms of buffer sizes, timeouts and latencies, which require many small adjustments in the Pipewire code to make it a fully compatible drop-in replacement. The audio applications don’t care whether Pipewire or the older Pulseaudio acts as a sound server on the Linux desktop.

The third area with significant progress is the handling of video streams, for which Pipewire was originally created in 2015. A lot of work went into connecting cameras Stack by Libcamera. For video conferences in the web browser, Firefox received experimental support for webcam access via Pipewire for the first time in version 116 in summer 2023. Video streams are now also routable, just like audio streams before. Control software such as Helvum and qpwgraph, which display a graphical, virtual patchbay, also work with video streams as of Pipewire 1.0.

A new addition is an interface for filters that not only include sound improvement such as echo suppression for microphones, but also chained effects. According to Taymans, with Pipewire 1.0 and its filters it is already possible to add a 3D effect to the sound output via several outputs, as well as to switch on equalizers, delays and reverberations in almost real time without noticeable latencies.

The developers have further plans for the filter chains in the next versions: In the coming Google Summer of Code, the filters will be extended to video streams using Vulkan. In the longer term, the company’s own Pipewire API should also establish itself as a solid and particularly high-performance alternative to the wrappers for Pulseaudio and JACK, which have previously been mainly used by applications.

With Wireplumber, Pipewire has a session manager that uses predefined, event-controlled guidelines to specify which stream is allowed to access certain input and output devices. Audio streams can be given different priorities and therefore permission to interrupt each other. Wireplumber is currently available in version 0.4 and is being developed under the leadership of Collabora and is expected to deliver a revised event system in the soon-to-be-expected version 0.5 that will noticeably improve performance and latencies. Wireplumber is what ultimately makes Pipewire interesting for special applications, such as in-car audio systems. Wireplumber comes from the Automotive Grade Linux (AGL) environment, but is in the Pipewire’s Github repository hiked.

On the Linux desktop, Pipewire is already one of the surprises of recent years, because as a sound server it solves many of the problems of previous audio components: Lower latencies with lower use of system resources are a qualitative improvement, which has allowed Pipewire to arrive comparatively quickly in Linux distributions: Fedora Linux 34 included Pipewire as a replacement for Pulseaudio more than two years ago, Arch Linux, Ubuntu 22.10 and Debian 12 followed after the advantages quickly became evident.

The original developers of Pulseaudio and JACK are also very open to the new project and are not sparing with laurels for Pipewire, which is also the current one Release notes for version 1.0 adorn: Paul David from JACK Audio writes, Pipewire combines the best aspects of both professional and desktop sound servers. Lennart Poettering sees Pipewire as a worthy successor to Pulseaudio, especially since it has a functioning rights system for handling audio and video streams, which is essential under Wayland and for Flatpaks.


(ktn)

To home page

source site