- This topic has 2 replies, 2 voices, and was last updated May 10-7:41 am by Xecure.
May 9, 2021 at 10:23 pm #59060MemberXecure
I have been experimenting a bit with pipewire, and I can say it is the perfect replacement for pulseaudio. I have no experience with JACK, so I will only explain how it works managing my audio on my system.
PipeWire is a server and user space API to deal with multimedia pipelines. It will be very important for Wayland server (streaming audio/video between applications and screen sharing), but it is still very useful for us xorg users.
Currently in antiX-bullseye-a2 (testing, future antiX 21), it is good enough to manage input/output audio for all my devices on my laptop. I have it set up mainly to replace pulseaudio (not installed on my system). It doesn’t require systemd and, though a service could be created for it, it is NOT needed. I have it installed with a bluetooth module, and I am able to stream audio to my bluetooth headphones (a bit jumpy, but good enough for me), use pavucontrol to manage the volume and switch between audio input/output, play audio in firefox (without apulse!!) and all this using less CPU % compared to pulseaudio (still uses more than just pure ALSA, but negligible in my experience). It also has a good audio level compared to when I am using pulseaudio and similar to pure ALSA (but this may depend on the device, and may only be my experience).
Official Debian Instructions here: https://wiki.debian.org/PipeWire
Summary of what I have done on my system:
1. Install pipewire with audio client libraries (optional, for replacing pulseaudio, jack and handling alsa requests) and bluetooth modules (optional, for bluetooth audio streaming).
sudo apt install pipewire pipewire-audio-client-libraries libspa-0.2-bluetooth
1.2 (Optional) I installed pavucontrol (without pulseaudio) to manage volume control and device switching. I prefer this to alsamixer and Sound Card Chooser. For what I use it, it is good enough.
2. I add pipewire to the startup commands so it launches with the system. I edit ~/.desktop-session/startup and add it close to the beginning:
# Startup pipewire to manage my audio pipewire &
3.(Optional) Prepare it to replace pulseaudio. I follow the Debian wiki instructions and create a file for pipewire:
sudo touch /etc/pipewire/media-session.d/with-pulseaudio
and also add another startup command to ~/.desktop-session/startup
# Replace pulseaudio functionality with pipewire pipewire-pulse &
4. (Optional) Also pipe all programs that would use alsa to use pipewire instead (makes it consistent with pulseaudio volume and lets me control all system audio with pavucontrol interface and same audio commands). I follow the Debian instructions and create the files:
sudo touch /etc/pipewire/media-session.d/with-alsa sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/
5. (Optional) Let pipewire manage JACK. I have followed the Debian wiki instructions but I have never used JACK for anything before. I discovered qjackctl recently in a forum post and just wanted to see what it was. Maybe I will use this in the future, so I set it up anyway.
sudo touch /etc/pipewire/media-session.d/with-jack sudo cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-*.conf /etc/ld.so.conf.d/ sudo ldconfig
Here is a screenshot of qjackctl of how the audio is set up right now on my system (using bluetooth headset that includes microphone to listen to youtube on firefox, with pavucontrol open to manage volume and input/output devices):
Not everything is sunshine. There are shadows (at least for me).
A. Volumeicon is useless after setting all this up. The volume slider barely moves sometimes (it seems blocked by something), and others slightly moving it increases the volume to almost 100% (almost making me deaf). I have disabled it from startup, but I could use it for launching pavucontrol by changing the mixer command.
B. Default hotkeys/key-bindings for increasing/decreasing audio (using amixer command) doesn’t work properly. Sometimes it just blocks the audio in one channel and others volume goes too loud or too low, or gets stuck in mute. I have replaced them to use pulseaudio commands instead:
pactl set-sink-volume @DEFAULT_SINK@ -5% pactl set-sink-volume @DEFAULT_SINK@ +5%
C. It doesn’t remember volume levels at all from one session to the next (not a real problem compared to normal ALSA behavior, but it is worse compared to normal pulseaudio).
D. Related to B. Alsamixer doesn’t seem to match volume values with pulseaudio. They seem to work in different scales and show 0 when the other shows >0%, and jumps of 10% in one may be a 30% volume jump in the other.
E. Though long use of Bluetooth headphones has improved (no sudden disconnects after 5 minutes without audio output), I get more stuttering and distortions (sometimes), but it could be related to my bluetooth card or headset (always had some problems, so I am OK with current experience).
So, this is my experience so far. Have you tested this out yourself? What was your experience?May 9, 2021 at 11:37 pm #59068MemberskidooHelpfulUp0:D
no firsthand experience, I’ve occasionally clicked reddit topics to read “from-the-trenches” reports by users:
HackerNews search, sorted by date:
pipewire debian package bugtracker: https://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=pipewire;dist=unstable
pipewire project bugtracker: https://gitlab.freedesktop.org/pipewire/pipewire/-/issuesMay 10, 2021 at 7:41 am #59085MemberXecureHelpfulUp0:D
Hopefully we can get more people to test this on their machines (with HDMI output and even older machines), and may be able to recommend using pipewire instead of apulse (or set it as the default on a respin).
The big problem with pipewire is that it gets outdated pretty quickly. It seems the developers release a new version every 15 days, so on a stable environment it might get old (we all know how Debian prioritizes stability above everything else). I hope that before bullseye gets released they can squeeze in a newer version from experimental. Worse case scenario is building my own .deb from experimental if needed, as I have done for connman.
Anyway, I am interested in seeing how it goes for other antiX users.
- This reply was modified 1 month, 1 week ago by Xecure.
- You must be logged in to reply to this topic.