Which HQP Filter are you using? [2023]

I don’t know the technical stuff, but from listening the EC modulators are a step up from the rest in my opinion. But they also use quite a bit more CPU power.

Not sure if the 5 to 7 EC modulator is best for my Holo Audio Spring 3 KTE though.

This is certainly best running at DSD256 from ASDM7ECv2 modulator. This is multi-element bit-perfect DSD DAC.

This is best running at maximum supported PCM rate, set DAC Bits to something from 16 to 20 and use LNS15, NS9 or NS5 noise-shaper.

You can also try DSD, but you need DSD512 or DSD1024 from ASDM7ECv2. But that is relatively heavy, especially tricky to achieve at DSD1024.

2 Likes

Some of the filters I chose differ from what I see HQ software employing when I play DSD files. Is that expected behavior, or should I change the settings on my computer? Please refer images for more information.

image

image

Here you don’t have DirectSDM checked, but HQPlayer main window shows DirectSDM, so those screenshots are not from the same configuration case?

But it could be that Roon doesn’t know how to correctly display status in that case.

1 Like

I have now been playing with the trial version of HQ player 4 Desktop and I’m very happy with the sound it provides, but wanted to check if there are any hints that I should try and if the settings I’m using are optimal for my DAC. HQ Player is run-in on Mac Mini M1 16GB, Roon Core is running on another older Mac Mini (2012) and I’m using Allo USBridge Siq with Ropieee XL as NAA feeding Ayre QB-9 Twenty day via USB. QB-9 Twenty is limited to 384/32 or DSD256

Set-up I’m currently using is:
1x = poly-sinc-gauss-long
Nx = poly-sinc-gauss-hires-lp
Modulator = ASDM7ECv2
Bitrate = 44.1k x256
32 DAC Bits
Multicore DSP greyed

I’m already pretty happy with the sound, but any recommendations if there is something more optimal for my DAC?

All good, but worth checking which one works better for you ASDM5ECv2 or ASDM7ECv2.

Thanks Jussi, I will try that

Yes. That is correct. DirectSDM screenshot is for the previous scenario and not for this scenario. I agree Roon is reporting the filter set on the “File->settings” window and not from the “DSD Source Settings” window.

Thank you for a fantastic product. I can hear the distinct audio difference with and without the HQ player.

2 Likes

Hello @jussi_laako, I have a few questions regarding filters.

From a purely objective and technical standpoint, what type of filters is best for 1x and Nx oversampling?
For what I am understanding, a very steep filter is preferable for Redbook content while it’s not absolutely necessary for hi-rez.

It could be cool if you could post the frequency response graphs of all the poly-sinc-gauss* filters if that’s possible. I only found a graph you posted for the *-xla one.

Concerning SDM Integrator, which type is best also from a purely technical standpoint?

My setup:

  • Soncoz LA-QXD1 DAC (ESS ES9038Q2M, which can do 48k DSD without problem btw)
  • Upsamspling to SDM 48k x256 with adaptative rate
  • Modulator : ASDM5ECv2
  • 1x: poly-sync-gauss-long
  • Nx: poly-sync-gauss-hires-lp
  • SDM Integrator: IIR
  • SDM Conversion: wide

IIR to FIR2 and wide to XFI

Thanks for the suggestion, I will try that.

Any idea why XFi is better than wide? I am struggling to understand this part of the process.

It is most precise rate conversion process at cost of CPU time. Difference to the other algorithms is pretty small though. Choice of integrator plays much bigger role. FIR2 is probably among the best choices for integrator. IIR is the most traditional one.

Other settings seem like a good starting point for your DAC.

2 Likes

Thanks for the details.

As for the filters, are the ones that I’m using the best theoretically speaking?

Most universal for a lot of source material and high performing yes. There’s no straightforward way to define “best”. Those are the ones I use myself.

But please check the table in manual, there’s some more information and some suggestions for different source material. In the end it depends on source material and listener. Different people are sensitive to different aspects in sound.

1 Like

Hi @jussi_laako
I’m still very much enjoying your software. There is no going back to PCM on my Gustard X26 Pro. Despite this not being a “DSD direct” DAC, the difference is still very tangible. Whether it is your modulator or the way the 1-bit data is processed by the DAC internally - don’t know, but DSD sounds like “music” whereas PCM sounds like “a nice attempt at reconstructing music”. I am fully aware that situation would likely be the other way round on an R2R DAC, am only speaking about my gear.

I was going to ask you why Sinc-M takes about 10 times less RAM memory than Sinc-L in DSD despite the difference between them seemingly not being that big on paper (well, big, but not 10x) but I think I’ve figured it out myself. Am I right in thinking that the number of taps will be vastly different in DSD due to much higher upsampling rates (MHz)? Sinc-M would be capped at 1M but Sinc-L and Sinc-Mx would get extra taps?

If this is correct - how do I calculate the number of taps for those filters, respectively? Not that it is of huge importance, but out of curiosity to see how much more DSD conversion results in. It’s using DSD256.

I’d also appreciate if you could help me understand why Sinc-L’s extremely sharp cut-off results in average attenuation whilst Sinc-M’s “very sharp” cut-off provides high attenuation. Surely there’s a simple answer to that which I’m simply not aware of (lack of technical understanding), but at first look I’d think that the point of extreme cut-off is precisely to increase levels of attenuation as opposed to making them “average”. I’m pretty sure I’ve seen your posts before in which you mention that extreme cut-off always results in some “leakage”, it just seems counter-intuitive to me.

Oh, and one more question - what happens to the extra bits when I’m playing MQA files using those filters? E.g. when you have an 44.1kHz 24-bit MQA file it seems obvious that the extra bits are only there as a container for MQA-decoding instructions for the DAC to know how to unfold the file. What happens to those bits during HQPlayer upsampling? Are they simply disregarded as not containing information relevant to the recording or do they somehow interfere with the process?

Thanks.

2 Likes

Yes, exactly. sinc-M is always 1M taps. sinc-Mx is 1M taps at 16x conversion ratio (44.1 to 705.6k which is the ratio Chord does with their long WTA1) but at DSD256 rate it is thus 256/16=16x longer and thus 16M taps. Typically on HQPlayer the filters scale with conversion ratio, so the filter properties stay the same regardless of rate.

Note that this has also huge increase in terms of processing demands. Since the amount of data is 16x more at 16x higher data rate with 16x longer filter.

This is stated in the manual. You multiply given value with conversion ratio. For example from 44.1k to DSD256 the conversion ratio is 256x.

Length of the filter mostly defines sharpness of the cut-off. Not strictly even that. All the rest of properties depend on type of the filter. So two filters with exact same length can have totally different attenuation and response. Thus number of taps is pretty pointless figure to evaluate filters.

Steepness/sharpness and amount of attenuation are not related in any way.

Roon can decode MQA and then send the result to HQPlayer. This is preferred way to handle it. Recently the defaults seem to have changed, so please check that you still have the MQA Core Decoder enabled for HQPlayer output. That is all there is to decode in MQA in first place. HQPlayer can then upsample this to your final output format. If you play MQA content with standalone HQPlayer, HQPlayer is trying to strip out the bogus bits that just add noise.

There is also the MQA/MP3 filter for playing MQA or low bit rate MP3 content (<= 128 kbps). At least LAME MP3 encoder does better job at 256 or 320 kbps and at those rates you can use normal filter, but still depending on the source encoder used.

4 Likes

Thanks Jussi, much appreciated.

I somehow thought that the higher the steepness of a filter, the higher the attenuation. To be honest I thought that this was the whole point of some filters being extra sharp/steep - to more precisely draw the line between what stays in and what is cut out of the audible band.

I don’t know if you’d agree with me but it appears to me that the Sinc-Mx filter can in some ways be perceived as a superior filter to the Sinc-L as even though its overall number of taps is lower (I appreciate that on its own it might not mean too much), it is an apodising filter and also has higher attenuation.

At least that’s what seems to be the case to me on paper. When I’m doing actual listening tests (on tracks with no apodising errors, to take that out of the equation) the Sinc-M filters sound “smoother over” compared to the Sinc-L filter. The L filter has more bite to it and perhaps because of that I perceive it to be a little more airy-sounding. Not sure why that is the case.

1 Like

2 seperate design variables and Rob Watts’ WTA filter is a great example: very steep but nothing special about amount of attenuation.

For me, the more interesting challenge is to make the filter as short as possible in time domain while being as good as possible in frequency domain without early roll-off or leaky/images. While simultaneously having very high attenuation. So going as close as possible to the impossible. Since time and frequency are 1/x related, it is particularly challenging.

Yes, that’s the case. I personally don’t really use either one.

One possible reason is apodizing vs non-apodizing. Lot of source content contains errors that apodizing filter corrects and extracts the real details without those errors messing up the result. But overall those two filters are very very different, so it is only one of the possible reasons.

Easiest way to compare apodizing vs non-apodizing at the moment is to try poly-sinc-gauss-xla vs poly-sinc-gauss-xl.

5 Likes

And what would be the filter that is approaching the most this challenge?