• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Software Players & Filters

manisandher

Addicted to Fun and Learning
Joined
Nov 6, 2016
Messages
656
Likes
612
Location
Royal Leamington Spa, UK
Background

Many software players (and an increasing number of DACs) offer ‘leaky’ filters that are not optimized in the frequency domain. (Even pro companies like RME offer 'NOS filters’ in their DACs nowadays!) The rationale cited is that such ‘soft’/’smooth’/’slow’ filters are optimized in the time domain instead, which some believe is more important for sound quality.

Is this true? Let’s see if we can find out…

Setup:

music server -ethernet-> audio PC -USB-> DAC -analogue-> ADC -USB-> laptop

(More hardware/software details at end.)

I started out with a Reference Recordings 24/176.4 file, the main reasons being SQ and provenance. It would have been recorded judiciously by Keith Johnson, originally in analogue and mastered for digital on a Pacific Microsonics Model Two, a machine I know very well. It would have passed through a passive analogue anti-alias filter (no over-sampling) and digitized using full ladder converters (no sigma-delta modulation).

But I wanted to use a 16/44.1 file for the comparison, as 99.9% of my music is in this format. So, I decimated the RR 24/176.4 file down to 16/44.1 (with TPDF dither).

I could have kept things purely in the digital domain, but decided to capture the analogue output of my DAC instead, as ultimately, it’s here that ‘the rubber meets the road’.

I took five 24/176.4 captures of the analogue output of my DAC:
  • original RR 24/176.4 file played back bit-perfectly (to provide a reference file for listening comparisons)
  • 16/44.1 file up-sampled to 352.8 using HQPlayer’s sinc-M filter (& NS5 noise-shaping)
  • 16/44.1 file up-sampled to 352.8 using HQPlayer’s poly-sinc-lp filter (& TPDF dither)
  • 16/44.1 file up-sampled to 352.8 using Roon’s smooth-mp filter
  • 16/44.1 file up-sampled to 352.8 using XXHighEnd’s Arc Prediction filter
The files

1. Bit-perfect (reference file)

https://drive.google.com/file/d/1btTKG8xnMQQYvzNQpawbKeHyLG6Lu0T3/view?usp=sharing

1. Bit-perfect 24_176.4.JPG


As you can see, there’s ‘real’ content right up to ~50 kHz (though at a very low level by that point).

2. HQPlayer sinc-M & NS5

https://drive.google.com/file/d/1pOP8uc3xNVWWNrnxeE6XffCwMzrZpoIn/view?usp=sharing

2. HQP sinc-M NS5 16_44.1.JPG


A pretty much ‘textbook’ result, with the signal being massively attenuated well before Nyquist.

3. HQPlayer poly-sinc-lp & TPDF

https://drive.google.com/file/d/1SzK-6_7atGeRCCLjgR86HjcQ1MP7GeX1/view?usp=sharing

3. HQP poly-sinc-lp TPDF 16_44.1.JPG


Here, the signal is ~80dB down by Nyquist. I suspect the filter designer considers this a good balance between frequency and time optimization.

4. Roon smooth-mp

https://drive.google.com/file/d/1HdNMz31eRmEllqYnz3_5mePKs8tdXREx/view?usp=sharing

4. Roon smooth-mp 16_44.1.JPG


A much ‘leakier’ filter than the two previous two. Everything above 22.05 kHz is imaging (not to be mistaken for the real ultrasonic content in the reference file).

5. XXHighEnd Arc Prediction

https://drive.google.com/file/d/1q57OQlC_3XQS04GNK5R1iUw6q4YMWarc/view?usp=sharing

5. XXHE Arc Prediction 16_44.1.JPG


The ‘leakiest’ filter of all with lots of imaging above 22.05 kHz. But even so, it could be argued that there’s still less ultrasonic noise here than there is in a DSD64 file (derived from the 24/176.4):

6. Original DSD64.JPG


However, the DSD file has ‘real’ content up to around 34 kHz. Also, the noise above 34 kHz is not correlated with the music (whereas imaging obviously is).

Findings

If sine tones are to be believed, I can’t hear much above 12 kHz nowadays. Irrespective of filter, the FFTs look virtually identical below 12 kHz... and yet… the captures all sound distinctly different to me. (I’d be happy to describe the differences in detail later.)

Moreover, the ‘textbook’ filter does NOT sound closest to the reference file (to my ears).

I’ve linked all the files. You’re welcome to analyse these yourself, or even, God forbid, take a listen .

Mani.

******************************

Hardware/Software

Music Server
  • SMPS ATX
  • Supermicro mobo
  • i3 CPU
  • W10
  • Roon Core v1.7_610
  • music storage
Audio PC
  • ultra-fast linear PSU -> HDPlex 800 DC-ATX
  • Xeon 14/28 CPU
  • W10 loaded into RAM
  • no SSDs or HDDs attached to mobo
  • XXHighEnd v2.11 (Kernel Streaming)
  • HQPlayer v4.7.1 (WASAPI)
  • RoonBridge v1.0_172 (WASAPI)
DAC
  • Phasure NOS1
  • 8x BB PCM1704U-K chips
  • 24/768 capable
  • no internal upsampling/filtering
  • no SDM
  • 2000 V/μs slew rate
ADC
  • RME ADI-2 Pro FS R
  • set to 24/176.4
  • ‘Slow’ filter (little risk of aliasing at these rates)
Laptop
  • W10
  • RME Digicheck
 

Soniclife

Major Contributor
Forum Donor
Joined
Apr 13, 2017
Messages
4,516
Likes
5,440
Location
UK
If sine tones are to be believed, I can’t hear much above 12 kHz nowadays. Irrespective of filter, the FFTs look virtually identical below 12 kHz... and yet… the captures all sound distinctly different to me. (I’d be happy to describe the differences in detail later.)
Please do.

Are you able to capture Roon's Precise Linear phase option?
 

pkane

Master Contributor
Forum Donor
Joined
Aug 18, 2017
Messages
5,724
Likes
10,418
Location
North-East
Background

Many software players (and an increasing number of DACs) offer ‘leaky’ filters that are not optimized in the frequency domain. (Even pro companies like RME offer 'NOS filters’ in their DACs nowadays!) The rationale cited is that such ‘soft’/’smooth’/’slow’ filters are optimized in the time domain instead, which some believe is more important for sound quality.

Is this true? Let’s see if we can find out…

Setup:

music server -ethernet-> audio PC -USB-> DAC -analogue-> ADC -USB-> laptop

(More hardware/software details at end.)

I started out with a Reference Recordings 24/176.4 file, the main reasons being SQ and provenance. It would have been recorded judiciously by Keith Johnson, originally in analogue and mastered for digital on a Pacific Microsonics Model Two, a machine I know very well. It would have passed through a passive analogue anti-alias filter (no over-sampling) and digitized using full ladder converters (no sigma-delta modulation).

But I wanted to use a 16/44.1 file for the comparison, as 99.9% of my music is in this format. So, I decimated the RR 24/176.4 file down to 16/44.1 (with TPDF dither).

I could have kept things purely in the digital domain, but decided to capture the analogue output of my DAC instead, as ultimately, it’s here that ‘the rubber meets the road’.

I took five 24/176.4 captures of the analogue output of my DAC:
  • original RR 24/176.4 file played back bit-perfectly (to provide a reference file for listening comparisons)
  • 16/44.1 file up-sampled to 352.8 using HQPlayer’s sinc-M filter (& NS5 noise-shaping)
  • 16/44.1 file up-sampled to 352.8 using HQPlayer’s poly-sinc-lp filter (& TPDF dither)
  • 16/44.1 file up-sampled to 352.8 using Roon’s smooth-mp filter
  • 16/44.1 file up-sampled to 352.8 using XXHighEnd’s Arc Prediction filter
The files

1. Bit-perfect (reference file)

https://drive.google.com/file/d/1btTKG8xnMQQYvzNQpawbKeHyLG6Lu0T3/view?usp=sharing

View attachment 86376

As you can see, there’s ‘real’ content right up to ~50 kHz (though at a very low level by that point).

2. HQPlayer sinc-M & NS5

https://drive.google.com/file/d/1pOP8uc3xNVWWNrnxeE6XffCwMzrZpoIn/view?usp=sharing

View attachment 86377

A pretty much ‘textbook’ result, with the signal being massively attenuated well before Nyquist.

3. HQPlayer poly-sinc-lp & TPDF

https://drive.google.com/file/d/1SzK-6_7atGeRCCLjgR86HjcQ1MP7GeX1/view?usp=sharing

View attachment 86379

Here, the signal is ~80dB down by Nyquist. I suspect the filter designer considers this a good balance between frequency and time optimization.

4. Roon smooth-mp

https://drive.google.com/file/d/1HdNMz31eRmEllqYnz3_5mePKs8tdXREx/view?usp=sharing

View attachment 86380

A much ‘leakier’ filter than the two previous two. Everything above 22.05 kHz is imaging (not to be mistaken for the real ultrasonic content in the reference file).

5. XXHighEnd Arc Prediction

https://drive.google.com/file/d/1q57OQlC_3XQS04GNK5R1iUw6q4YMWarc/view?usp=sharing

View attachment 86381

The ‘leakiest’ filter of all with lots of imaging above 22.05 kHz. But even so, it could be argued that there’s still less ultrasonic noise here than there is in a DSD64 file (derived from the 24/176.4):

View attachment 86382

However, the DSD file has ‘real’ content up to around 34 kHz. Also, the noise above 34 kHz is not correlated with the music (whereas imaging obviously is).

Findings

If sine tones are to be believed, I can’t hear much above 12 kHz nowadays. Irrespective of filter, the FFTs look virtually identical below 12 kHz... and yet… the captures all sound distinctly different to me. (I’d be happy to describe the differences in detail later.)

Moreover, the ‘textbook’ filter does NOT sound closest to the reference file (to my ears).

I’ve linked all the files. You’re welcome to analyse these yourself, or even, God forbid, take a listen .

Mani.

******************************

Hardware/Software

Music Server
  • SMPS ATX
  • Supermicro mobo
  • i3 CPU
  • W10
  • Roon Core v1.7_610
  • music storage
Audio PC
  • ultra-fast linear PSU -> HDPlex 800 DC-ATX
  • Xeon 14/28 CPU
  • W10 loaded into RAM
  • no SSDs or HDDs attached to mobo
  • XXHighEnd v2.11 (Kernel Streaming)
  • HQPlayer v4.7.1 (WASAPI)
  • RoonBridge v1.0_172 (WASAPI)
DAC
  • Phasure NOS1
  • 8x BB PCM1704U-K chips
  • 24/768 capable
  • no internal upsampling/filtering
  • no SDM
  • 2000 V/μs slew rate
ADC
  • RME ADI-2 Pro FS R
  • set to 24/176.4
  • ‘Slow’ filter (little risk of aliasing at these rates)
Laptop
  • W10
  • RME Digicheck

My answer to this on AS forum, repeated below for convenience:

Mani,

Leaky filters that don’t attenuate enough by Nyquist cause images below Nyquist frequency, in the audible range. It’s not surprising that you might hear them, as they can certainly mess with below 22kHz. Also, you need to examine the structure of individual filters. Some may introduce other artifacts in the audible range, from frequency variations to delays and phase distortions. Depends on the filter design and implementation. And finally, of course you can use whatever filter sounds best to you, including no filter at all, but that doesn't mean it's reproducing the content more accurately. (When one joins the objectivist party one is sworn to keep repeating this mantra constantly, so I'm just fulfilling my quota :p).
 

Soniclife

Major Contributor
Forum Donor
Joined
Apr 13, 2017
Messages
4,516
Likes
5,440
Location
UK
The rationale cited is that such ‘soft’/’smooth’/’slow’ filters are optimized in the time domain instead, which some believe is more important for sound quality.
You have shown that the filters leak, as expected, but I don't see anything that addresses that they are correctly optimised in the time domain. I seem to remember Archimago doing this and showing that minimum phase had worse phase with real music.
 
OP
manisandher

manisandher

Addicted to Fun and Learning
Joined
Nov 6, 2016
Messages
656
Likes
612
Location
Royal Leamington Spa, UK
Leaky filters that don’t attenuate enough by Nyquist cause images below Nyquist frequency, in the audible range.

Only when resampling to a lower rate.

I thought that was exactly what Mani was doing?

No. I decimated the original 24/176 file to 16/44.1 using the anti-alias filter (and TPDF dither) provided in the dBpoweramp converter.

Mani.
 
OP
manisandher

manisandher

Addicted to Fun and Learning
Joined
Nov 6, 2016
Messages
656
Likes
612
Location
Royal Leamington Spa, UK
Ah, that part wasn't clear to me.

The resulting 16/44.1 file (free from any aliasing in the audioband) was then upsampled by the software players to 352.8 during playback, using their respective reconstruction filters.

Mani.
 

ElNino

Addicted to Fun and Learning
Joined
Sep 26, 2019
Messages
558
Likes
727
If sine tones are to be believed, I can’t hear much above 12 kHz nowadays. Irrespective of filter, the FFTs look virtually identical below 12 kHz... and yet… the captures all sound distinctly different to me. (I’d be happy to describe the differences in detail later.)

Moreover, the ‘textbook’ filter does NOT sound closest to the reference file (to my ears).

I'm curious, which of the filters does sound closest to the reference file in your view?

I used to be a bit of a DSP nerd in grad school, and digital filtering is a topic that's near and dear to my heart, but I don't post much about this because arguing against the "textbook" 0.5fs linear phase filter for audio tends to bring out people who don't understand the tradeoffs in digital filter design. IMHO, intermediate phase 0.54fs filtering should be the default for 44.1/48kHz audio, not 0.5fs linear phase.
 
OP
manisandher

manisandher

Addicted to Fun and Learning
Joined
Nov 6, 2016
Messages
656
Likes
612
Location
Royal Leamington Spa, UK
Are you able to capture Roon's Precise Linear phase option?

No, I dismantled the setup a while ago. But I suspect it'd be close to HQP's poly-sinc-lp filter.

You have shown that the filters leak, as expected, but I don't see anything that addresses that they are correctly optimised in the time domain.

I don't know any way of doing this other than listening and comparing them to a reference... hence this thread.

Mani.
 
OP
manisandher

manisandher

Addicted to Fun and Learning
Joined
Nov 6, 2016
Messages
656
Likes
612
Location
Royal Leamington Spa, UK
I used to be a bit of a DSP nerd in grad school, and digital filtering is a topic that's near and dear to my heart, but I don't post much about this because arguing against the "textbook" 0.5fs linear phase filter for audio tends to bring out people who don't understand the tradeoffs in digital filter design. IMHO, intermediate phase 0.54fs filtering should be the default for 44.1/48kHz audio, not 0.5fs linear phase.

Interesting. I was playing some music with a friend a couple of weeks ago, and when I switched from Roon's 'precise linear phase' to its 'smooth minimum phase' filter, his face lit up. "Oh that sounds a lot better" was his reaction.

Purely subjective, I know.

I'm curious, which of the filters does sound closest to the reference file in your view?

I'd rather not say... at this point.

Mani.
 
OP
manisandher

manisandher

Addicted to Fun and Learning
Joined
Nov 6, 2016
Messages
656
Likes
612
Location
Royal Leamington Spa, UK
And finally, of course you can use whatever filter sounds best to you, including no filter at all, but that doesn't mean it's reproducing the content more accurately.

My reply from AS forum:

Paul, that's why I included the reference file. It's not at all about which filter sounds best to me, but rather which filter sounds closest to the reference.

And to my ears, it's not the 'textbook' filter.

Mani.
 

ElNino

Addicted to Fun and Learning
Joined
Sep 26, 2019
Messages
558
Likes
727
Interesting. I was playing some music with a friend a couple of weeks ago, and when I switched from Roon's 'precise linear phase' to its 'smooth minimum phase' filter, his face lit up. "Oh that sounds a lot better" was his reaction.

If your ADI-2 is the recent version with the AK4493, you might try experimenting with not upsampling and using the SD LD filter when listening with your friend. This is an intermediate phase filter that represents a pretty good compromise -- basically linear phase to 17kHz, flat FR to 20kHz, good stopband attenuation, reasonable levels of pre-ringing, substantially less post-ringing than minimum phase. It's hard to do better than this.
 
OP
manisandher

manisandher

Addicted to Fun and Learning
Joined
Nov 6, 2016
Messages
656
Likes
612
Location
Royal Leamington Spa, UK
If your ADI-2 is the recent version with the AK4493, you might try experimenting with not upsampling and using the SD LD filter when listening with your friend.

Yes, my ADI-2 Pro has this filter, but I use it purely as an ADC, and not a DAC. My DAC is the Phasure NOS1 - a non-oversampling, filterless DAC, with no SDM. But unlike most NOS DACs, it's capable of accepting up to 24/768. So it relies on the software player to do the filtering. Perfect for playing around with filters and really hearing how they sound.

All the files I linked were taken with the Phasure DAC feeding the RME ADI-2 Pro.

Mani.
 

ElNino

Addicted to Fun and Learning
Joined
Sep 26, 2019
Messages
558
Likes
727
Yes, my ADI-2 Pro has this filter, but I use it purely as an ADC, and not a DAC. My DAC is the Phasure NOS1 - a non-oversampling, filterless DAC, with no SDM. But unlike most NOS DACs, it's capable of accepting up to 24/768. So it relies on the software player to do the filtering. Perfect for playing around with filters and really hearing how they sound.

Oh, I missed that in your original post. That's a nice unit -- I had plans to build something almost exactly like that for years (8x PCM1704, software filtering), then had kids and lost the time. I have experimented with software filtering to a 4x PCM1704 DAC though.
 
OP
manisandher

manisandher

Addicted to Fun and Learning
Joined
Nov 6, 2016
Messages
656
Likes
612
Location
Royal Leamington Spa, UK
Top Bottom