wireplumber doesn't restore device routes correctly if I set the volume through alsamixer.
After executing wpctl set-volume ID 0.86, a usb microphone's channelVolume stored in ~/.local/state/wireplumber/default-routes is 0.636057. This channel volume can be restored properly.
If I set the volume through alsamixer, the stored channelVolume is 0.638261. If I block the device and allow it again with usbguard, actual ALSA volume is slightly lower than 0.638261, and channelVolume reported by the device is 1.0. wpctl get-volume reports 0.86, but the cubic volume for actual alsa volume is actually close to 0.85. After setting the volume through alsamixer, there is mismatch between wpctl get-volume, channelVolume, and actual ALSA volume.
It seems that 0.638261 cannot be restored properly, and 0.636057 can be.
I am using wireplumber-0.5.0
Edited by kenji amano