Table of Contents
Bowers & Wilkins MM-1 no output below 50% volume
This seems to be due to some fault in the dB reporting and can be worked around by creating a configuration file that overrides this property. Also since some time ago a pop was heard when any sound started after being silent for a while. Turns out that it is possible to fix by disabling the suspend Serval DAC Clicking
New JSON config
File can be placed in either /etc/wireplumber/wireplumber.conf.d or ~/.config/wireplumber/wireplumber.conf.d
To find the device name either use wpctl status look for the device id and use wpctl inspect <id>
Another, and quicker, way is to check output from pw-cli ls Device
- /etc/wireplumber/wireplumber.conf.d/51-Bowers_Wilkins-MM-1.conf
monitor.alsa.rules = [ { matches = [ { device.name = "alsa_card.usb-Bowers___Wilkins_MM-1_304-00" } ] actions = { update-props = { api.alsa.ignore-dB = true session.suspend-timeout-seconds = 0 } } } ]
Then to make the changes take effect run systemctl –user restart wireplumber
Old Lua config
File can be placed in either /etc/wireplumber/main.lua.d or ~/.config/wireplumber/main.lua.d
To find the device name either use wpctl status look for the device id and use wpctl inspect <id>
Another, and quicker, way is to check output from pw-cli ls Device
- /etc/wireplumber/main.lua.d/51-Bowers_Wilkins-MM-1.lua
rule = { matches = { { { "device.name", "equals", "alsa_card.usb-Bowers___Wilkins_MM-1_304-00" }, }, }, apply_properties = { ["api.alsa.ignore-dB"] = true, }, } table.insert(alsa_monitor.rules, rule)
Then to make the changes take effect run systemctl –user restart wireplumber
MM-1 random tones problem
Finally found the solution to the random tones that would be output at a low volume from the left MM-1 speaker.
# Change default.clock.rate to 44100 to fix B&W MM-1 random tones
# problem. Other settings should be at the default as in
# /usr/share/pipewire/pipewire.conf
context.properties = {
## Configure properties in the system.
#library.name.system = support/libspa-support
#context.data-loop.library.name.system = support/libspa-support
#support.dbus = true
#link.max-buffers = 64
link.max-buffers = 16 # version < 3 clients can't handle more
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#clock.power-of-two-quantum = true
#log.level = 2
#cpu.zero.denormals = false
core.daemon = true # listening for socket connections
core.name = pipewire-0 # core name and socket name
## Properties for the DSP configuration.
default.clock.rate = 44100
#default.clock.allowed-rates = [ 48000 ]
#default.clock.quantum = 1024
default.clock.min-quantum = 16
#default.clock.max-quantum = 2048
#default.clock.quantum-limit = 8192
#default.video.width = 640
#default.video.height = 480
#default.video.rate.num = 25
#default.video.rate.denom = 1
#
#settings.check-quantum = false
#settings.check-rate = false
#
# These overrides are only applied when running in a vm.
vm.overrides = {
default.clock.min-quantum = 1024
}
}