Why clock.force-quantum limited by period-size settings in wireplumber's config?
Issues
Situation 1 (successes)
If I set api.alsa.period-size
a high value like 128 in wireplumber settings.
I can set clock.force-quantum
to a high value like 2048, use this command pw-metadata -n settings 0 clock.force-quantum 2048
.
And it works.
Situation 2 (failed)
If I set api.alsa.period-size
a low value to 64 in wireplumber settings.
I can set clock.force-quantum
to a high value like 2048, use this command pw-metadata -n settings 0 clock.force-quantum 2048
.
And it failed. REAPER (JACK backend) shows the value is 1024, not 2048.
My Needs
I need to set api.alsa.period-size to a lower value, to keep recording in lower clock.force-quantum value with a lower latency.
If my api.alsa.period-size value is too high, like 1024. I will have a strange sound in lower clock.force-quantum value.
Wireplumber Settings
All my wireplumber settings:
❯ cat ~/.config/wireplumber/main.lua.d/90-alsa-config.lua
-- See /usr/share/wireplumber/main.lua.d/50-alsa-config.lua for all properties,
-- this just overrides some settings for low latency USB audio
alsa_monitor.rules[#alsa_monitor.rules + 1] = {
matches = {
{
{ "node.name", "matches", "alsa_input.*" },
},
{
{ "node.name", "matches", "alsa_output.*" },
},
},
apply_properties = {
["audio.rate"] = 48000,
["api.alsa.period-size"] = 128,
["api.alsa.disable-batch"] = true,
},
}
alsa_monitor.rules[#alsa_monitor.rules + 1] = {
matches = {
{
{ "node.name", "matches", "alsa_*.usb-*" },
},
},
apply_properties = {
-- USB audio interfaces can take a while to wake up from suspending
["session.suspend-timeout-seconds"] = 0,
},
}
I want to figure out what's the different between api.alsa.period-size
and clock.force-quantum
when I'm using JACK-pipewire as backend. And I want to know if I miss something?
Thank you!