Alex's Slip-box

These are my org-mode notes in sort of Zettelkasten style

pipewire

:ID: a0628dc3-e296-43ae-9830-d25fdc33659c

https://docs.pipewire.org/index.html

see also pulseaudio

# GUI

qpwgraph works just like qjackctl

# Scripting

# pw-link

Manage IO connections. Takes the place of jack_connect, jack_disconnect and jack_lsp

https://docs.pipewire.org/page_man_pw-link_1.html

# 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.

  • 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

# Troubleshooting

Search Results