DSD to PCM and Volume Leveling

Roon does not apply volume leveling to DSD content, because there is no straightforward way to apply gain to DSD streams without converting them to PCM first. This seemed like it would be an unacceptable quality compromise for many people.

The downside of this approach is what you’re describing here–it’s less convenient because the volume leveling feature only affects PCM content.

There are two differences in opinion here that we are traversing in this decision:

  • “DSD is a bitstream and should not be processed unless absolutely necessary” vs “DSD content should be converted to PCM as needed for processing regardless of the quality hit”
  • “Volume leveling should be an audiophile quality feature” vs “Volume leveling is a convenience feature that’s allowed to harm quality”.

I suspect that there are many people on both each sides of these. There is definitely a loss of information in a DSD->PCM conversion because DSD can represent sounds that PCM cannot.

We could have solved the problem by converting all DSD content to PCM when volume leveling was enabled, regardless of hardware support for DSD. We erred on the side of preserving the sound quality, assuming that people who were picky enough about SQ to be choosing DSD content and hardware would be more likely to agree with that choice. Maybe this should be setting.

In an ideal world, we would pass the raw DSD or PCM stream + the gain value to the DAC and let it interpret both in the highest quality fashion possible. USB isn’t quite capable of this (to do this right, you need two separate volume controls: one hidden and one user-visible), but RoonSpeakers will be able to do it on DACs that are capable. This gives best of both worlds: “bit-perfect” volume leveling for PCM and DSD content with a single volume adjustment in the analog domain post-DAC.

4 Likes