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

None, the needed device tree files are missing.

At input side it doesn’t matter, if it goes from smaller number of bits to higher. Like from 24-bit to 32-bit. In such case the values get zero-padded and there’s no loss.

It only matters when there is reduction of bits, like output going from 32-bit to 24-bit, in such case it needs to be taken into account so that the bits that are going to be removed are not in use, but instead zeros.

For output side, you can do it from DAC Bits setting in HQPlayer settings. This setting is also useful for setting precise dither/noise-shaping depth for R2R DACs to further linearize these DAC types.

I decided against this on my RME, mainly due to losing volume control (it converts DSD to PCM in the DAC in order to control volume I believe). After trying lots of things I end up settling on upscaling to PCM although this was very loud on my ADAM F5 speakers. I tried a number of solutions, but landed on using some attenuators, which supposedly don’t affect the sound negatively.

I have used with HQ Player, but I have a USBridge Sig and there isnt a satisfactory NAA solution, so I tend to just let Roon upscale and leave HQPlayer for my main system.

I undoubtedly will fiddle again when bored, its a great DAC and sounds good with Roon and HQ Player, with PCM or DSD.

Is it possible to have the tree from another distribution?
It’s just an RPI3 Compute with a texas usb2 chip and another ASIX ethernet.

GentooPlayerRpi64 ~ # lsusb
Bus 001 Device 004: ID 2a39:3fd3 RME ADI-2 DAC (55688069)
Bus 001 Device 003: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 001 Device 002: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


GentooPlayerRpi64 ~ # lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 2: Dev 4, If 3, Class=Vendor Specific Class, Driver=, 480M
        |__ Port 2: Dev 4, If 1, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 2: Dev 4, If 2, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 2: Dev 4, If 0, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 3: Dev 3, If 0, Class=Vendor Specific Class, Driver=ax88179_178 a, 480M

I use my Allo Sig with GentooPlayer in IPV6 directly connected to my NUC (Roon + HQPlayer) and it works fine.
With 2 USB ethernet cards (Roon = IPV4 and HQP = IPV4 + IPV6).
Roon> HQP in IPV4 and HQP> Allo in IPV6

Well, it would need to be the .dts (device tree source) that matches the kernel version in question. And another challenge is that I wouldn’t be able to test it.

The answer must be from Allo’s side.
Little info except for the ethernet driver 
 the rest is classic RPI (I think
).


USBridgeSig is with RaspberryPi CM3+ Lite Module. The CM3+ Compute Module contains the guts of a Raspberry Pi 3 Model B+ (the BCM2837 processor and 1GB RAM)

I think the clicks is from the DAC, but at lowest ref level they are barely audible so no big deal.

The lowest ref level works very well for me, at HQPlayer volume -10 its still very loud and still lowered enough to prevent clipping. And I am surprised how much better it sounds even at DSD128 which I run (ext2 + ASDM7EC).

1 Like

Anyone have any thoughts on FFT?

A couple interesting observations
 probably nothing Jussi hasn’t already discussed (at this point I may have read all his posts around various forums), but it doesn’t seem that the polynomial-* filters get much discussion.

I ran some tests. Put some 44.1 pink noise though at 4x oversampling and here are the results.


As you can see, there’s a reason why these aren’t exactly “filters” as they do not cut off at Nyquist really at all and contain tons of ultrasonic imaging. However this gets a little more interesting when putting real music though.


Still tons of ultrasonics, but there’s a nice little gap between Nyquist and the ultrasonics. The ultrasonics are also at pretty low levels, and they’re ultrasonic. Apart from maybe downstream hardware turning these into audible distortion, they can’t be that much of a problem. Right? I don’t have anyway to measure my hardware, so these are all just less “real” digital measurements. However, it does give water to the argument that measurements are meaningless or are measuring things that don’t matter (pink noise, full-sample impulses).

Does this gap get larger with >X upsampling?

If the original source contains clipping, things are a little more interesting.

The clipped peaks bridge the gap between sonic and ultrasonic content and the spectrum plot reflects that.

About to go listen to this last track and see what it actually sounds like to me, but I’m really enjoying polynomial-1. I also really like IIR, but polynomial-1 definitely has better bass response so I’ve been leaning that direction.

Would love to see more non-apodizing filters along these lines, maybe with even better performance if possible and the ability to do 1:1 rate conversions.

EDIT: gave the last track a listen, and it sounds a bit less clear than something like poly-sinc-ext-lp but it’s low-if (lonely boy by the black keys). I think this test just further cemented my belief that non-apodizing filters and the assumption that everything you hear is intentional is the way to go. (Garbage in, garbage out is a fact of life)

Properly band limited music sounds great with polynomial-1, even with the reduced performance in the frequency domain.

Here’s an example of a track that sounds :drooling_face: with polynomial-1

Let the validation or refutation begin!

Ok, one more edit: just wanted to point out that I’ve seen spectrograms of SACD rips or other high res files with just as much ultrasonics and that doesn’t seem to turn people off.

2 Likes

The HQ Player Manual says as follows regarding the polynomial interpolators:

polynomial-1
Polynomial interpolation. Most natural polynomial interpolation for audio. Only two samples of pre- and post-echo. Frequency response rolls off slowly in the top octave. Poor stop-band rejection and will thus leak fairly high amount of ultrasonic noise. These type of filters are sometimes referred to as “non-ringing” by some manufacturers. Not recommended.

polynomial-2
Similar to polynomial-1, but higher stop-band rejection with the expense of being a bit less natural for audio. Not recommended.

1 Like

minring-FIR maybe as intermediate solution? Or something like sinc-L at extreme?

For this reason, apodizing filters deal with a lot of problems in source content. Because there certainly is a lot of problematic content that needs some help to clean up. Giving a pretty consistent performance too.

minring-FIR doesn’t seem to have as “black” a background (compared to something like closed-form or poly-sinc-xtr), perhaps that’s a function of the algorithm reducing the ringing? I do like sinc-L, it’s a difficult choice for me between sinc-L and the closed-form filters.

Would something like a short closed-form filter make sense? I think what I might be after is a short, linear, non-apodizing filter.

They’re noticeably softer to me, and I really enjoy nice strong transients and that crisp sound over consistency between recordings. I’m super into almost being able to feel the texture of something like a finger sliding down a guitar string between notes.

closed-form-fast is that. Also something like poly-sinc-hb is closer to such. Because closed-form cannot be really shortened beyond closed-form-fast much without adverse effects.

Part of that “crispiness” is aliasing and other errors of the original data. Apodizing filters like poly-sinc-ext2 give you more real version. When there is nothing to fix in the source, poly-sinc-ext2 will sound closer to sinc-L. Otherwise your closest trades for non-apodizing while fixing source errors is poly-sinc-ext2 and sinc-S. Or alternatively taking other route with poly-sinc-short / poly-sinc / poly-sinc-long.

Fact is that most modern content is junk without apodizing filters, because of bad ADC decimation filters.

4 Likes

Definitely true, I think that’s part of why I listen to mostly music that’s 40+ years old, not that helps with the A/D conversion, but at least it’s mixed well. Time for some more experimentation

er I mean listening :rofl:

Good example are Pink Floyd albums. The first CD releases of DSOTM are pretty OK transfers to digital. While the latest remasters have all the modern digital problems


1 Like

I hate to say it, because digital is great in so many ways, but it makes things too easy (or at least seems to). Analog recording techniques and the physical limitations of media meant that a mastery of technique was required. Seems a lot of those skills weren’t passed on to the following generations. We’ve democratized the tools without democratizing the know how to produce good recordings.

I’m going to give poly-sinc-ext2 a serious chance. It’s the one you prefer and you’ve written all these filters so, in theory, it should be somewhat objectively the best all around filter. And flipping back and forth between poly-hb, sinc-s, and ext2 on this track has about sold me on it.

I agree whole heartedly about the newer remasters, not only junk, but also given up the final frontier against loudness war. Clearly audible in most titles I have both as an original CD master ripped very accurately to my NAS and the, sorry to say, many very bad remasters available on Tidal.
It also corresponds to my dear friend and owner of Enric Productions, a skilled sound engineer in Swedish film making, who express large concern about modern studio work.
He, btw, really liked the HQP upsample from CD to max resolution 24/96 in my JBL LSR 4328P monitors, identical to his, when I played CD tracks using Poly-Sinc-Ext2 and the shaped dither.
However my wife, how I suspect have abnormal high pitch hearing often complain about noise high up in frequency with above setting (Ext2 and shaped dither) and some, not all, tracks. I can’t hear it. Just the power supply noise in the monitors makes me blow up sometimes and wonder why JBL, Harman/Kardon and Crown never seem to be able to co-operate across the line (just a btw-remark)

Been following this thread for a while and it gets interesting every so often, thank you @spacecase for posting and thank you @jussi_laako as always.
I am not at the “professional level” of many on this forum and I have a question.

I understand (since I have been using HQPe for a few years) that the main issue with modern digital content including streaming from the major platforms (Qobuz / Tidal) and online downloadable content are:
:

  • Increased levels on the source content (loudness wars)
  • Bad ADC decimation filtering when content was created on digital

That’s why upsampling (or would it be more appropriate to say “resampling”) we have the ability to “fix” or “correct” some of the original “errors”

My question now, related directly to filters, the filters provide aliasing correction during the process and the noise shapers / modulators will move the errors / noise over to ultrasonic.

  • The ultrasonic range used is it above 64kHz or way above over 300 kHz and such?
  • HiRes content provided by Qobuz / NativeDSD and such, DSD256 and PCM 96/192 does it still have the same artifacts and problems related to high levels and noise or has it been curated? I guess high levels yes but noise could be fixed by some “resampling”
  • Will HQP during the resampling process correct watermarking? or is it really SSW that undetectable and “harmless”

I know I’m a little bit OT here but this is related to filters as well.

Thanks

EDIT 1: I know my statements and questions could be oversimplifying things like the ultrasonic used could be related to the shaper use and could vary, or some 96/192 content could have problems and some not, please feel free to get technical and detailed. Thanks

EDIT 2: I see now the ultrasonics start just after Nyquist, I am not just sure if these ultrasonics are a result of the filter or the noise shaper, it seems to be the filter result just not sure

I guess you are referring to the Alan’s Parson mastering here? which is superb