Pipewire: Difference between revisions

From miki
Jump to navigation Jump to search
Line 46: Line 46:
== Troubleshooting ==
== Troubleshooting ==
=== Setting and keeping bluetooth profile for headset ===
=== Setting and keeping bluetooth profile for headset ===
We want to use the profile <code>sbc sbc_xq</code> for our BT headset Sony WH-1000XM3.
In principe WirePlumber should remember the last selected profile.

;Set the profile manually - profile should be persistent on reboot / reconnect.
* In principe WirePlumber should remember the last selected profile.
* See [https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/143]
* See [https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/143]


;Configure profile
When using {{deb|pipewire-media-session}}, the default profile could be selected in {{file|bluez-monitor.conf}}, but this file no longer exists with WirePlumber.
* When using {{deb|pipewire-media-session}}, the default profile could be selected in {{file|bluez-monitor.conf}}, but this file no longer exists with WirePlumber.
* (UPDATE - [https://wiki.archlinux.org/title/PipeWire#Low_audio_quality_on_Bluetooth Archlinux - Pipewire]) Edit {{file|/etc/wireplumber/bluetooth.lua.d/51-bluez-config.lua}} (or {{file|~/.config/wireplumber/bluetooth.lua.d/51-bluez-config.lua}}):

<source lang="lua">
bluez_monitor.properties = {
["bluez5.enable-sbc-xq"] = true,
["bluez5.enable-msbc"] = true,
["bluez5.codecs"] = "[sbc sbc_xq]",
}
</source>


=== Crackling / Stuttering audio ===
=== Crackling / Stuttering audio ===

Revision as of 10:34, 25 April 2022

Pipewire is the new sound system on Linux, meant to replace Pulseaudio.

Links

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

# Command line
pw-cli
> info all

Bluetooth

  • To change bluetooth device selected profile:
# 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

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