Pipewire: Difference between revisions
Jump to navigation
Jump to search
Line 77: | Line 77: | ||
=== Enable multi-user audio === |
=== Enable multi-user audio === |
||
;References |
|||
Apparently, multi-user works |
|||
* [https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/847#note_828707 PipeWire issue 847] |
|||
* |
* On the '''server''', edit {{file|pipewire-pulse.conf}} (from {{file/usr/share/pipewire|}}, or any system or user-local equivalent file) in the <code>context.modules</code> section: |
||
<source lang="text"> |
<source lang="text"> |
||
context.modules = [ |
context.modules = [ |
||
Line 94: | Line 96: | ||
] |
] |
||
</source> |
</source> |
||
: On the '''client''', export the following env variables: |
|||
<source lang="bash"> |
|||
export PULSE_SERVER=tcp:127.0.0.1:4713 |
|||
</source> |
|||
: Note: make sure the port is allowed in the firewall as well. |
Revision as of 11:22, 25 April 2022
Pipewire is the new sound system on Linux, meant to replace Pulseaudio.
Links
- PipeWire - Debian Wiki.
- PipeWire - ArchLinux
- PipeWire on HackerNews
- PipeWire (old) configuration docs
- Speak about Pulse network transport:
# Setup server with pipewire-pulse -a tcp:4713 # Connect to it with PULSE_SERVER=tcp:<ip>:4713 pactl info
References
Configuration files:
- /usr/share/pipewire
- /usr/share/wireplumber
Commands
# View status
systemctl --user status pipewire
# Use PipeWire instead of JACK
pw-jack SOMEAPP
# PipeWire process viewer (quantum usage...)
pw-top
# Setup sinks, sources, audio devices
pw-link
qjackctl # Graphical tool, leveraging on JACK
qpwgraph # Alternative, pipewire native
# Get settings
pw-metadata -n settings
# Set settings
pw-metadata -n settings 0 clock.rate 48000
pw-metadata -n settings 0 clock.allowed-rates '[ 48000, 96000, 44100 ]'
# Command line
pw-cli
> info all
Troubleshooting
Setting and keeping bluetooth profile for headset
We want to use the profile sbc sbc_xq
for our BT headset Sony WH-1000XM3.
- Set the profile manually - profile should be persistent on reboot / reconnect.
- In principe WirePlumber should remember the last selected profile.
- See [1]
# See available profile and device id with 'pactl list'
pactl set-card-profile bluez_card.38_18_4C_4B_6A_3A a2dp-sink-sbc_xq
- Configure profile
- When using pipewire-media-session, the default profile could be selected in bluez-monitor.conf, but this file no longer exists with WirePlumber.
- (UPDATE - Archlinux - Pipewire) Edit /etc/wireplumber/bluetooth.lua.d/51-bluez-config.lua (or ~/.config/wireplumber/bluetooth.lua.d/51-bluez-config.lua):
bluez_monitor.properties = {
["bluez5.enable-sbc-xq"] = true,
["bluez5.enable-msbc"] = true,
["bluez5.codecs"] = "[sbc sbc_xq]",
}
Crackling / Stuttering audio
This applies in a VM. Not sure these apply when PipeWire is run on the host.
- https://superuser.com/questions/1646216/fedora-34-vmware-workstation-vm-upgraded-from-fedora-33-has-audio-crackling
- https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/469
Enable multi-user audio
- References
- On the server, edit pipewire-pulse.conf (from Template:File/usr/share/pipewire, or any system or user-local equivalent file) in the
context.modules
section:
context.modules = [
# ...
{ name = libpipewire-module-protocol-pulse
args = {
# the addresses this server listens on
server.address = [
"unix:native"
"tcp:4713" # IPv4 and IPv6 on all addresses
]
}
}
]
- On the client, export the following env variables:
export PULSE_SERVER=tcp:127.0.0.1:4713
- Note: make sure the port is allowed in the firewall as well.