DSD to PCM and Volume Leveling

Hi,
It seems that the DSD to PCM Gain Boost (default +6 dB) is either applied after the volume leveling processing, or the volume leveling is ignored for DSD to PCM converted tracks.
When I use volume leveling I notice that DSD tracks are at a much higher volume than the rest of the regular PCM ones.

Thanks

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

Hey @brian, thank you for your detailed reply.

You described why volume leveling cannot be applied to DSD streams. But I was talking about the case where DSD is convered to PCM anyway.
My current DAC doesn’t support DSD, so my settings are to always convert DSD to PCM. In this case, once the stream is already converted to PCM, you could apply the same volume leveling algorithm on it like you do for “native” PCM files, right?

Just to be clear, I normally do not use volume leveling when listening to music through my audiophile rig, in my case a headphone setup. The only time I use volume leveling is when I’m doing housework, and I’m playing through my PC’s speakers. They’re not great quality anyway, so I don’t mind losing a little bit of SQ if it means I don’t have to adjust the volume each time a new track starts.

Thanks

You described why volume leveling cannot be applied to DSD streams. But I was talking about the case where DSD is convered to PCM anyway.

That’s a sensible legal argument, and it gets you what you want, but proceeding down that line of reasoning is just trading one product inconsistency for another.

The inconsistency: volume leveling would work sometimes for DSD, but not others, depending on your setup. Paradoxically the low-end setup would get more functionality. This creates another weird gotcha to explain. I’d prefer a 0-gotcha solution.

I think we’re going to make it so volume leveling does DSD->PCM conversion. And maybe include a setting to turn that off.

OK @brian, I see where you’re coming from. That makes sense.
Like I said, it’s not very important to me so either way will be good for me. I just want to make Roon a better product, like you do :smile:

My first post on Roon forums, so please accept my apologies for naive suggestions!

I was wondering, if we are not to have DSD volume-leveling for tracks not converted to PCM, whether Roon could have a Radio setting whereby it was disabled when a DSD recording was played. That would prevent a subsequent PCM recording from causing a heart attack by coming in at a (typically much) higher volume.

This is particular relevant because those crazy enough to really care about “pure” DSD playback (like myself) will be listening extra intently on the music. I was listening to “From the Mountaintop” DSD128 by Chesky, and the sudden high-volume burst upon the return to PCM (even with volume-leveling turned on) actually made my toddler cry, never mind giving me a huge shock!

I was wondering, if we are not to have DSD volume-leveling for tracks not converted to PCM, whether Roon could have a Radio setting whereby it was disabled when a DSD recording was played. That would prevent a subsequent PCM recording from causing a heart attack by coming in at a (typically much) higher volume.

I’m not sure I understand what you mean by this. What do you think should be disabled when a DSD recording begins playback during radio?

Could you not do volume levelling through RAAT where available? That way the DAC/amplifier volume could be adjusted +/- % from whatever was last set on the device or by the user in Roon.

Or is that a bit too dangerous?

For anything involving a USB port, it’s somewhere between unreliable and dangerous. DACs do some pretty horrifying things in response to volume commands (one of the most common sins: scaling DoP as if it were PCM). Some also ignore them entirely.

For a RAAT-capable DAC, it’s not as dangerous (and in fact possible), provided that the DAC vendor can expose the appropriate functionality during the integration.

I’m not sure I understand what you mean by this. What do you think
should be disabled when a DSD recording begins playback during radio?

I reread what I wrote and it’s totally unclear, apologies! I mean for radio to be automatically turned off when a DSD track has been selected for playback. This is to prevent radio from following with a comparably loud PCM track.