[Question] - How do I disable vm.overrides for pulseaudio clients?
So I have a VM setup that can achieve much lower latency than the very conservative defaults of pipewire and wireplumber (especially when passing through a USB audio device). I've managed to correct alsa headroom/period-size with wireplumber config (s) like so:
cat ~/.config/wireplumber/main.lua.d/51-alsa-config-qudelix.lua:
rule = {
matches = {
{
-- From node.name of sink (not the device name)
{ "node.name", "equals", "alsa_output.usb-QTIL_Qudelix-5K_USB_DAC_48KHz_ABCDEF0123456789-00.analog-stereo" },
},
},
apply_properties = {
["api.alsa.headroom"] = 0,
["api.alsa.period-size"] = 128,
},
}
table.insert(alsa_monitor.rules, rule)
and have overridden the vm.overrides
for pipewire with the following config:
cat ~/.config/pipewire/pipewire.conf.d/91-latency.conf
context.properties = {
vm.overrides = {
default.clock.min-quantum = 256
default.clock.quantum = 512
default.clock.max-quantum = 768
}
}
and this appears to work with pipewire clients correctly (except for max-quantum of 768, but maybe a power of two issue) in that I can vary the PIPEWIRE_LATENCY values up and down and it will be reflected in the quantum for the app and the hardware quantum.
But my pulseaudio config doesn't seem to have an effect:
cat ~/.config/pipewire/pipewire-pulse.d/91-latency.conf:
pulse.properties = {
vm.overrides = {
pulse.min.quantum = 256/48000
pulse.min.req = 256/48000
pulse.default.req = 512/48000
pulse.max.quantum = 768/48000
}
}
All pulseaudio clients use a quantum of 1024/48000 or higher, even when forcing it with PULSE_LATENCY_MSEC
(setting ms values higher than 1024/48000 also work). This works fine on my non-VM system (e.g. PULSE_LATENCY_MSEC=5 steam
will result in an app quantum of 128/48000 in pw-top
).
So it seems like the vm.overrides
of pulse.min.quantum = 1024/48000
is still being used, for some reason. Am I configuring this in the wrong way?
EDIT: My bad, I see the typo in the config dir. It should be pipewire-pulse.conf.d
instead. Looks to work as expected now from a quick test.
While I'm here, is setting node.latency
under stream.properties
essentially setting a default quantum for pulseaudio clients? Or is there some other meaning to it?