HQPlayer Impressions and Settings Rolling Thread
Mar 31, 2024 at 8:26 PM Post #961 of 1,431
@jlaako
If one was to use PGGB to upsample files to 16fs/24 bit, in your opinion, would be the best SDM Nx filter(s) to play those files?

Set the 20 kHz filter and use what ever you like. It doesn't matter, since you already have a full track length of constant ringing. Plus truncated transients everywhere else except exactly center sample of the entire track. (PGGB uses filter that has length equal to length of the track, so it rings for the track's length)
 
Last edited:
Mar 31, 2024 at 8:34 PM Post #962 of 1,431
Set the 20 kHz filter and use what ever you like. It doesn't matter, since you already have a full track length of constant ringing. Plus truncated transients everywhere else except exactly center sample of the entire track. (PGGB uses filter that has length equal to length of the track, so it rings for the track's length)
So are there any use cases where the combination of PGGB and HQPlayer are desirable? I'll take it from your previous response you believe there isn't but I want to make sure I'm not missing something.
 
Mar 31, 2024 at 8:36 PM Post #963 of 1,431
So are there any use cases where the combination of PGGB and HQPlayer are desirable? I'll take it from your previous response you believe there isn't but I want to make sure I'm not missing something.

Using 20 kHz filter with PGGB'd content is much as you can do to fix the damage. But I don't really see the point why in first place...
 
Mar 31, 2024 at 8:40 PM Post #964 of 1,431
But I don't really see the point why in first place...
The idea was to address one or more of the four dimensions you referenced earlier, so that one could apply HQPlayer to address/focus on the remaining ones.
 
Mar 31, 2024 at 9:22 PM Post #965 of 1,431
The idea was to address one or more of the four dimensions you referenced earlier, so that one could apply HQPlayer to address/focus on the remaining ones.

They all need to be addressed simultaneously since they are related to each other mathematically. You cannot do one at a time, or you will end up with worst of all. PGGB is like Chord taken to even further extreme just looking at making frequency domain filter steepness to has high as possible. Which means it will span as much time as possible (ring as much as possible). Single event in the middle of the track can affect even first sample of the track. That can be several minutes before that even happened in real life.

Longer the filter, steeper it gets. So instead of rolling off from 0 dB to -120 dB (for example) within 10 Hz wide band, it rolls off in 1 Hz wide frequency band. But it also makes the time domain response 10 times worse. So a single transient will spread over 10 times longer time span. If we define audio band as 20 kHz and take RedBook which has 22.05 kHz bandwidth. This gives us 2.05 kHz of "spare" bandwidth. RedBook has SINAD of 96 dB. Making a filter that achieves 0 to -96 dB in 2.05 kHz wide band to double is somewhere around 100 taps. That is a bit over one millisecond. 44.1k 24-bit has SINAD of 144 dB (44.1k 32-bit has 192 dB), so that is more challenging. Although that is already beyond what analog domain can represent (a bit over 120 dB, 20 - 22 bits). For example HQPlayer poly-sinc-gauss-long can roll off between 20 kHz and 22.05 kHz from 0 dB to over -300 dB. That is more than 100 000 times more than what is possible to represent in analog domain, and still within short time. So you already have a huge dynamic safety factor (way over 100 dB) and filter steepness, while still having a good time domain performance. If you are OK with "just" over 32-bit worth (12 bits worth of safety factor, just 4000 times safety factor) and have even better time domain, you could use poly-sinc-gauss-short.

The data you have near 22.05k is anyway complete junk (in RedBook).
 
Last edited:
Mar 31, 2024 at 10:18 PM Post #966 of 1,431
Let's say we are producing RedBook content, thus we are doing 44100 samples per second. And we have a 88200 taps long filter. This means the filter is looking into one second in future and one second in history to produce each sample. Thus a transient blip one second in future will start affecting your output right now. And then it will periodically keep growing louder for one second as it becomes closer in time. Once it has passed the actual event climax, it will similarly keep periodically fading away for one second. If you have multiple such transients spaced closer than one second from each other, they will end up blending to each other, keeping the "build-up" in between at higher level. Closer these are to each other, higher the build-up. In other words, these transients will "collide" with each other. Near beginning of the track you don't have visibility to the "future", and near the end you don't have visibility past the "end". Longer the filter, longer this "uncertain" area is.

Certainly it is not beneficial that a drum hit played by musician one minute in future is affecting your output sample right now. And the samples you are playing right now are not useful for reproducing what the musician will play one minute later in future.

At the other extreme, single sample doesn't represent anything. You could have had the actual drum hit somewhere between two RedBook samples in time. This event needs to be reconstructed from few surrounding samples. 4410 samples gets you down to 10 Hz.
 
Apr 1, 2024 at 2:29 PM Post #967 of 1,431
On the other hand, a leaky filter will cause aliasing in the in-band audio (MQA's filters, and similar short, minimum-phase filters are good examples).
You're conflating aliasing and imaging. A leaky interpolation filter in the DAC will cause mirrored frequencies to appear already above fs/2. The interpolation filter is basically used to effectively increase the sampling rate and therefore, push out the mirrored frequencies way outside of the audio band. This lets the DACs actual analog reconstruction filter to be not as steep and to operate way outside of the range of the original fs/2. Some of this is explained a page or two later even in your own link from audiophilestyle but if you don't want to wade through forum posts here's a pdf from analog devices that properly explains the point of the interpolation filter so you don't have rely on this simplified explanation either.
 
Apr 1, 2024 at 10:48 PM Post #968 of 1,431
Let's say we are producing RedBook content, thus we are doing 44100 samples per second. And we have a 88200 taps long filter. This means the filter is looking into one second in future and one second in history to produce each sample. Thus a transient blip one second in future will start affecting your output right now. And then it will periodically keep growing louder for one second as it becomes closer in time. Once it has passed the actual event climax, it will similarly keep periodically fading away for one second. If you have multiple such transients spaced closer than one second from each other, they will end up blending to each other, keeping the "build-up" in between at higher level. Closer these are to each other, higher the build-up. In other words, these transients will "collide" with each other. Near beginning of the track you don't have visibility to the "future", and near the end you don't have visibility past the "end". Longer the filter, longer this "uncertain" area is.

Certainly it is not beneficial that a drum hit played by musician one minute in future is affecting your output sample right now. And the samples you are playing right now are not useful for reproducing what the musician will play one minute later in future.

At the other extreme, single sample doesn't represent anything. You could have had the actual drum hit somewhere between two RedBook samples in time. This event needs to be reconstructed from few surrounding samples. 4410 samples gets you down to 10 Hz.
So, by that logic, I should be hearing a blurred mess from the Chord DACs using the MScaler, which is the opposite of what I'm hearing. I don't understand why what you're explaining conflicts with what I'm experiencing.
 
Apr 2, 2024 at 3:25 AM Post #969 of 1,431
So, by that logic, I should be hearing a blurred mess from the Chord DACs using the MScaler, which is the opposite of what I'm hearing. I don't understand why what you're explaining conflicts with what I'm experiencing.

That's about comparing between two cases and searching for differences. I clearly hear differences in transient details between short and long filters. But of course not with every recording. Transient smearing with long filters is easier to find with recordings which contain fast sounds. It is not about music content with slower transients.

Transient smearing is one of more things which may degrade sound. Others may be for example computer generated noise, interconnect cables, poorest element in chain etc. Also DAC chip oversampling filters and modulators cause distortion, which is eliminated (or lowered) by using direct DSD path with suitable HQPlayer filters and modulators. One needs at first to clean his chain so it brings the possibility to hear what Jussi writes about.

For example, I have good experience with Topping HS02 followed by two iFi iSilencers. Others are using Intona. That's without NAA and with DAC which doesn't have USB input galvanically isolated. Without USB isolation the computer generated noise also affects transients so it is then about effect of more things degrading sound and about finding the circumstances under which listening is more convenient. Smearing may help to mask other issues in the chain. With such a chain one may prefer long filters with any music content but that's for the price of sound quality losses. Generally, there may be imperfections present in a listening chain, which are masking the transient smearing Jussi is talking about.

I will post a short snippet of a recording which is for my ears easier listenable with short filters.
 
Apr 2, 2024 at 4:10 AM Post #970 of 1,431
Here is a 60 seconds example snippet to test transient smear with long filters. I recommend to use direct DSD (when available). If not, with ESS chip based DACs I recommend to use DSD input. DSD256 rate is IMO sufficient to get the result. Turn off any additional DSP (EQ, convolutions, headphone crossfeeds...) in both convolution dialog and Matrix pipeline dialog.

I suggest to use a quiet time for such a comparison. Later evening time ... Be patient, don't be hurry with a reaction.

Some recommendations which short filters you can use to compare which which long filters:
Short filters to try: poly-sinc-xtr-short-mp, poly-sinc-gauss-short
Long filters to compare the short filters with: sinc-Mx, sinc-LI

Of course, try any other ones. For example if your CPU/GPU and amount of RAM/GRAM allows sinc-long and sinc-L, compare them with short ones.

If you are able to understand the difference with all additional DSP turned off: If you are usually using some eq, headphone crossfeed or similar, try to re-evaluate the difference with your DSP turned on.

With the recording the snippet is coming from I can for example observe some smearing caused by Bauer crossfeed, which is integrated in HQPlayer Matrix Pipeline dialog as an option. I discussed just this topic some time ago with copy_of_a user on AS forum. With Goodherz CanOpener I did not experience such a smearing (but one cannot setup that one in HQPlayer). With majority of recordings I found no issues in using HQPlayer's Bauer crossfeed.
 
Last edited:
Apr 2, 2024 at 4:41 AM Post #971 of 1,431
Here is a 60 seconds example snippet to test transient smear with long filters. I recommend to use direct DSD (when available). If not, with ESS chip based DACs I recommend to use DSD input. DSD256 rate is IMO sufficient to get the result. Turn off any additional DSP (EQ, convolutions, headphone crossfeeds...) in both convolution dialog and Matrix pipeline dialog.

I suggest to use a quiet time for such a comparison. Later evening time ... Be patient, don't be hurry with a reaction.

Some recommendations which short filters you can use to compare which which long filters:
Short filters to try: poly-sinc-xtr-short-mp, poly-sinc-gauss-short
Long filters to compare the short filters with: sinc-Mx, sinc-LI

Of course, try any other ones. For example if your CPU/GPU allows sinc-long and sinc-L, compare them with short ones.

If you are able to understand the difference with all additional DSP turned off: If you are usually using some eq, headphone crossfeed or similar, try to re-evaluate the difference with your DSP turned on.

With the recording the snippet is coming from I can for example observe some smearing caused by Bauer crossfeed, which is integrated in HQPlayer Matrix Pipeline dialog as an option. I discussed just this topic some time ago with copy_of_a user on AS forum. With Goodherz CanOpener I did not experience such a smearing (but one cannot setup that one in HQPlayer). With majority of recordings I found no issues in using HQPlayer's Bauer crossfeed.
Thanks for the example. However, up-sampling to DSD in and of itself is going to smear transients, is it not? I'll try it with different filters with PCM up-sampling, but your comment has given me a thought as to where the confusion is in the discussion.
 
Last edited:
Apr 2, 2024 at 5:49 AM Post #972 of 1,431
up-sampling to DSD in and of itself is going to smear transients, is it not?
That again one of your sensational and generally formulated standings in a chain without proper comparison with other approaches and thus without context, so I consider it to be incorrect.
 
Apr 2, 2024 at 6:15 AM Post #973 of 1,431
So, by that logic, I should be hearing a blurred mess from the Chord DACs using the MScaler, which is the opposite of what I'm hearing. I don't understand why what you're explaining conflicts with what I'm experiencing.

Yes, the ringing is a tone that happens at the filter's cut-off frequency, hence term ringing is accurate to describe it. So for RedBook it happens at 22.05 kHz. This may get accentuated on loudspeakers with metal dome tweeters that have a resonance peak near this frequency. This resonance can be as much as +25 dB depending on tweeter. This can cause listening fatigue ("digitus") and make the transients sound harsh, accentuated and shimmery when the energy gets spread and mixed, and intermodulated with other frequencies producing lower intermodulation product frequencies.

But I made two practical examples to demonstrate this. I created a source file with 6 kHz sampling rate that has a periodic short "snap"/"pop" transient. Then I upsampled this by 8x to 48k output rate, stored in a FLAC file. So these ones ring at 3 kHz. Both cases are with linear phase filter.

One with a short filter:
https://www.sonarnerd.net/tmp/short.flac

One with a long filter:
https://www.sonarnerd.net/tmp/long.flac

Also good demonstration why steep (IOW, long) linear-phase cross-over filters are bad idea, and why room correction filters are primarily minimum-phase. The pre-ringing is not masked by hearing, while hearing has a masking period shortly after a transient.
 
Last edited:
Apr 2, 2024 at 6:26 AM Post #974 of 1,431
Thanks for the example. However, up-sampling to DSD in and of itself is going to smear transients, is it not?

No, of course it is not. Why would it?

For example DSD256 can go full signal swing in a time equivalent to about 500 kHz frequency. Should be enough for your music content!
 
Apr 2, 2024 at 7:59 AM Post #975 of 1,431
really good song to test for preringing if you play around with fir vs iir... it became a mess with a highpassfilter at bass frequencys and FIR
 

Users who are viewing this thread

Back
Top