Which HQP Filter are you using? [2015-2023]

That would be your case, but that is not a bounding condition.

That would be only necessary for very few corner cases, and many don’t want to wait that long even first time. I’d rather put constraint on the filter so that it refuses to do such conversion ratios. But the initialization time is massively less when going the other way, from 48k family to 44.1k family, like from 48k to 176.4k, totally non-issue. This is typically needed for DSD output cases.

Cache would also need version control, if the filter gets updated the cache needs to get updated, etc. Plus other management functionality. Sometimes you start playback and then find out the setting combination doesn’t run due to lack of CPU power - now you would have a lot of stale data cached that is never useful.

I just don’t think it’s worth the effort… And I try to avoid having too many obscure configuration options, there are already many

Just a suggestion. For me personally, HQPlayer would not be usable unless the auto-rate option was available, since I would spend more time waiting for preprocessing than listening to music.

And yes, you would need version handling, probably easiest to have a xml file with same base name with all needed information, and clear out all caches when upgrading HQPlayer.

Have been trying 3 filters: poly-sinc-ext2, poly-sinc-long-lp and sinc-M. My DAC is RME ADI-2 DAC, as preamp to NC500 power amps with op-amps and Volent VL-2 Paragon speakers.

Here are my impressions:

  • the most practical filter is without doubt the ext2, since it don’t need “Adaptive output rate” and has a fairly short latency. And it sounds good, but not quite as good as the others two.
  • the best sounding for me is sinc-M but its also has a horrible latency (over 10 seconds) and require “Adaptive output rate” to be enabled or it will do preprocessing at every switch of sample rate.
  • in between is the poly-sinc-long-lp which has a 3 second latency and sounds good but not quite as good as sinc-M for my ears. It also require “Adaptive output rate” to be enabled or it will do preprocessing at every switch of sample rate.

I have not tested poly-sinc-long-lp and sinc-M without “Adaptive output rate” since the several minute preprocessing that occur frequently on my playlists makes them to impractical to use.

Any other filter that comes close to these 3 for neutral sound quality?

1 Like

I use poly-sinc-xtr-lp (up to DSD256 as my Fanless server is not powerfull enough to support DSD512).
I like Sinc-M as well, but on my gear I find the bass a little muddier ( although there is probably a bit deeper bass)
Dirk

1 Like

Try poly-sinc-ext2

Already did, it was one of the three I tested. I think it lacked a tiny bit of clarity and details compared to the others. Also just tested the IIR filter which was kind of cool, sounded very laid back analogue.

But I am guessing the sound of the filters depends a lot of the DAC used, since they often (partially) replace the internal up-sampling in the DAC.

1 Like

If you implement a Clone() and an Equals() for your main settings class or struct, implementing memory caching up to a memory limit (configurable, 0 to disable) is trivial. No problems with versions and future settings, and for NUC users (who I would guess don’t restart very often) it would almost be the same. I have done something similar in a project I was working on.

Another idea: allow different settings for different input. For example, I might want to use the mqa filters for MQA input, but poly-sinc-long-lp for 44.1 and something else for DSD. Not easy to implement from a GUI standpoint, but it would add a nice functionality. It would also work well with memory caching.

You make it sound much simpler than it is. OTOH, no configuration options for such obscure things, thank you…

There are already “1x” and “Nx” options for PCM outputs and “1x” and “Nx” options for SDM outputs. I’m not really ready to go further than that because I think these already cover the important use cases. When it comes to Roon, HQPlayer doesn’t know if the source is MQA or not, only when you use HQPlayer standalone to deal with the actual files.

Why I am bugging you about caching is because my typical use case (listen to play lists containing tunes with different sample rates) don’t work unless I have “Adjust sample rate” pressed, but there is a noticeable decrease in sound quality with it pressed, at least for the poly-sinc-long-lp filter.

Maybe try to switch to another filter that doesn’t have such initialization delay, like poly-sinc-ext2 or poly-sinc-xtr (closest ones)?

I’m mostly using poly-sinc-ext2 myself at the moment, after a long while of poly-sinc-short-mp. Actually surprising change, given how different the two are, while delivering similar properties but in a vastly different way. I didn’t expect this change at all.

2 Likes

Closing in on a similar result from different directions ?

Im trying IIR filter now, its a little less exciting but might work good on my system which is slightly to analytical. Haven’t seen it mentioned before so I guess its not a common choice though.

1 Like

Yes, sort of unexpected. There are still differences, so it doesn’t sound the same. But good things are there, and bad things are not there (the ones I’m personally sensitive to). With either one.

Jussi: I like the front end of poly-sinc-ext2, but it has a tiny bit more ringing/reverb on the back end for my ears. Is there a filter variant that sounds like ext2 on pre-ringing but also has a bit less on the tail end?

Im using ext2 now, poly-sinc-long-lp sounded excellent at first, but longer listening shows its a little to forward. I kind of like the tone of IIR though, but it lacks a little space and soundstage compared to the poly-sinc filters.

after spending good amount of trying couple of filters such as: xtr-mp-2s, xtr-lp-2s, ext2 and sinc-M, I am now stuck with sinc-M. I listen to mostly any type of Jazz songs: vocal jazz, fusion jazz, smooth jazz, acid jazz, etc.

For DSF files, can anyone suggest if I should check or uncheck the Direct SDM settings for DSD source?

Having tried just about every combination of options that’s been suggested in the various threads and spending considerable time, these are my views so far:

For reference, I am using an RME ADI-2 DAC, THX AAA 789 amplifier, and either Sennheiser HD800S or Hifiman Arya headphones.

In general, DSD vs PCM seems to be a matter of attack and precision with PCM, vs a more “natural” sound with DSD. Which one I prefer depends on exactly what i’m listening to, and I’ll detail my settings below.

For acoustic/open/orchestral recordings: DSD, with the ext2 filter.
The ext2 filter seems to really open up soundstage compared to all the other filters. And so for orchestral recordings in particular this is fantastic. Listening to tracks such as “Cinderella - Steven Curtis Chapman” or “Caritas (OV) - Deadmau5” are simply beautiful with this filter. Especially in combination with the HD800S’s already incredible soundstage.
Where it falls short is for more pop/electric recordings that benefit from more punchy lowend. The ext2 filter seems to remove some of the slam from bass, and also personally I feel it takes some of the weight and texture out of the lower midrange. Not much, but enough to be noticeable that in some tracks it can be distracting. It makes things sound incredibly open and detailed, but at the expense of making things somewhat “Dry”, which is the only reason its not my go-to filter.

For well mastered music that benefits from ideal transient response: PCM with the short-mp filter
For me this provides simply unbeatable detail retrieval, and whilst the soundstage isn’t as expansive as ext2, the imaging within it is spectacular.The reason I state “Well mastered” is that i’ve found that sibilance can be fatiguing if it is present in the track. This filter is very transparent so mastering flaws will be passed through.
Tracks such as “bob moses - tearing me up” sound sooooo good with this setting. But then others such as “Mystic - Tash Sultana” sound GOOD but a tad on the harsh side with some gear. (not so much an issue on the aryas, but on the HD800S it can be too fatiguing for me personally)

For the majority of music, or for relaxed listening: DSD with the XTR-mp-2s filter
This is what I use for “typical” listening. The lowend weight is fantastic, soundstage is big without being dry, and with the hifiman aryas in particular it REALLY brings tracks like “Fire - Justice” or “What you know - two door cinema club” to life. So much weight, liveliness and just an enjoyable quality to the music. The soundstage is slightly narrower compared to the previous two filters, but the benefits you get in terms of what I can only describe as “Texture” are so worth it for many genres.
Also, with planar headphones…oof yes please~
Also, this filter seems to really help with treble harshness and sibilance, without sacrificing detail retrieval. Making it a very enjoyable filter for use when you are listening non-exclusively, such as doing work etc and not wanting to have flaws in the music distract you too much

3 Likes

In my system, it seems all sinc filters give hard upper frequencies, for example cymbals on many recordings. Using no up-sampling at all or a filter like closed-form or IIR removes that (I am currently using closed-form-M which I like).

@jussi_laako would it be possible to make a sinc filter that don’t have this effect?

That is just opposite to what I hear, so I wonder… I’m allergic to “digitus”, something I call “sounding digital” with harsh and messy high frequecies. Part of this is due to aliasing band of decimation filters used for producing the original content, modern RedBook recordings are especially plagued by this. Another reason for such are leaky oversampling filters.

And for example poly-sinc-short-mp certainly doesn’t exhibit such, while keeping very snappy and fast transients without being harsh. For me, poly-sinc-ext2 reaches similar sonic performance through entirely different route. Apodizing filters clean this up, while non-apodizing ones let that error (messy hash) come through as is.

That error may also make the cymbals and such sound softer, although louder because it adds sort of correlated noise around them. So it is kind of brightened blur if I borrow description from visual domain.

poly-sinc-mqa-mp is much more extreme compared to poly-sinc-short-mp, going away/opposite direction from poly-sinc-ext2.

These are all apodizing options digging out details from the data and cleaning up the errors. You can also substitute the -mp ones with -lp for comparison, but I’d start with the ones I’ve described here. (IIR is naturally -mp by itself, while closed-form is naturally -lp)

Cymbals should sparkle, but not be hazy, hashy or harsh.

poly-sinc-xtr is step away from apoziding of poly-sinc-ext2. And closed-form is strictly non-apodizing high attenuation interpolator instead of something I’d directly call a filter.

4 Likes

Im guessing it depends a lot of the DAC used, in my case RME ADI-2 DAC. If I understand correctly, DACs typically have internal up-sampling, and by doing it externally you replace some or all of that internal up-sampling.

I am currently upsampling to 384, whats the best shaper to use? ND5? My signal path reports 32 bits all the way, so maybe it don’t matter.