Up-sampling all formats to a DSD rate that's beyond the Dac's DSD capability

Hi @brian

Just wondering if it is being considered (or has been considered) to allow DSD up-sampling by Roon to beyond the Dac’s capability - and then back down to the Dac’s DSD capability, for better noise shaping as an example?

Looking at the PS Audio DirectStream Dac , I remember reading how even though the DirecStream Dac is limited to DSD128 output, it up-samples everything to a much higher DSD rate for it’s internal processing, before outputting to DSD128.

So at the moment if someone connects an iFi iDAC 2 (limited to DSD256) on a Windows PC, Roon only allows DSD up-sampling to DSD256.

Would it be of benefit to follow the PS Audio approach and allow up-sampling to a higher rate (like Roon’s max of DSD512) in Roon and then output to the Dac’s capability, whether that be DSD 64 or DSD128 or DSD256?

Obviously this would be an option, not a default because as I’m learning , processing power for DSD512 is significant. But for those that have the power, would it be a technically good thing to do?

Cheers!

No. /10char

Hi David

No as in… it’s never going to happen, it’s not been considered or not technically beneficial?

Cheers

I guess I owe you a reason. The general idea with upsampling in software is to get as close as you can to your DAC’s maximum input rate so that the DAC does the least amount of work prior to the analogue conversion stage. (I’m grossly oversimplifying, but that’s the gist of it.)

It wouldn’t really accomplish anything to upsample in Roon past the DAC’s maximum input rate and then downsample to said rate before sending the bitstream along. Just busy work for your computer and superfluous manipulation of the bitstream.

Noise shaping is necessary for DSD, but your hypothetical approach isn’t going to get you anything.

1 Like

The PS Audio DAC uses a custom coded FPGA chip designed to do the internal work needed without breaking too much of a sweat, not going to happen in an intel pc/Mac platform even if you wanted it to.

I personally could not hear enough of a diffence to justify the cost of the Ds DAC in my setup so sold it and spent the money on media and a few other different dacs to play with

1 Like

Understood but there must be a good technical reason PS Audio’s Ted Smith has his DirectStream Dac up-sample to 10x standard DSD rate before outputting to DSD128? As per my OP, I know Roon is limited to DSD512 at the moment so I’m definitely not suggesting Roon up-sample to 10x DSD.

Don’t want to focus on PS Audio though, just asking if Brian has thought about it.

I had one too and like you, sold it to fund several new purchases but I thought it was amazing personally - major regrets but selling it did pay for a nice desktop headphone setup.

But as per above, I didn’t want to focus on them. Moreso if there’s a technical benefit. I would assume there must be a technical reason the DirectStream up-samples to 10x DSD before going back down to DSD128. I wouldn’t think it’s just for the fun of it but I’m no expert

I think ted and ps a is the only company doing this internal heavy duty dsd upsampling

1 Like

Yep understood but again, if someone had the PC power for DSD512 up-sampling and a Dac capable of DSD128 for example, I’m asking if there would be benefit for Roon to first up-sample to DSD512 before out-putting to DSD128.

A bit like the PS Audio approach (without focusing on them too much)… I’m asking Brian if there’s anything technically to gain (again for those that already have the PC power). There must be a technical reason the DirectStream does this.

The DirectStream has a unique design, and Ted, whose talents cannot be denied, has his reasons, which I’m sure you can find elucidated on the PS Audio forums. But keep in mind that any given DAC can’t accept anything beyond the maximum input rate it can accept, regardless of what kind of upsampling/filtering goes on internally.

If you wanted to pursue this line of inquiry, you could do it yourself, only not in real time. Check out, for example, Audiventory.

1 Like

Just the processing overhead to go from 24/192 to dsd512 is already a strain and to go back down again in the same realtime setting would be too much even to drop down to say 128 again…I just can’t see any benefit or need to do so in the real world. If ps audio and ted thought that dsd at higher rates was the best option why don’t they let the DAC output those rates

“If ps audio and ted thought that dsd at higher rates was the best option why don’t they let the DAC output those rates”

Exactly - so something must be gained in that prior step where they take everything up to 10x standard DSD.

I can’t imagine they do that just for the fun of it - there must be a technical gain from that 10x DSD step.

Brian would know if anything can be gained from that step. Let’s see the guru’s thoughts.

1 Like

I think you might find this thread interesting:

2 Likes

Thanks for sharing. I don’t fully understand the reason for going to 10x standard DSD before outputting to DSD128 but (if I understood Ted correctly) there’s a good mathematical reason.

This is why I posed the question to Brian in my OP. The maths (and associated sonic gain) is beyond mere mortals like me !

As per the thread title I’m not asking about going to 28Mhz sample rate, but as high as Roon can go (reliably for the end user) before going to the actual Dacs DSD capability

PS Audio made an excellent engineering choice given their DACs architecture, but it does not make sense to repeat that choice in a software system. Like everyone else, PS Audio is optimizing the performance their product within a set of constraints. Product cost, R+D budget, engineering limitations. Roon has a different set of constraints to contend with.

Before I get into some thoughts about this idea–I want to point out that PS Audio is optimizing their output for a discrete DAC running at DSD128. This is a very different thing than a chip-based DAC that accepts DSD128 as its maximum input rate–which is the very much the “norm” that we would be targeting if we went down a road like this in software.

There are a very small number of DACs out there that are truly discrete (i.e. our DSD stream would pass to the DAC without further rate processing) AND also limited to a DSD rate that you could reasonably downsample to (i.e. DSD128 or less). I think Lampizator has made some. The current batch of Discrete DACs seem to take DSD512 directly now–which is awfully close to the sample rate where PS Audio does their processing anyways.

Anyways, lets try a little thought exercise…

Pretend we’re the engineer designing the DirectStream and assume that the DSD128 output stage and the input modules are already done and it’s time to work on the FPGA.

So we need to design an FPGA-based signal processing path that takes input at any rate up to 384kHz/DSD256 and outputs it as DSD128.

Lets assume for a second that we solve this the most “normal” way that one would in software: by employing a polyphase FIR sample rate converter to convert the input to DSD128 in one stage, then passing that through a sigma-delta modulator.

I’m sure PS Audio’s approach differs in some details (in fact, Ted has said elsewhere that they use IIR filters at the DSD64x10 rate, so it is quite different!), but this thought exercise really isn’t about PS Audio–it’s about Roon. So getting too far from the way that Roon would extend itself to implement this isn’t very useful.

When using this approach in the most direct way, the filter within the sample rate converter runs at the lowest common multiple of the input and output sample rates. That means:

  • for 44.1kHz -> DSD128, the filter runs at DSD128
  • for 96kHz -> DSD128, the filter runs at 56.448MHz (DSD64x10–the same rate as PS Audio uses)

This is in fact, exactly how Roon’s signal processing works today. If you do 96kHz->DSD128, we process the SRC filters at DSD64x10. But in Roon, when you go 44.1kHz->DSD128, the filters are processed at DSD128.

Isn’t this worse? Mustn’t there be a benefit to running the filters at a higher rate?

When using the polyphase approach (how all of Roon’s sample rate conversion works), there is no mathematical difference in the output, but if you do the processing at the higher rate, you’re going to spend some more resources doing it. You’d use a much larger filter (5x larger), and 4/5ths of the coefficients making up that filter would never impact the final output–since they would be perpetually out of phase with both the input and output streams. The 1/5th of the filter that remained would be identical to the filter used when processing the filter at the DSD128 rate. The multiply/adds would be the same.

Why did I explain all of that? To make two points:

  1. There is nothing at all unusual about using a high-rate intermediate format when upsampling. In fact would be unusual if the product was able to meet its functional spec without doing so.
  2. Using a higher-than-strictly-necessary intermediate rate does would not change the math in Roon–it would just make more work for the computer.

Ok, so now that that’s explained, we can see that the interesting thing about PS Audio’s product is that it uses a fixed intermediate rate (DSD64x10) regardless of the input sample rate. Why would they do that? Well, consider that they are doing this on FPGA.

On an FPGA, compute performance is “pass/fail”. Either the DSP fits within the performance envelope of the chip or it doesn’t. Also, on an FPGA, code size and filter storage can be significant constraints–and building much of the system around a single sample rate takes pressure off of those constraints. Think about it: once the input stream is converted to that DSD64x10 format, everything that comes after that point can be the same. Same code. Same filters. One thing to focus on when optimizing, and no waste of those precious FPGA resources.

On a computer, things are different. Code size + filter storage are virtually unlimited. Having many large filters pre-generated for a variety of rate pairs is practical, as is having multiple copies of the code itself, tailored to different use cases. So we do.

But–unlike on the FPGA–we are obligated to scale our performance demands gracefully since we are not the only thing making demands on the CPU. It’s ok to have more expensive approaches that provide benefit (we support some pretty CPU-bashing configurations already), but we won’t throw away performance for nothing in return :slight_smile:

Finally…

To be very clear: I am not trying to describe how PS Audio’s DAC works inside. I am just trying to illuminate some design tradeoffs, and explain why certain approaches may make more sense in software vs in hardware.

I also want to be clear that many products perform processing/filtering at very high intermediate rates as a matter of course (including most upsampling software products–Roon, HQPlayer, Audirvana, and JRiver for sure). It is just part of how a lot of sample rate convertors work. PS Audio is associated with this sort of upsampling because they developed a strong marketing message around it, and took the time to optimize their system very nicely–but it’s really a normal thing, especially in software.

As for Roon, I don’t think there is much for us to take away here.

Increasing the intermediate rate during SRC filtering so that we could say your media spent a few milliseconds at some ultra-high rate would spend resources without changing the math. That is a little too much like snake oil for me :slight_smile:

In order for this kind of thing to make sense, we really need to be in context of an architecture more like PS Audio’s. But that architecture doesn’t make much sense within our design constraints. They target one DAC design with an FPGA, and we target every possible DAC design with a computer. There is value in both things, but that doesn’t mean that they should–necessarily–converge.

6 Likes

Thanks Brian for explaining it so clearly and simply ! This is exactly what I was looking for.

Brilliant stuff

Does NOS DAC (I’m using Holo Audio Spring DAC) truly benefits from the Roon’s up-sampling alogrithum as compared to conventional non discrete DAC?

If you like experimenting with upsampling software, an NOS DAC gives you a really blank canvas to experiment on.

Many straightforward chipdacs get pretty close to “NOS” when you drive them at the maximum supported rate, and these derive plenty of benefit from upsampling. This is particularly true of some of the popular high quality chips like the ESS family. A lot of people have worked hard to get the best results out of these.

The DACs that are perhaps least suited to software-based upsampling are like the one we’re discussing in this thread. PS Audio has put considerable effort into developing an DSP scheme matched to their hardware. And more importantly, they engineered that scheme to go all the way from source material to analog.

1 Like

Chord are similar too - Rob Watts has told me many times (in good spirits of course) to turn off all DSP and play everything in lossless mode, with his Dacs…

1 Like

Seems like a very good advice to think about while waiting for my Hugo 2 which will enlighten my poor existence next week, hopefully :slight_smile:

1 Like