pipewire
Table of Contents
:ID: a0628dc3-e296-43ae-9830-d25fdc33659c
https://docs.pipewire.org/index.html
see also pulseaudio
# GUI
qpwgraph works just like qjackctl
# Scripting
See https://docs.pipewire.org/page_man_pw-cli_1.html See https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Migrate-JACK
# pw-link
Manage IO connections. Takes the place of jack_connect
, jack_disconnect
and jack_lsp
# Dump midi messages
# Latency
See also https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PipeWire#setting-buffer-size-quantum
This can be configured in ~/.config/pipewire/
. Copy files from
/usr/share/pipewire
Applications can be set to use a certain buffer size / sample rate with:
# buffer size over sample rate PIPEWIRE_QUANTUM=192/48000 Ardour
This will determine the latency:
44.1kHz:
Buffer | Latency |
---|---|
32 samples | 0.73ms |
64 samples | 1.45ms |
128 samples | 2.9ms |
256 samples | 5.8ms |
512 samples | 11.6ms |
1024 samples | 23.2ms |
48kHz:
Buffer | Latency |
---|---|
32 samples | 0.67ms |
64 samples | 1.3ms |
128 samples | 2.7ms |
256 samples | 5.3ms |
512 samples | 10.67ms |
1024 samples | 21.3ms |
# Issues
# Volume very low
# Set volume using a mixer tool
- alsamixer
Use
alsamixer
tool and set the output gain to whatever.- See also https://wiki.archlinux.org/title/PipeWire#Low_volume
You can store the alsa config by using
alsactl
sudo alsactl store
- pavucontrol
Pipewire works with Pulse audio, so pavucontrol should work as well. In fact, I had better luck with this to set the volume level my Xone k2
- amixer
Like alsamixer, but CLI only (no TUI)
# Multiple sound cards
By default pipewire handles multiple sound cards timing by resampling. In pavucontrol you can set the Pro Audio profile on the card which, amonng other things will assume all devices share the same clock.
https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/FAQ#what-is-the-pro-audio-profile
# Timing
Instead of letting pipewire handle timing by resampling, which I found to be less than perfect, we can use a module-loopback to introduce a delay on one or more devices.
See also pulseaudio for how to set that up