r/audiophile Jan 15 '21

Upsampling music files to DSD... DSD256 to be exact. Theoretical question. Discussion

The logic of PCM upsampling by the “power of 2” makes sense.

But when upsampling to DSD, the upsampling is always set to go to 352.8kHz which isn’t by the “power of 2” for 48kHz or 96kHz files.

This is a theoretical question for me because I’m just playing around with Roon DSP settings and honestly can’t really discern a difference. It’s more “nerding out” than anything for me.

Is this “theoretically” insignificant that the upsampling isn’t by the power of 2? Would it be better to only upsample 44.1kHz files to DSD and just do standard PCM upsampling by “power of 2” for 48kHz and 96kHz files?

Curious and thanks in advance.

7 Upvotes

View all comments

1

u/chapia Jan 15 '21

I think you may be down a rabbit hole at the end of a goose chase. :-) BUT, good on you for reading/researching and trying to understand the science/math behind it! That always makes me happy to see, especially in audio crowds.

Short answer: Power of two isn't as relevant when discussing a conversion from PCM (Pulse Code Modulation) to DSD (Direct Stream Digital) as it is in the resampling from one PCM sampling rate (not the same as bitrate!) to another (or one DSD rate to another, really).

(This could turn into a lecture series on sampling theory but I have to get ready for work so I'll spare us all; good news is there is a ton of information out there on sampling theory and resampling.)

PCM is storing the amplitude value for each of the points it records at 44,100 times per second or 48,0000 times per second. That amplitude value is stored as a 16-bit integer so you have a lot of "options" to choose from for any given amplitude. So, for example, a 1 second clip of 44.1 kHz, 16-bit audio would have something on the order of 44100*16 = 705600 bits of information.

DSD, on the other hand, only needs to store one bit of data for each of it's recorded samples. That one bit (0 or 1) simply indicates if the current sample is higher or lower amplitude than the previous sample. To note, there is no "absolute" amplitude information available in a DSD file because each sample is relative to the previous sample. For this to work, though, you need to sample VERY (by audio standards, at least) fast (Megahertz, not kilohertz.). Therefore, 352.8 kHz you mentioned doesn't seem like actual DSD to me...a quick search shows that may be something called DXD. (I don't know about that and can't look into it more right now.)

There is no* reason to convert your PCM to DSD.

(* there may be a reason in some weird corner case where you're trying to run a DAC in a sweet spot or optimize around some esoteric aspect of a particular setup but, for the average person in the 99.9% use case, there is no reason.)

References:

https://www.whathifi.com/us/advice/what-dsd-audio-how-it-works-where-to-download-files-and-more (Full disclosure: I only skimmed it to fact-check myself before posting.)

https://www.highdeftapetransfers.com/pages/formats-explained

2

u/euge_lee Jan 15 '21

The 48kHz to 352.8kHz is the upsampling before it is “converted” to DSD at 11.290MHz. This is according to the Roon “signal path” display.

2

u/thegarbz Jan 15 '21

Therefore, 352.8 kHz you mentioned doesn't seem like actual DSD to me...a quick search shows that may be something called DXD. (I don't know about that and can't look into it more right now.)

It's called DSD-Wide. It's basically the DSD64 stream broken down into 8bits at a time for easier processing with less noise shaping and filtering at each step. Best I can tell it was designed for systems which couldn't natively process DSD and instead processed PCM instead in a way that was completely compatible with DSD64. As such it's locked to the sampling frequency of DSD64 and the only sample rate supported is 352.8KHz

1

u/DonFrio Jan 15 '21

It actually doesn’t matter if it’s a power of two in any of the cases. Computers are good at math and we up sample by multiplying to the least common denominator then back down. That’s hard math for you but trivial to a computer. Yes it feels logical for a low integer multiple but in reality doesn’t matter at all.