HQ Player discussion thread

Thanks Jussi!
As I mentioned already, Roon or HQplayer play fine standalone.
I feed content from a WD red hard disk and Tidal …
Here are my activity sceenshots:

I will delete both Roon and HQplayer again and start from scratch later today …

That looks completely fine. So something is going seriously wrong somewhere.

Enable AppNap column and see if any process is being subject to AppNat or other forced sleeping. Usually macOS detects CoreAudio output and doesn’t cause trouble, output to a NAA can be more problematic because then there’s no CoreAudio activity.

It is also good to check that your DAC is not the macOS default audio output device, and that it is not configured as enabled Roon zone.

I tried some more stuff like a fresh install of Roon and HQplayer, changed the Thunderbolt port the hard disk is connected to … it did not go away.
With some songs it’s one dropout in 4 minutes with others it’s like the sample in the dropbox link here: https://www.dropbox.com/s/ebke0glxehc3ek7/Dropouts%20Roon%20%2B%20HQplayer.m4a?dl=0 … unlistenable …

I have no clue what’s going on or where to search …

P.S. the only program with app nap enabled is Mail. and still the same outcome when Mail is closed

Ok, it seems the dropouts only happen when I upsample to DSD (64 and 128, no matter which filter), converting to 384 kHz works for all formats … but doesn’t sound as good as DSD128 :slight_smile:

I have a Mac Pro 4 core/32 meg of ram running Sierra. I was up sampling to DSD 256 and was getting some dropouts as well. Tried going down to DSD 128 and still got occasional dropouts. Checking logs and experimenting nothing seemed to help until… I closed mail. This seems to have cured most of the dropouts for me. Give it a try, I will be interested in seeing if this helps your problem. This has been driving me crazy. When it happens there was no cpu spikes or network dropouts. May explain why Jussi does not see the problem on El Captain. I even went back to HQP 3.13 and still happened. The only thing that appears to help is to quit Mail.

1 Like

If you have a quad-core CPU, you can enable “Pipeline SDM” and get the load distributed to more cores. If you have only dual-core CPU, then don’t enable “Pipeline SDM” because it will just increase CPU load.

Switching to -2s filter variants usually drops the CPU load considerably.

Pipeline SDM was always enabled already, and I tried the -2s filters … no change … will spin vinyl for the time being and wait tlll Roon 1.3 is here. :confused:
Thanks everybody …

Please allow me to interrupt the technical support going on here so that I can say nice things about HQPlayer.

I really want to gush and wax poetic about how much the different filters and upsampling rates can make the music I hear sound so much better, but my wife would bust my chops for being overly dramatic and pretentious! :innocent:

I have a modest setup – Oppo HA-2 feeding a pair of Oppo PM-3s from a Windows 10 PC – that I thought was pretty darn decent at playing hi-res audio on its own. But turning over the upsampling and filtering to HQPlayer has made it unbelievably better. It still seems crazy and impossible to me, but there it is. Kind of like the feeling that Matthew Broderick must have had in Ladyhawke when he saw Michelle Pfeiffer and the wolf together for the first time.

Changing the filters on HQPlayer actually moves the artist and instruments around in the soundstage and makes even Blurryface sound more intimate (auto-tuned vocals notwithstanding). From that to AC/DC and Airbourne to Shawn Colvin and Holly Cole to Jethro Tull and Yes, I can make the music sound different and better almost at will to suit my mood.

@jussi_laako, HQPlayer is a fantastic piece of software! Well done. The missus is going to kill me when I buy the license. This is going to cost me a lot more than $149!

I’d concur with @Jeff_Bellune, what @jussi_laako has done in his development of HQPlayer is spectacular. Agreed, HQPlayer isn’t the most intuitive, and you do have to be patient, but once you get it all working, the music will open up for you - on all levels of DACs!

A while back, I picked up a Meitner MA-1 cause I wanted my system to sound closer to vinyl. At first I though “How can HQPlayer help, the MA-1 already does its own conversion to DSD internally - how could software add anything?”

I like to test and test - and spent another few hours at a friend’s place on the weekend - he owns the most amazing vinyl collection I’ve ever seen, not to mention about 4,000 CDs. We asked a simple question - can computer audio sound like a quality transport? My friend had his doubts. He told me that he still prefers to drop that CD in the transport when he wants to do serious listening, which starts to question why we ripped 4,000 CDs?

We did a fairly simple test to start - Mac Book Air to a basic Cambridge Audio DACMagic Plus. The 4,000 CD collection was being managed by a Mac Pro running Roon core. All FLAC rips. The Mac Book Air was connected via USB to the DAC. I was able to queue up the same track on both the Roon system and the transport so we could A / B compare with the flick of a dial.

First test queued up - session began. Back and forth between A and B - blind - and my friend was able to ID the transport through it’s DAC versus the computer through the Cambridge DAC. Then I made it interesting - I added a 30 minute trial of HQPlayer to the Mac Book Air and re-started the test for my friend. This is when things got interesting - he could just make out the difference and identify which was the transport, which is preferred - but now only slightly. And this is with a DAC that’s only a few hundred bucks. Wowzers. I told him what he had determined and he was totally shocked - his expectations are sky high. This is a guy with probably 7,000 vinyl albums, an amazing turntable with vacuum, HUGE room with great space for sound, etc. etc. High expectations.

Now we made things interesting - out went the Cambridge Audio basic DAC, in came my Meitner MA-1. Same exercise. Mac Book Air feeding the Meitner via USB, HQPlayer passing sound between Roon and the USB port. Queued up the music. Blind test again - A and B compared. The result? Meitner hands down. My friend was amazed and blown away. Computer Audio can sound this good. He was ready to chuck his transport - well, not chuck it but you get the point.

Only problem - he wasn’t going to keep my Meitner. So we put a Cambridge 851N in his rack and tried the blind test again. And guess what, he preferred the sound of the Cambridge over his transport. Wasn’t the Meitner, but that wasn’t the point - we wanted to demonstrate that at various price points, computer audio can sound that good. I left him the 851N so he could enjoy it for the Winter - only gets used in the summer to drive the outdoor stereo.

Without @jussi_laako and his wonderful HQPlayer, we’d have been listening to DACs instead of listening to music in our humble opinion.

How’s that for a novel? If you have questions about HQPlayer, fire away and I’ll do my best - I’m no expert, but I know what sounds nice. And as others have professed, it’s all about what sounds good to you not what someone else’s settings work for them.

And let me add - we did run a toslink from his Mac Pro which was running the Roon core to the DACs, and they universally sounded like crap! Was it jitter caused by the toslink connection (a common problem), was it the power supply in the Mac Pro dirtying-up the signal (although toslink is technically supposed to isolate that?), was it the alignment of Venus and Mars? Whatever it was, Mac Pro via Toslink to the DACs universally sound like shit. So mileage varies. Have some fun with it and try different things.

3 Likes

Chord showed at CES their new Blu Mk II with ‘M-scaler’ that does a Sync interpolation with 1 million taps and initial reviews have been very impressive (no I have not heard it, and it does cost North of $10k). If something like that can be done on FPGA, it is not a stretch to imagine it could be done in real-time on a computer with good processing power or using today’s GPUs using well written software. And if any software can do it, I cannot think of a better candidate than HQplayer.

This got me wondering if something like this could be done in HQplayer. I have some questions and I hope some one or @jussi_laako could chime in:

  1. What is the filter length of poly-sync family of filters used by HQplayer going 16FS from 44.kHz to 705.6kHz? When I listened through Dave (that uses 164000 Taps), upsampling redbook to 705.6kHz or 784kHz resulted in a slight loss of transparency which caught me by surprise (it has never happened with any other DAC I have tried) . This makes me think poly-sinc may be using a filter that is effectively shorter or very close to 160000 taps at 16FS.
  2. I have seen some mention of closed-form filter in HQP has 16k taps input relative. So going from 44.1k to 705.kHz would be 16 x 16k or 256k Taps. When I choose closed-form filter and upsample to 705.6k into Dave, I do hear improved depth but at the cost of a change in tonality and some loss of transparency likely because it is not a true sync interpolation, but it does help me preview what a large number of taps can do.
  3. I have seen some mention of 4 million taps going from redbook to DSD512 when using closed-form, using a 512 x 16k multiplier. But I think this is not a correct interpretation so someone correct me if I am wrong. 44.1khz /16bit when upsample to DSD512 (which is a bit stream) needs to use a multiplication factor of 32 and not 512 (and this is also a quite crude approximation).

One experiment I was going to try is to take some Rebook material I am familiar with, upsample 16FS to 705.6kHz by just inserting zeros (using Matlab). Then Store it as Flac (this way it does not take up huge space). Then create a 1 million tap sync filter and use it within the convolution engine of HQPlayer. Not sure what to expect or if HQPlayer can handle it, but it is worth the try.

Be very interested to hear your results @KMan, if you’re worried about processing power, keep in mind that HQP is CUDA capable. Just throw a CUDA capable GPU in the server and check the box in HQP. Pipeline SDM also increases computing efficiency with multiple CPU cores.

Unfortunately on my Win10 machine with GTX 970, and latest Nvidia driver, enabling CUDA when convolution is also enabled plays no sound! Pipleine SDM works. CUDA also works if I want to do just resampling without any convolution. It was not a big deal for me as there was no reason for me to enable CUDA (I mostly upsample to PCM). If I cannot get 1M taps to work, I may have to request support. I am using the latest version of HQP.

When you upsample to DSD, the filter operates at the modulator rate. So you get 512x16k=8M taps for DSD512.

This is quite different from what DAC chips or Chord is capable of doing. They run proper filter only for low ratio and then use crude sample copy or linear interpolation for the rest.

Where did you pull that factor of 32!?

But overall, number of taps is very irrelevant number. You can have few good taps, or many bad taps too. Number of taps is not what makes filter good or bad.

Shouldn’t be much of a problem to run such filter. Digital room correction filters typically vary from 16k to 256k taps for 44.1k rate.

Do you have HQPlayer 3.14.4? There was a bug in the CUDA handling code that sometimes caused this (depending on timing), wasn’t easy to find…

With CUDA you should always have Pipeline SDM enabled.

Thanks @jussi_laako, I thought I had the latest, but looks like I had 13.14.3, CUDA works fine now with 13.14.4

1 Like

Thanks for clarifying

I have not tried to implement filtering DSD signals directly, so forgive my lack of understanding. I used rather crude math to arrive at the 32 factor. Since DSD512 is a bitsrtream, I divided by the bit depth (16) 512/16 = 32 to get an equivalent multiplication factor

Cannot agree more. What got me interested in a software implementation was M-scaler introduced by Chord does 1M taps and only at the lower 16FS ratio that gets Redbook to 705.6kHz. The specs for the filter are quite impressive with a passband ripple of =/- 0.0000002dB (0-20kHz) and a stopband rejection of -135dB. Which is pretty impressive fixed-point filter implementation even at 1M taps.

@jussi_laako do the poly-sinc filter based upsampling to match or beat above figures for 16FS ratio?

It just doesn’t work that way… :slight_smile:

The number of taps is irrelevant for these specs. Depending a bit on the variant and some other factors, but poly-sinc filters have ripple somewhere below 0.000000001 dB and stop-band attenuation is over 192 dB. 3.15 will add poly-sinc-xtr for those who want more taps and attenuation, giving over five times more taps and increasing attenuation to over 256 dB. :smiley:

1 Like

Perfect! Could not ask for more and cannot wait to try! When do you plan to release the next version?

My understanding based on what Chord has shared so far is the filter is some variant of windowed Sinc function (WTA) and all inputs N x 44.1khz < 705.6kHz get upsampled using the same 1M filter, and similarly N x 48kHz < 784kHz, so the filter length remains the same irrespective of the input sample-rate. It is a closed form implementation but it does not keep the original sample. One of the main design objectives was tomake sure any error introduced due to oversampling is below the quantization error for 16 bits and that is how the 1M taps was arrived at.

When it’s ready… :wink:

For PCM outputs the extra attenuation doesn’t matter, because 32-bit integer cannot represent more than 192 dB (that’s where the spec came from). But the number of taps has effect. For DSD256 and higher outputs, also the attenuation begins to have some effect.

I personally use poly-sinc-short-mp for listening.

Number of taps doesn’t matter for that. For 16-bits quantization over 96 dB stop-band attenuation is enough.

Just tested a windowed Sinc with 2M taps, no hiccups processing 705.6kHz file in HQP! Not done any listening yet, apparently I cannot do flac at 705.6Hz and zero padded wav files are insanely huge! Will try to upsample a few tracks and listen later today.