Pipewire

In case you haven't heard yet, Pipewire will be replacing PulseAudio and video on linux soon.

It works much better, emulates Pulse and Jack, and uses far less memory.
If on Manjaro, you can try it with
Code:
sudo pacman -S manjaro-pipewire
You will need to remove the older packages when it prompts you...
 
So just an FYI: The latest installation of Manjaro using the package "manjaro-pipewire" works very nicely. The dropped samples on record are gone.
Fedora switched to it a year ago, Ubuntu is switching and using on their beta.
Soon Arch will hopefully follow and it will come to Manjaro by default.
One day, Pulseaudio will be dead.
 
I'm using Pop!_OS 22.04 (Ubuntu based) and it uses Pipewire. Does all Linux distros based on Ubuntu 22.04 or later?
On my cheap Lenovo 330S laptop it actually caused problems with my audio initially that I had to work around using the Jack tool.
 
Last edited by a moderator:
  • Like
Reactions: kodabmx
Great to see that PipeWire will be a LADSPA host via the filter chain module:
https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Filter-Chain

Gstreamer can send and receive data from PipeWire via Gstreamer's pipewiresrc and pipewiresink elements. Looking forward to trying that out!
The lead developer of Pipewire is Wim Taymans, he actually created GStreamer. Support should be very good.

Right now I'm running pipewire instead of pulseaudio on my system and I really like it. The pace of development is impressive and there is just so much cool stuff either already implemented or actively worked on:
As pipewire has compatibility interfaces for ALSA, PulseAudio and JACK applications, every audio application on Linux just works.

I've been interacting with the developers on this issue: "Feature Proposal: Transparent handling of complex audio devices"
https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2210

The idea behind this proposal is that pipewire should be able to abstract away complex audio processing pipelines for multi-way speaker setups.

The issue came up with the new ARM based Apple laptops - they use multiple drivers and expect the operating system to implement the crossover filter. The idea is that pipewire provides, for example, a simple stereo output device to the user, while in the background splitting the signal into multiple bands for multiple drivers, each with their individual FIR or IIR filters.

My hope is that in the not-so-distant future, I can build active speakers around a Pi with a soundcard and a few plate amps, have pipewire do all of the crossover and room correction, and just have my PC discover and use the speakers via wireless network as if it were physically connected to them. The way things are going right now, this may become feasable in the future.

The developers are very friendly, approachable and open to suggestions from the community. I can only encourage everyone here to have a look at the pipewire bug tracker every now and then, maybe there's something you can chime in on. Open source builds on community participation and there seem to be some overlapping interests between the diyaudio linux users and the pipewire community.
 
Last edited:
  • Like
Reactions: kodabmx
@ariendj Thank you for this very useful post dude! There is a lot of enlightening info here.

The only thing I found in the part was when forcing all output to 96kHz/32bit-float, I would get the oddest thing while sampling (recording digital audio from TOSLink in)
Every 2000 samples, it would "drop" one and it's value would be zero. This resulted in clicking/static in the recording. It's been fixed now though, and I encourage anyone using Manjaro (or Arch) to switch to it.
For those on Ubuntu and it's derivatives, You'll get it when you "dist-upgrade" possibly... Otherwise, reinstall the OS.
 
Last edited:
  • Like
Reactions: kodabmx
As a 20+ year Linux user and admin I am happy to see the best product win. Really I do not have any complaints about audio playback on my current Ubuntu box.
Also used Linux as my main audio player for about 20 years too. That mostly had to do with having an 18 month kid. Was time to rip that CD collection to disk.
 
  • Like
Reactions: kodabmx
Up to date packages are available for Ubuntu at
https://launchpad.net/~pipewire-debian/+archive/ubuntu/pipewire-upstream

It boils down to just running ...



... on any recent *buntu or Debian.
Quite nice. If you're on Manjaro, install manjaro-pipewire...
Code:
sudo pacman -Syu && sudo pacman -S manjaro-pipewire
Or if you use yay (why wouldn't you?)
Code:
yay -Syyu --devel && yay -S manjaro-pipewire
if you want to be fancy 🙂
Or just search for pipewire in the graphical package manager.
Also as a PSA:
If you run an Arch based linux, install base-devel if it's not there already. Otherwise you'll wonder why you can't compile anything.
 
As a 20+ year Linux user and admin I am happy to see the best product win.
There was pulseaudio, great on the desktop, decent enough with bluetooth, alright on the network. Horrible with latency, no support for pro audio. And there was JACK, great at low latency, pro audio, yet no support for bluetooth, only one audio device, complicated network setup. Pipewire is the best of both worlds, I think it's the evolution of both schools of thought.
Really I do not have any complaints about audio playback on my current Ubuntu box.
Neither do I. Playback is great, no problem. It's when you start building processing pipelines, things fall apart pretty fast. And I'm not saying that because I prefer other operating systems. I really want Linux to succeed in this space. Before pipewire, the mac would probably have been a better choice (though I can't stomach that company or their products).
Also used Linux as my main audio player for about 20 years too. That mostly had to do with having an 18 month kid. Was time to rip that CD collection to disk.
I hear ya. My 18 month old daughter just told me "That's MY music!" while we listened to some Steely Dan that I had ripped to my NAS back when I had time to do such things. Living the 'Dad Rock' cliché I guess.
 
  • Like
Reactions: kodabmx
A new pipewire version was just released. It includes, among other things, a filter block that can invert the audio signal. With this, a 'virtual balanced' input or output using a stereo ADC/DAC is possible without having to mess around with asound.conf.
See https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3008.
Unfortunately I could not test this yet. the ubuntu packages have not yet been updated. Can't wait to try though.

Another cool new thing is support for the SOFA file format. With this you can import HTRF files to, for example, map a 7.1 channel layout to a set of stereo headphones. This is more or less the same as what Dolby Headphone will do and gives you the full multichannel experience on a set of cans.
 
  • Like
Reactions: kodabmx