Native DSD processing

Unlike with PCM, processing 1-bit DSD signals in their original form is not practical because 1-bit signals do not have enough dynamic range to perform common operations like volume adjustment, eq, mixing, or convolution directly on the 1-bit representation.

So when DSD IS processed, the input to the processing chain is a 1-bit DSD signal, but the output must have more dynamic range. In Roon’s case, we perform processing with 64-bits of precision, so whenever you process DSD, you end up with something like a “64-bit DSD”. This signal is at the same sample rate as the original DSD signal–which is crucial, because that’s what preserves DSD’s excellent time-domain qualities.

This “64-bit DSD” needs to be converted back into a 1-bit DSD signal (Sigma-Delta Modulation) so your DAC can understand it.

“64-bit DSD” uses the same physical representation as “64-bit PCM”. The sonic content looks markedly different–but in many cases the same signal-processing implementations can work on either type of signal. This is true of the Sigma-Delta modulator, which will happily convert either kind of signal into a sensible 1-bit DSD signal.

At this point, we’re down to terminology confusion. To many people, DSD means “1 bit”, PCM means “multi-bit”, and my usage of “64-bit DSD” above would be nonsensical. That documentation string is consistent with this understanding–because the S-D modulator is in fact converting from a multi-bit format to a 1-bit format.

To other people, there are more shades of gray. There’s a term “DSD-Wide” which refers to an 8-bit DSD signal that’s sometimes used as a representation during processing. We considered using that term in Roon, but didn’t want to accidentally imply to people already familiar with that term that we are only doing DSD processing with 8-bit precision.

I think we’re going to clean up that message in Roon to focus on the output format (a 1-bit DSD signal) without mentioning that the input is PCM. This should remove the confusion.

7 Likes