I noticed that when volume levelling is at 0.0 the volume levelling still occurs in the signal path. Can’t this just pass through without volume levelling or is that already happening?
When the volume leveling is 0.0, no adjustment is actually happening to that track, and that element is just passing through the audio.
We still need the playback chain to be set up for volume leveling, because the next track could have a non-zero adjustment and we reconfiguring the playback chain would create a gap between those tracks.
There is another case–sometimes when all of your audio files aren’t analyzed yet, we can learn the volume leveling number only after playback has started. Roon can start at 0.0 then begin applying the adjustment mid-stream.
The potential for volume leveling may affect other parts of the signal path, too. For example, if you’re playing bit-perfect 16bit audio to a DAC that supports a 16 bit sample format, we will send the original audio as 16 bit. But if volume leveling is enabled, we’ll send the audio as 24 or 32 bit to create extra “headroom” to prevent a quality hit from the volume processing.
So, when volume leveling enabled, Roon is always prepared to apply it. In the case where you have a track at 0.0, it turns into a bypass temporarily, but all of the other details remain in place to keep the playback gapless whenever possible.
Thanks @brian for clearing that up. I leave volume levelling on since it seems to sound better and I don’t have to keep altering the volume for quiet tracks in my playlist. It’s a great feature.