DSP Up-Sampling features in Roon 1.3

How are you liking the OPPO?

It’s great but I’m still hoping for the roon support to be announced
if it’s ever coming. I’ve heard it’s being discussed but nothing confirmed. I heard some other things that might be coming but my lips are :zipper_mouth_face:

Looks like you are running yours on a Sparky from Allo? Mine is direct off a Mac mini USB with bridge. What build are you using on the Sparky? Mine I’m running dietpi, but yet to try USB DAC of it.

Would love to know what is planned for the future :slight_smile: The OPPO is a great DAC with quite a bit of functionality you just don’t find in other DACs, including my Bryston BDA-3. Good to hear OPPO has additional features planned with future updates


I am running DietPi as well, both roon and NAA - DietPi 1.43 and works very well for my application, have it running in my office and den as well as my HT room.

Our resampling filters are slow, not steep–I understand why this isn’t the best for your hardware, but our research suggests that for the majority, these are a better default, which is why we started there.

I’m sure you know this already, but I’m also sure that it’s not clear to 100% of the people who have read your posts, and others that will read this thread, so I’ll expand briefly:

We are not alone in the choice to provide “slow” filters as the default or only option. Over the past 10-15 years, slow-roll-off filters have become extremely common in “enhancement” DSP, both because they introduce less ringing and because of the benefits of apodising filters. As best as I can tell based on the measurements posted on this site, HQPlayer’s filters, including the poly sinc short option you mentioned, are also “slow”. HQPlayer does not offer “steep” as an option.

It’s understandable that a discrete DSD DAC like yours might want something different than what the vast majority of our users have–S-D architecture chipdacs, most of which only take PCM input, some of which take DSD input as well.

In any case, we’ve heard the constructive portions of your feedback.

  • Feature Request: a 7th order filter designed using the CLANS method
  • Feature Request: steep SRC filters as an option

However, there’s also something less constructive going on here, that needs to be cleared up:

I’ve seen you repeat something a few times that’s not actually true: the idea that “anyone” can implement SoX because it’s open source and the implication that we would be better off throwing out our implementation and going with theirs–like Daphile did–in less than a week!!!

SoX is actually not an option for us: our reading of their license and legal advice we have received both tell us that it’s not OK for us to statically link against anything licensed under LGPLv2 or 3 licenses. Apple requires that all iOS apps be statically linked, and mobile playback is on our roadmap. We also don’t want to close the door to future integrations with other hardware platforms where we may not be able to comply with the LGPL due to some of its other requirements.

But it doesn’t really matter anyways–there’s no magic in SoX’s implementations. The sample rate converters are straightforward polyphase interpolators (just like ours) the SDMs are straightforward loop filter SDMs (just like ours). You don’t actually need us to incorporate any new code to get what you’re looking for–what you need is filter designs that more closely match your use case. And that’s something we are completely equipped to do.

I’m looking forward to the day when you can confidently recommend Roon alongside your DACs–it will be a strong endorsement when we get there.

In the mean time, I’d appreciate it if you would focus on providing your feedback/criticism in a way that doesn’t cross the line into telling us how to do our jobs. “What” and “Why” are the things we should be discussing. “How” is our problem to solve.

Finally, I’d prefer not to have further discussion in this thread on this “meta” issue. As @Greg said, lets keep this thread to discussions about Roon’s sample rate converters.

Thanks for moderating, @Greg :slight_smile:

10 Likes

Thanks for the detailed reply. I understand you are trying to get the best results for the masses. I was only providing feedback of our results. Regarding SoX, I didn’t know you couldn’t implement the filters as both Daphile and Audirvana did without any problems. However I know they aren’t very complex, so I was using it as a reference point for our system. It was not intended to be a blanket statement on behalf of all Roon users. Due to the low CPU demands on your SRC/SDM, I was under the impression you were leaning towards being compatible with lower powered computers, rather than focusing on quality. It always seems the best sounding SRC/SDM also demands the most resources. Perhaps when you do offer more options a warning bubble can come up explaining that the more demanding algorithms require a minimum computer power to preform smoothly. This way it will be expected that anyone with less power won’t be able to run them smoothly.

Sorry if I came off as telling you how to do your job. The real goal here is to sell licences for you guys. In order to do this we need to have a very high standard of software based SRC/SDM to work with. I’m very pleased to hear you are willing to work with us on this and look forward to getting the Roon certification :slight_smile:

1 Like

There is definitely room to make our DSP implementation more CPU-efficient, but there hasn’t been a situation where we had to compromise a filter design solely to make it perform better.

I’m not sure if steeper filters will want CPU optimization work or not–there’s definitely some headroom still on current i7s, even single-threaded. A CLANS modulator is no more expensive than current 7th order modulator–just different coefficients.

I think DSD-rate processing (like we discussed before) will depend on us doing some broad optimization work. That’s more complicated to make practical for a lot of people
but it would be really satisfying get it right.

The “steep filter” I was referring to actually makes very little impact. It seems to just sound a hair better. It’s when we choose the “CLANS7” modulator when things get very very good. However just like the best sounding SRC/SDM in HQP, these very good sounding settings are very CPU demanding. Skylake I7 processor minimum for both Daphile and HQP for the best SRC/SDM. Our favorite filter in HQP is like you said a slow filter as well. So there really seems to be a correlation to better sound, and more CPU resource usage. Same with on FPGA’s. They are always upgrading to more powerful FPGA’s in DAC’s from Emm Labs and Playback Designs when they want to go to the next level.

This is probably the wrong thread for me to expand on this too much, perhaps this would belong as a specific feature request, but I do think Roon could do a little bit of a better job explaining what went wrong when using DSP that is beyond the capabilities of your CPU. You do provide the processing rate in the signal path popup, but right now if you get a dropout, it gives you a generic “file loading slowly” error which to me sounds like it is a storage issue, not a CPU issue. Even better would be if you could figure out somehow which settings would overtax my CPU and give me a warning message up front.

For now, there’s the processing speed indicator in the signal path. If it approaches (or undercuts) 1 – you’re bound to be in trouble. I believe I heard Brian say 1.3x should offer a ‘safe margin’.

6 posts were split to a new topic: V1.3 Playing DSD tracks, the purple “light” is now green

2 posts were split to a new topic: dCS Rossini DSD128 setup over USB

A post was merged into an existing topic: dCS Rossini DSD128 setup over USB

@brian, will it possible to do DSD up sampling without having to convert to PCM? Shown here, I try to up sample DSD64 to DSD128 but this is not direct conversion process


Can you set PCM Upsampling so only CD quality files are upsampled and not 24/44 and above ?

Do you mean 24/44? Surely ou would want to upsample the 44.1 samples whether it was 16 or 24 bit.

24/96 rather
 my question is mainly can you specify which files get upsampled and which do not ?

You can: DSP screen, SRC, SRC setting change highest -> custom

Great, thanks

I have tried Roon upsampling 16/44.1 material to DSD64, feeding a microRendu, to Mutec MC3+USB, to a Devilaet amp. This results in a significant drop in gain, even with the +6dB boost selected. Is this normal or perhaps indicative of something wrong?

A few things:

  • There’s a DSD gain adjustment setting that defaults to -3dB. This is conservative. you can try increasing it to 0dB if you haven’t already:

  • If you have a headroom adjustment configured, you might try adjusting that up too, assuming it doesn’t cause clipping

  • It’s proper (according to the SACD/Scarletbook specifications) to master DSD content at -6dBFS, whereas PCM content is generally mastered to at or near 0dbFS. Roon follows this recommendation when converting PCM->DSD, so on paper the stream is going to be 6dB quieter. Your DAC should be compensating for this when playing DSD vs PCM material, but we have no way of knowing/verifying whether it does or not.