Which HQP Filter are you using? [2024]

It was a K-Pop playlist After the 2024 countdown with:

sinc-M, AHM7EC5L, SDM, DSD1024
:partying_face:

4 Likes

New combo favorite for 2024

Shaper: ASDM7ECv2
Modulators
1x: sinc-short
Nx: sinc-Ls


5 Likes

Holo Red → Holo Spring 3 with HQP sinc-M - ASDM7EC-light - DSD256x48… I think I’m in love.

I rolled some filters with ASDM7EC-light + DSD256x48 and found out sinc-M having the best punch and depth to the sound. It’s clearly better than the sinc-MGa I’ve used for a while now. In general, I seem to prefer all the sinc-filters to the poly-sinc-gauss filter-family.

ASDM7EC-light also sounds great, even though it’s easier to run than -super or v3. Super is sharper, which isn’t always good and I actually prefer v2 to v3.

For practical purposes you can consider following equivalent:
poly-sinc-gauss-xla = sinc-MGa
poly-sinc-gauss-xl = sinc-MG
poly-sinc-ext3 = sinc-M(x)

8 Likes

This was divine with Sinc-L / ASDM7ECv3

2 Likes

I really love the detail and sound staging with the sinc filters, I really have a hard time picking between sinc-short, sinc-medium, and sinc-long

However, I listen to a decent amount of 44khz family that has quite a few apodizing errors…so my question to @jussi_laako

1- What is closest in terms of style, design, and technical performance to sinc-medium (my usual go to) but is a apodizing filter? I know you said you can’t do a sinc-medium (a) but if you could design something that could I would buy you a beer, seriously. A few of them.

2-What are your thoughts on bit depth conversion from 16 or 24 to 64 bit I see some doing on roon? Why do they do this? Does this make it easier on Hqplayer, although not as good, to do a certain filter combo? Dream list - sinc-medium filter that can do any family and not fixed (like Sinc-L ect) but has an apodizing function. Pretty please? Sinc-Medium with ASDM7EC-Super 512 Fs is pretty damn awesome.

3- Can you clarify if you do auto family rate, does this use more or less gpu when using cuda offload?

4- Do you find 44 family to 48 family DSD (if supported) has benefit or no?

5- Can you give a taste of what’s in the pipeline? Please don’t just focus on 1024 and up, the very best clocks you can get performance wise right now (SC-Pure) by Ian Canada can only do 512 right now.

6- Technical benefit with short buffer vs standard vs increasing buffer size? I go back and forth, but I think the short buffer sounds better on my system (but this could be due to server, switch, and end point are clocked with a GPSDO OCXO NTP clock and I am using Diretta which really benefits from the lowest latency possible.

Thank you very much

This is a very difficult question. There’s nothing really similar. You can try for example poly-sinc-ext3 or poly-sinc-gauss-xla. These are very different kind of design though, and will have better technical performance. And I would also say very different in style.

The math sinc-S/L group and sinc-short/medium/long are based on doesn’t really work properly for an apodizing filter.

Roon automatically outputs 64-bit to HQPlayer when some DSP processing is enabled at Roon side for HQPlayer output. This is to maintain as much resolution as possible when handing over the intermediate data.

But whenever possible it is best to do all processing at HQPlayer side and keep Roon sending bit-perfect data to HQPlayer. It is not possible for all DSP cases though, such as volume leveling or cross-fades, because Roon doesn’t support doing that at HQPlayer side (although HQPlayer API supports it).

Yes, but only when there would be conversion between rate families.

Only small, since the 48k family has slightly higher rate.

My approach is to only talk about things that have been completed and are out. Sometimes when people ask for a new feature I may tell if it is already on my TODO-list.

For example those AHM modulators were in the pipeline for years and those are still experimental. Not sure when I would consider first iteration “complete”.

Benefit is less delay, for example from you pressing next-button or seeking in Roon and the result coming out from the DAC. Negative side is that the playback can more easily have drop-outs.

@jussi_laako Thank you very much for your fast response! You rock!

1- It seems odd that the sinc-small medium and large required quite a bit more processing power to do compared to most of the poly since family, but you say the poly-sinc-ext3 and poly-sinc-gauss-xla are better in technical terms?

so that leads to the question, in your oppinion, understanding the math and filters, what combo has the best technical performance? I belive you said the best you can do now on the modulator side, in terms of technical performance (which obviously isn’t everything) but the ASDM7EC-super 512fs, which I find is the best sounding now on my system. What about filter, though? God, I really wish Sinc-Medium could have an apodizing filter it sounds SO good.

2- I use Ian canda’s FIFO q7, using 45 and 49mhz SC-pure’s, If you have both clocks, and you enable auto family rate AND 48k DSD, there never should be switching between the families, right? Supposing 48k DSD is supported and both the 45/49 does each family?

3-How can I force all 44 content to 48 family for DSD 512? Would this be setting set frequency?

4-Any chance the android control application will be able to do the on the fly filter and modulator changes? I am using HQPDcontrol v4 and it currently cant do on the fly changes, which stinks for ease of use.

5-Does Hqplayer utilize the 3rd generation and on Tensor cores on Nvidia GPU’s? The third gen is when they enabled them to do fp64 calculations. However I still struggle fully understanding the way Hqplayer uses higher fp calculations than 64 when there are no true dedicated cores to this. To utilize tensor cores for fp64 on the third and fourth gen tensor cores, it needs to be IEEE-compliant FP64 instructions.

6- This leads to my question of understanding how even the 4090 can do well with hqplayer despite having very very very few dedicated fp64 cores. It does have 512 tensor cores, which are really good at matrix math (if hqplayer is matrix math) and if the code utilizes these cores, it makes sense why the card works well. Otherwise, I cant see how the GFX cards can do all the high precision math that’s needed with hqplayer. I think of hqplayer’s math requirements as AI training, which really would need Nvidia’s more fp64 targeted cards (unless you use Tensor cores, which I hope you do code for because this would be a way to get that high end AI training from consumer level cards.)

I really appricate your time. I am a technical thinker and person, I can’t be happy with just A or B, lol.

Yes, higher load doesn’t necessarily mean better result. In this particular case the filter needs to be huge to reach decent quality.

Those two are on the longer side of good filters. poly-sinc-ext2 and poly-sinc-gauss-long/poly-sinc-gauss-hires are just as good.

There is no black and white answer to this. But for example poly-sinc-ext2/ext3 and poly-sinc-gauss group, especially gauss-long/xl(a)/hires are very good.

But don’t worry too much, focus more on what you like. Although if manual says “not recommended” about some algorithm you can take a note about that.

Set your output rate request to the 48k x512 and then clear the “adaptive rate” check box. You can also temporarily force output to any specific rate from Client, instead of “Auto”.

I hope the developer will add support for that too!

I write code for CUDA cores. AI cores are mostly low precision, for example hardware manufacturers have recently added support for fp16 data type for AI purposes. But lot of AI runs also on just 8-bit integer math.

@jussi_laako Question. Since the Pontus seems to emulate your DAC one would guess its DSD performance is quite good for an R2R DAC?

I have just Ares II, but it doesn’t seem to behave in a similar way to my DAC design (Holo Audio and T+A are more like it). Denafrips is quite unique in how it behaves with DSD inputs. I’m still unsure what it is actually doing.

What I’ve tested when you run Denafrips from DSD source, it is best to use the highest possible rate. IOW, DSD512 or DSD1024.

2 Likes

I’ve been testing ASDM5ECV-light on DSD1024 With poly-sin-gauss-long / hires and seems able to work on my setup with rates under 96k, but I still get interrupted droppings.

Will it be possible to increase the buffer time to 500ms on next update ? I think this can make a better pipeline and help heavy DSD lifting?

Many thanks :pray:t2:

Likely it won’t help. If processing is all the time a little bit behind the schedule it won’t help catching up. And most drivers don’t allow such values.

1 Like

Thanks. So which is technically better? DSD or PCM?

It is very similar performance with either one. If you run it in PCM, set DAC Bits to 19 and use one of the noise-shapers, LNS15 is recommended. With DSD, if you can, run it at DSD1024. Otherwise I would recommend DSD512.

1 Like

Ah. Have been running at 16 bits I thought that was the best linearity setting.

Yes, it seemed so from the linearity sweep measurements I’ve seen people doing. But I’ve measured my Ares II with different settings and arrived at 19 bits giving best results when driven from HQPlayer. I also have the FPGA firmware updates installed and the device in NOS mode.

Thanks, so much.

Jussi, thanks for your time and answers.

I use a Devialet 220 with HQP. I assume 24bits is best for this setting in my case, isn’t it? Or would you recommend something else?

Thanks!

Yes, always 192k rate, 24-bit. Devialet uses 192k rate for it’s internal processing. I recommend either TPDF or Gauss1 dither.