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

Direct SDM makes DSD sources pass through unprocessed. It is not related as such to “PCM settings” or “SDM settings” below. PCM settings apply for PCM output mode and SDM settings apply to SDM output mode. Direct SDM only excepts DSD sources, and also locks volume setting of PCM sources to fixed -3 dBFS.

Minimum phase filter has all energy concentrated at the beginning of the impulse and thus have no “pre-ringing” instead all is “post-ringing”. Minimum phase filters pass all frequencies as quickly as possible. Analog filters are typically minimum phase. With a minimum phase filter, there’s no output for an event that happens in future. Minimum phase filter only “looks” back in time.

Linear phase filter has all energy concentrated in the middle of the impulse and thus as equal amount of “pre- and post-ringing”. Linear phase filters pass all frequencies in equivalent time. Linear phase filter introduces some amount of delay, but the output can contain information from an event that will happen later in future. Linear phase filter “looks” both back in time and also into future.

Outputs of both can have information from an event that happened short time ago in past, for a minimum phase filter this can be twice as long.

2 Likes

Linear phase filters always introduce latency, longer the filter, more latency they have. Yes, MScaler by definition also has almost one second of latency.

No, you would cut the potentially long (more than half a second at 705.6/768k) pre-ringing.

I would say that would be bad idea because the filter would change during the song.

Hmmh, there shouldn’t be any effect on that, just played silence is difference.

Input doesn’t matter, but if your output is 705.6k then 1 million taps is 1.417 seconds with peak energy in the middle. And this is of course without any additional FIFO buffers or similar.

1 Like

Just tested, I have 11 second from pressing play until music with sinc-M (10 seconds without using convolution file). My chain is Roon/HQPlayer 4.3.3 -> microRendu (updated 2.8 with NAA 4.1.1) -> USB converter -> toslink -> DAC.

If the latency was only a couple of seconds I would not mind, but 11 seconds is an eternity :slight_smile:

I do not have a problem with that starting latency. As soon as I see the time bar begin to move I know in few seconds the music will start. I use that time to have the first sip of my beverage.

1 Like

There’s some time taken to initialize and kick up the DSP engine / player engine. It is not all filter delay.

I think your major problem is the Toslink and thus very low output sampling rate. Lower the output sampling rate, longer the delay with million taps. For example 1000000 / 192000 = 5.2 seconds total.

How frequently are you stopping and starting then? 11 seconds sounds short time compared to time taken to change a CD or LP disc…

On my old workstation, from pressing play in HQPlayer Client to hearing music with sinc-M and ASDM7 to DSD256 output takes 3 seconds to hear music. Of which one second is the initial silence playback.

Ok, problem is that I don’t like sinc-M when using USB (to edgy) :slight_smile: Seems filters change a lot depending on sample rate, for example I liked short-mp with USB but with toslink in 176/192 its rather dull.

But the biggest problem with latency is stopping music. For example, phone call and you want to silence the music before answering. Don’t Roon send “stop” so you can stop without latency?

sinc-M is primarily intended for >= 705.6k and higher output rates. At lower rates the delay becomes more annoying.

Stop delay is about one second.

Wow, there are some very clever people out there. Thank you for the explanation on the Min and Lin.

Ok I understand Direct SDM now. So if I wanted a filter on my DSD files to accompany the PCM filters, is that possible?

Thanks

You can run DSD files through separate processing to SDM/DSD output as well. In which case you need to disable Direct SDM and then the left side pane of “DSD sources” applies in addition to other settings from “SDM settings” except oversampling filter, when output mode is “SDM”. If output mode is “PCM”, the right side pane of “DSD sources” applies in addition to the settings under “PCM settings”.

1 Like

I was wrong on the mscaler delay. It’s 0.7s in full 1 million taps.

With sinc-M and toslink 176, I have these numbers (PCM only., no DSD)

  • Pressing play in Roon: music starts after 12 seconds
  • Pressing pause in Roon: music stops after 6 seconds

For comparison, poly-sinc-short-mp takes 2 seconds in both cases (start and stop).

When I control HQPlayer playback from it’s own library with HQPlayer Client, with same settings, start takes 11 seconds and stop takes 1 second.

If Roon cuts the stream before calling stop, then it’s the end-of-track case and you don’t have quick stop. This is because Roon calls stop also between tracks when format changes and you would have several seconds from end of the previous track cut out.

Amazing…just tried it and sounds even better :grinning:

So there is a much shorter list of filters under SDM-PCM Conversion. If I have selected (lets say) poly-ext2 under SDM-PCM Conversion and poly-cinc-long-lp under PCM…what is actually being used?

Sorry for the questions but im finding all this very interesting

Thanks
Bill

When you play a PCM file (flac, AIFF, WAV, …) the PCM filter will be used - in your example poly-sinc-long-lp.
If you play a DSD file (DSF, DFF) then the SDM-PCM conversion will take place and the corresponding filter will be used - in your example poly-sinc-ext2

Dirk

Thanks for that Dirk. On DSD playback, it still shows as the PCM settings in the signal path under “HQPlayer”, not the DSD settings, hence my confusion/question…wonder why that is?

Also would you know why there are reduced filter option under SDM conversion?

Thanks

When DSD is converted to PCM those DSD-to-PCM conversion settings are used to convert DSD source to 1/16th rate PCM. And then from there on it is processed just like PCM would, so for example further conversion to some other rate with the regular PCM settings that apply also for PCM sources.

Converting DSD to SDM/DSD is completely different matter than converting DSD to PCM. Hence completely different settings too.

1 Like

Maybe slightly off topic. However since Jussi is active in this particular topic, may I ask:

Is there is a possible way for HQPlayer to directly talk to a Roon Endpoint without having an NAA client?

This will help me simplify my hardware clutter. Thanks!

No, Roon Endpoints (RoonBridge/RoonReady) are Roon-specific, just like NAA is HQPlayer-specific. These are two different implementations of similar thing.

Thanks but I still don’t understand. If poly ext2 is selected for sdm-pcm, should I not see that on the signal path?

Just really for my understanding

Thanks

No, you only see from PCM point onwards. Settings used to transition from DSD to PCM are not shown.

There are many other things Roon doesn’t know how to display, such as convolution engine, speaker processing or especially the pipeline matrix.

1 Like