DSP Up-Sampling features in Roon 1.3

It’s strange how my expectations of which filter I would like don’t match my ears. With Roon I prefer Smooth (meaning the cutoff at 22kHz is a gentler slope, enabling a shorter filter in the time domain and a cleaner transient with less pre and post ringing) but my new favourite filter combination is HQP ext at DSD 256 (DSD7 modulator). This is a long filter, a la Chord, with lots of taps and a fair bit of both pre and post ringing, but a very steep precise brick wall in the frequency domain at 22kHz. I find the soundstage magnificent and the ringing euphonious. But I would never have picked that combination as likely to be my favourite.

Can anyone tell me what kind of digital filter is used when you do PCM up-sampling? Not to be confused with PCM to DSD transcoding.

Check this for information on filters (both PCM and DSD): https://kb.roonlabs.com/DSP_Engine:_Sample_Rate_Conversion.

As for the new ‘precise’ vs. ‘smooth’ filters – the release notes tell this:

New SRC filter choices: Smooth vs Precise filters. The Precise filters are steeper than the old ones, but designed around similar goals. The Smooth filters are ultra-slow-roll-off filters optimized for a very clean transient response. “Precise, Minimum Phase” is the new default.

3 Likes

Upsampling consists of stuffing the original sample with zeros and then applying a low pass interpolation filter to eliminate an alias (in frequency domain) or smooth discontinuities (in time domain). There is some theory here and a much more fun interactive demonstration here.

2 Likes

Thanks @andybob, am I correct to say all these filters are meant for PCM when one do up-sampling, whether it is PCM up-sampling or converting PCM to DSD on the fly?

I know DSD itself has two filters, one that roll off at 50kHz and the other 100kHz, this is based on scarlet book of SACD standard. My SACD player has switchable output filters when playing back SACD.

@brian

I notice any x48 pcm rates being converted to DSD128 brings my machine to it’s knees and eventually causes a transport error.

44.1, 88.2, etc are all fine and go to DSD128 with 6x processing speed.
48,96, etc all show a load of < .6x processing when going to DSD128.

I’m on an i7-2600 VM host with 4 cores dedicated to my VM, I could move to a dedicated 3770 but I’m concerned that might still not be enough to handle x48 pcm rates. It seems to be rather computationally heavy?

And the weird part is it actually isn’t using much CPU at all now that I check, maybe 29% and no single core spiking. Just the Roon load meter is saying <.6x.

Ok, figured it out, it was because of the “Enable Native DSD Processing” option being on. Which I didn’t need if I’m not converting DSD64 up to DSD128.

Maybe due to the VM? I have “Enable Native DSD Processing” on & the Roon meter stays at 2.9-3.1 no matter what PCM rate I throw at it. DSD64 too, for that matter. I’m converting everything to DSD128 like you are. This is on a lowly AMD A10-7700K machine running Win7pro.

Maybe. The other variable in my configuration is a sMS-200 connected to my DAC.

Update: it seems to have fixed itself. I messed around with some network settings and rebooted my sMS-200. Weird!

All’s well that ends well…

Does anyone know why it doesn’t do the conversion to 64 bit float when the upsampling to DSD is set on custom? It also skips the upsample of the PCM to 352.8 when convolution is used in custom. Here’s the signal path difference.

Forget it.

Here’s a comparison comparing 24/96 tracks upsampled to DSD 256. I think I pinpointed the issue. Look at the difference in processing speed. The server is probably crapping out when upsampling in custom. The conversion to 64bit float drops the CPU load drastically for some reason. But increases the taps when using convolution. Clients reporting better sound.

Here’s an interesting article on filters if anyone is interested.

4 Likes

Hi @brian

I’ve a lot of SACD ripped to DSD64, upsampling say to DS128 or higher will it shift the noise shaped higher? Does it improve the overall SNR in the audio range? Thanks

I’m not Brian, but I know he’s a busy guy. And as a guy who
makes SDM DAC’s I know the answer. What it does is takes the phase shift of the filter further out of the audible 20-20khz range. It can also lower 2nd order noise caused by downstream gear that’s sensitive to ultrasonic noise.

This plot shows a similar frequency and phase response typical with DSD 64. Note how deep the phase shift goes into the audible band. This can mess up soundstage. Upsampling shifts everything further away, and by the time we get to DSD256, if the DAC has a proper analog filter for the task, no phase shift will be in the audible band.

2 Likes

Thanks @MiveraAudio

I know traditionally, pure DSD is seldom playback upsampled/oversampled like what PCM normally does. If upsampled/oversampled pure DSD, especially DSD64 to higher, this will shift the shaped noise to higher range, I was wondering why this is not attempted in SDM DAC design? Playback DSD is always done in native bitrate. If memory serves me well, Roon is probably the first to do pure DSD up sampling via software.

Yes upsampling DSD shifts the noise and phase shift further ahead. Hqplayer has upsampled DSD for many years. Daphile is also another player that does as well. A very large amount of native DSD albums on the market are also upsampled from pcm, or upsampled DSD to higher DSD as well. It’s very rare to find albums that were recorded in pure DSD. Pure native DSD not sourced from PCM is usually reserved for analog tape transfers that were edited in the analog domain. However if you want to add convolution as well to native DSD in Roon, and upsample, processing power required is very high.

And yes most SDM DAC’s do attempt to shift DSD 64 noise further out of band. Depends on the chip used. However the modulators are mediocre compared to what can be done in software. In order to see how far the DAC upsamples you’ll need a measurement device that can do ultrasonic measurements.

For folks on a budget this is a good choice:

https://www.picotech.com/oscilloscope/4262/picoscope-4262-overview

2 Likes

The Emm labs DA2 is an example of an SDM DAC that uses an FPGA onboard to upsample all inputs to DSD 1024

https://www.emmlabs.com/da2.php

Costs $25k and the algorithms will still be weaker than what Roon can do with an I3 NUC.

1 Like