roonlabs’ code does not apply the correct level changes when leveling is turned on. It is wrong to lay the blame on replaygain algorithms, perceptual issues, or anything but roonlabs’ implementation.
I gave them fully documented examples of roon’s incorrect utilization of replaygain in 2020 and they don’t appear to have done anything to fix the problem. I had several support threads which ultimately ended with them saying that, since they can find no other examples of software players that do it correctly, they wouldn’t make changes.
See Issue ez-35: Volume leveling (track) is not working correctly