Linux audio has been considered a sore-spot with some audiophiles. Personally, I have been very happy with Linux Audio since about 2009 or 2010 or so and enjoyed its continual improvements as the project has matured. The high point for PulseAudio has been the intuitive, input / output switching. The downside has been the latency (which I happen to think has been an inflated claim) and the lack of granularity control on sound sources. Jack Audio has been the audio system for professional users with the benefit of lower latency and more granular control. In general, PulseAudio was the “consumer grade” solution with Jack Audio for the pros and require pro-level knowledge.
The promised solution for Linux has been PipeWire which combines the benefits of both. With some distributions just now starting to include it, some by default, others as an option, I thought it was time to see how it would work on my EliteBook running openSUSE Tumbleweed. The impetus for this decision is, all of a sudden, my Bluetooth headphones started to have terrible quality and I figured, I have nothing to lose here. I can always just roll back my installation if I totally break it.
I used several references to understand what needed to be done before setting it up. I will list those at the end. I also want to note that PipeWire is rapidly improving so my experience on Tumbleweed Snapshot 20210712 may be very different as the software develops. I also want to note, I am evaluating this as a drop in replacement for PulseAudio, I have not evaluated anything regarding Jack Audio.
sudo zypper in pipewire pipewire-pulseaudio pipewire-alsa
For my machine, PipeWire was already installed but the other two, pipewire-pulseaudio and pipewire-alsa were not. I did have one issue, which I found as a surprise, pulseeffects was uninstalled but I decided to ignore this for the time being
According to everything I read, the next step was to reboot. I did so and my audio worked which actually confused me. I thought, maybe I did something wrong so I reviewed this video on YouTube again. It gave me the insight to run this command to check my sound.
Which gave me this output:
Server String: /run/user/1001/pulse/native Library Protocol Version: 34 Server Protocol Version: 35 Is Local: yes Client Index: 137 Tile Size: 65472 User Name: cubiclenate Host Name: Sideswipe Server Name: PulseAudio (on PipeWire 0.3.31) Server Version: 14.0.0 Default Sample Specification: float32le 2ch 48000Hz Default Channel Map: front-left,front-right Default Sink: bluez_output.20_07_21_27_21_59.a2dp-sink Default Source: alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi___ucm0003.hw_sofhdadsp_6__source Cookie: 3df0:f864
My Understanding, is that PulseAudio is running on PipeWire so this is the proper output.
I checked to see if there was a service running for PipeWire and there does not seem to be
> systemctl --all --user list-units pipewire UNIT LOAD ACTIVE SUB DESCRIPTION 0 loaded units listed. To show all installed unit files use 'systemctl list-unit-files'.
I scratched my head a bit but just proceeded with my exploration. I decided to check to see if there were any processes that matched the term, “pipewire” and sure enough it was running.
I took this as an indicator that this is working as intended.
The computer booted up, I logged in and the sound continued to work just as it had before. Since I was having issue with Bluetooth, previously, I started my testing there. I paired my headphones, the sound automatically diverted to them and it sounded absolutely fantastic. I then checked the configuration options in the system settings and sure enough, the High Fidelity option was again available.
The next thing on my list was to see if PulseEffects would install. Going into The YaST package manager interface, I selected to install PulseEffects and I see that it wants to deinstall pipewire-pulseaudio. I decided to just break PulseEffects and see if, perhaps, the application might work.
The result is a PulseEffects application interface that cannot do it’s job. None of the effects seem to work. A little digging on the webs tells me that version 5.0.0 will depend on PipeWire. Since it is not in the official Tumbleweed repo, I will patiently wait and leave my recording machine, my Dell Latitude E6440, on PulseAudio for the time being.
At this point, I am going to wait for the new PulseEffects to come down in Tumbleweed. Once it is available, I will try it again and do a follow up to this article. I will continue running PipeWire on my EliteBook and PulseAudio on my Latitude. I will do some side by side comparisons for a short time.
I am also going to start to play with some Jack Audio applications and see what neat tools there are and do some discovery. I want to see how some of those professional applications run on my system.
So far, I am happy with PipeWire. I am enjoying the improved quality of Bluetooth Audio and I feel like my system is set up in the direction of where Linux audio puck is going. I don’t personally feel like I am actually benefiting from all the available features but if nothing else, I will be able to file bug reports, should I have any issues.
More to come in this space, for now, I can, with confidence, PipeWire works and it takes almost no effort to get going. Is it right for you? Maybe and if you have no issues with your current setup, I really see no benefit at this time, but if you are having issues, this is, most certainly, a good fix.