HQPlayer and PS Audio Perfect Wave DAC MkII experience(s)

Hi Folks,

as a holiday project I started to play around with HQPlayer embedded on a Pi4 to see, if it could further elevate my listening experience (although being quite awesome already, so a classic audio bug issue :slight_smile: ).

However I feel hard pressed to find any differences in SQ with/without HQPlayer in the signal chain.

Setup is as follows:

  • ROCK on intel NUC7i3
  • Endpoint 1: Pi3B with Ropieee and Allo DigiOne HAT going SPDIF into the DAC
  • Endpoint 2: Pi4 running HQPLayerOS going USB into the DAC via an iPurifier3
  • DAC: PS Audio Perfect Wave DAC MkII, going direct into the amp using the DACs volume control
  • Amplification: Electrocompaniet AW100 DMB
  • Speakers: Elac Vela 407 FS
  • Convolution filters for roomcorrection (created using Focus Fidelity Filter Designer)
  • Some room treatment including two Helmholtz-absorbers to tame the major room modes

To make quick A/B switching possible, I played the same tracks simultaneously to both endpoints, switching inputs on the DAC.

Signal chains were as follows:

Endpoint 1 (Roon direct):

  • Source material (44.1/16)
  • no upsampling in Roon
  • Convolution done in Roon
  • Endpoint (Pi 3B with Ropieee + Allo DigiOne) to DAC via SPDIF, 44.1/24
  • DAC in standard mode (NativeX, auto filter)

Endpoint 2 (Roon via HQPlayer)

  • Source material (44.1/16)
  • no upsampling in Roon
  • Convolution done in Roon
  • Upsampling in HQPlayer to 176.4/24, standard settings: poly-sinc-gauss-long, TDPF
  • Endpoint (Pi4 with HQplayer OS) to DAC via USB, 176.4/24
  • DAC in NativeX with filter 3 (brickwall filter, cutting off at fs/2 according to the DAC Chips data sheet. The only filter actually reasonable for highres content. All other available filters are designed to roll of around 22 kHz regardless of sampling rate).

Observations:

  • I needed to apply 3 dB additional negative gain in Roon for Endpoint 1 to level match the signal from HQplayer. All level settings in HQplayer are at 0 dB, fixed volume. So I guess, HQPlayer reserves some extra internal headroom to avoid clipping.
  • As stated above, I was hard pressed to make out any differences in the presentation. Both sounded excellent and I couldn’t find any difference in spatial presentation and immersion between to two.
  • Only with two tracks I felt the upsampled signal by HQPlayer sounded a bit more refined in congested sections (many instruments playing together at the same time) making it a little easier to follow individual instruments - but nothing definite her on repeated a/b-ing these sections.

So how come? I have several possible explanations:

  • The standard audiophile explanation (irony!): My system just isn’t resolving enough. Well, even if that would be the case: Happy me, I can perfectly live with the awesome sounding system I already have. So please don’t comment on that.
    On a more serious note:
  • HQPlayer probably cannot unfold its full potential due to sample rate limitations? The max sample rate the PS DAC takes is 192 kHz. But even this most likely is upsampled again to a higher rate internally (8x as the DAC chip data sheet suggests) before further processing, so I cannot circumvent the DACs internal upsampling completely. Also there is no option to go DSD into the DAC to circumvent the DACs DeltaSigma Modulator.
  • The DACs internal upsampling filter isn’t that bad at all - although many sources suggest otherwise with plausible arguments (computing power restrictions, need to create minimal to no lag through processing)
  • Convolution in Roon is done in both cases. The filters work both in frequency and time domain (correcting the impulse response) and have been created without HQPlayer in the signal chain. So they already compensate for internal DAC filter errors (of course far more for speakers and room) in a sense of an “overall” correction. So probably a second set of filters would be needed to go with HQPlayer, created with HQPlayer in the signal chain during measurement.
  • The DACs internal volume control limits the result, so further enhancements through HQPlayer have no effect. I run the volume around 40-50 (scale 0 - 100, < 40 in 1 dB increments, > 40 in .5 dB increments) and haven’t felt it to be limiting sound in the past. Comparisons with Roon DSP volume didn’t show any clear differences.

Any other users with the (already vintage?) PS Audio Perfect Wave MK II DAC in operation and similar or other experiences regarding the use of HQPlayer?

Happy Holidays (ongoing) to everyone!

If you have Direct SDM enabled in HQPlayer, it will lock volume to -3 dBFS. But you should never do any DSP on PCM sources without leaving at least -3 dBFS headroom, because lot of content is normalized to 0 dBFS which will cause inter-sample overs at higher rates. Many DACs don’t even take this into account and just clip the inter-sample overs creating distortion on transients.

So to generalize, never turn HQPlayer volume above -3 dBFS. And keep eye on the “Limited” counter that it doesn’t ever increment form 0 during playback.

Why not turn off all DSP in Roon and do convolution in HQPlayer instead, along with rest of the DSP?

This is part of the reason. It is not a bit-perfect DAC where the input data could pass straight to the actual D/A conversion section. It converts everything to DSD128 inside and you cannot change this. So it will perform bunch of DSP processing on the input data on it’s own. So you will only get some benefit from HQPlayer’s upsampling filters. But not from the modulators, etc.

You should disable this and move this part to HQPlayer as well. So that Roon passes the data bit-perfect to HQPlayer.

It is not necessary, from practical perspective it doesn’t really change the results at all.

1 Like

Hi Jussi,
thanks for your feedback and the clarification on volume locking on -3.5 dB even for PCM sources when Direct SDM is enabled. Obviously i missed that part in the helpfile.
I didn’t encounter any problems with clipping so far both in Roon and in HQ Player.
The Convolution Files created by Focus Fidelity apply only negative gain an reserve an extra 2-3 dB Headroom, so it’s safe to use them with minimal or even no negative gain in Roon.

I didn’t use convolution in HQPlayer yet both for convenience (creating individual mono wav files is needed as opposed to Roon using stereo wav files) and comparison reasons (changing one step at a time, so you can track down any differences to the changes you made). But I’m eager to try it out and will be back with my results.

I understand, that using convolution in HQPlayer will put this step after the upsampling process (Roon does so too, if you upsample in Roon) while in my current test setup, the convolution is done on the original 44.1 KHz data before upsampling. So let’s see, if it makes any difference.

FWIW, i also have a Matrix Mini-i 3 pro as a headphone amp. It also performs well as DAC/preamp in the main system, while the Perfect Wave DAC IMHO still has the edge giving an overall more emotionally engaging presentation especially with voices.
Since the Matrix takes up to 768 kHz input sample rate IIRC, it probably would benefit more from Upsampling in HQPlayer than the PerfectWave.

Just in case there’s a misunderstanding: It’s not the PerfectWave Direct Stream DAC, but the older model, the Perfect Wave DAC Mk II build around a Wolfson WM8741 DAC chip. According to the data sheet, it’s a sigma-delta design.
It also has a DSD mode, but that’s not supported by the digital input board of the DAC.
In so called “8FS” mode, internal DAC filters can be bypassed, using external filters. But that requires sampling rates of 352.8 kHz for 44.1 kHz source material which again is not supported by the digital input board of the DAC.

No, convolution is performed at source rate.

In optimal case, your convolution filter is generated for 352.8k rate.

OK, I see. I misunderstood the model. WM8741 supports DSD Direct at DSD64 rate, but I don’t think this PS Audio device supports it.

Yes, all current production DAC chips are. DSD is Direct Sigma-Delta (and then some marketing guy probably reworded it to sound less technical). Some chips support DSD Direct to bypass the on-chip DSP and pass the data straight to the actual conversion section. But not all DACs based on such chips support such functionality. And even when they claim to do so, it is best confirmed by independent measurements.

Yes, many modern DACs for example based on AKM DAC chips support such. Commonly also called as “external digital filter mode”. And many also support 16fs mode which is double the rate the internal digital filters are capable of producing.

Overall, each step of the process matters. It is for example those dense passages where you notice if things get congested or not. But also there’s no one size fits all filter, it depends on combination of personal sensitivities as well as source content. Then another 50% of the DSP performance comes from the modulators. Everything followed the by the actual D/A stage implementation and analog filter stages in DAC implementation.

This surprises me. Based on the recommendation of using high sample rate filter files i assumed HQPlayer would handle convolutiion the same way Roon does, i.e. after upsampling the source content
Focus Fidelity Filter designer creates individual files for all sample rates to be used in Room. I mangaged to split the 352.8k file in two mono tracks for left and right channel and got it working in HQplayer.

Again, I’m still hard pressed to make out any obvious differences this way. Most likely there’s just too much DSP in the DAC left that cannot be circumvented by 4x external upsampling to make a significant difference.

Yes, as written above, with the PerfectWave DAC these stages cannot be circumvented as the digital input board doesn’t accept anything more then PCM 192/24.

I had some promising experiments with the Matrix Audio Mini-i 3 pro though. PCM upsampled to 705.6 kHz sounds great, but so does 44.1 and I cannot do any quick A/B with the DAC between SPDIF and USB with this DAC since USB audio stops when changing inputs (it doesn’t with the PerfectWave DAC). The Matrix Audio is fairly new, so i cannot tell, if it’s the DAC itself or the upsampling that’s making a difference to the well know sound signature of the Perfect Wave DAC which I’m having for many years.

But I’m tempted to try out HQPlayers SDM output to the DAC to skip the internal modulator and see, how far this can go…

I got DSD input to the Matrix Audio working at 5.6 MHz but don’t think it makes any significant difference to PCM at 705.6 KHz. This most likely has to do with the DAC having to convert the DSD input to PCM internally again to make Volume adjustment possible which I need since I connected t directly to the PowerAmp. So I think converting to DSD was a pointless experiment.

@jussi_laako I’m intrigued by the possible application of HQPlayer embedded as an inline digital to digital converter. My application would be to put it between CD transport and DAC to make convolution available for other sources than Room as well.
Would it work with a HifiBerry Digl + I/O HAT on the Pi4 using digital input from the CD transport and digital output to the DAC? If not what else would word (external USB digital I/O adapter?)

@erekola I don‘t think you‘re in the position to tell other users what to post and what not to post. This is defined by forum guidelines and watched over by moderators. Your post has been flagged for that reason.

On a more constructive note:
I think it might be probably not a new but a valuable finding for other users that you shouldn’t get your expectations too high if your DAC doesn’t support high input PCM sample rates or DSD direct.
So HQPlayer might not be the path to give „second life“ to older DACs if the necessary requirements (high input sample rate and/or DSD direct) are not met by the DAC in question.

Kudos to @jussi_laako to make HQPlayer accessible in a very liberal trial mode so everybody can try it out for themselves and make up their own minds.

Regarding the need of a decent computer: In my understanding the whole point of HQPlayer OS running on a Pi4 is to eliminate the need for a dedicated computer and making HQPlayer more easily accessible for everyone. It works like a charm and i‘m not aware of any quality constraints compared to the desktop version other than the Pi 4 most likely running out of steam earlier than a beefy gaming PC if you’re doing extensive DSP. In my testing i didn’t encounter any performance issues neither with upsampling to PCM 705.6 kHz nor to DSD 5.6 MHz both with convolution enabled. So i think it‘s safe to say that the Pi4 is up to the task.

For me the takeaway from this is that i obviously have maxed out my current setup and need to look out for alternatives to make further improvements. As always the law of diminishing returns applies. Ferrum Wandla looks very tempting in that regard.

ESS dac chip, no way to bypass its modulator, ie, no direct DSD.

Yes, but according to Ferrum it uses a custom digital input board based on an ARM chip that runs filters created by @jussi_laako instead of the standard ESS filters, so i assume it uses the above mentioned 16fs input mode to at least skip the internal upsampling stage.

Ferrum states that with future firmware updates more filters will become available based on user feedback to the current implementation. So you’re not stuck with a fixed set of filters but could potentially profit from future development to a certain extend, i.e. more sophisticated filter algorithms or just algorithms that are more to your personal taste.

Reviewers rave about it, but as always you need to take a look (or a listen) for yourself to make up your mind. Luckily a dealer carrying Ferrum is not far away from my location.

Edit: The possibility to run custom convolution files on the DSP board inside the DAC thus making it available to all sources would make my day. But to my knowledge there’s no such offering from any manufacturer in the market.

Yes it has custom filters. But if you want to use hqplayer don’t you want a dac that doesn’t modify the audio signal? If you are not using hqplayer, go for it.

The Wandla is listed on the recommended hardware list on the sygnalist website, so i assume it should work well with HQPlayer. Or it’s listed because Signalyst is involved in the product.

Either way, experimenting with HQPlayer triggered the well know upgrade itch, so we’ll see where this leads.

This is relatively easy case since it works fine without automatic input rate switching. Since CD is fixed sample rate. It also works nicely for example for things like Spotify which is always 44.1k as well.

I’ve had the Digi+ I/O for a long time, but never had time to test it. Now I took the time to put it together in a steel case and test it… I will make this preconfigured in next release of HQPlayer OS.

That works, but please note the limitations of the Digi IO hat stated on HifiBerry site. IOW, the interface is stuck when there is no data coming over S/PDIF. Although this is not so big problem usually if you use 44.1k rate, since many devices keep sending clock even when not playing.

Another alternative is miniDSP USBStreamer.

At the moment I have RPi4 with Digi I/O running HQPlayer OS and playing from 44.1k Toslink source and output over to a NAA at 705.6k PCM… CPU load is 50% on all cores with default filter.

Of course another alternative is to run such device only as input NAA, or use some suitable input device on a more powerful device.

Wow, thanks Jussi for trying this out, much appreciated!

I understand you’re using the Pi for digital input and DSP and send the stream off via ethernet to another box running the NAA that connects to the DAC.
Does it also work as a one box solution i.e. ALSA out via USB to the DAC instead of sending data to a NAA? That would be exactly my use case.

Time to get the PerfectWave Transport from the cellar and dust off the CDs :smile:

1 Like

One more question:

would something like this also work as digital input device: Hifime SPDIF Optical to USB converter, record DAT/minidisc to computer?
According to other forum members, it works as input device on a Pi4 for rooplay without any further driver installation so it seems to be a generic device.

On the input selection page of HQPlayer OS you can select “USB Audio (RPi4)”. Is this meant for such generic USB input devices or does it have another purpose? Unfortunately there’s no help link to that page giving any further details.

Thanks again for your time and patience!

Regarding the need of a decent computer: In my understanding the whole point of HQPlayer OS running on a Pi4 is to eliminate the need for a dedicated computer and making HQPlayer more easily accessible for everyone.

I see it differently. Take Windows 11 Pro, for example. There are 160 processes working with countless threads. Many programs force their attention and generate interrupts.

HQPlayer OS has only 20 tasks instead. And it has a real-time Linux kernel. Windows can’t do that. The interrupt standard interval is 15.625 ms (1,000 ms divided by 64).

It is therefore very worthwhile to run HQPlayer OS on an audio PC.

It works like a charm and i‘m not aware of any quality constraints compared to the desktop version other than the Pi 4 most likely running out of steam earlier than a beefy gaming PC if you’re doing extensive DSP.

You have already mentioned the performance limitations of a RasPi. My fanless audio PC with an Intel i9-13900K core can play DSD1024 with high-quality modulators and filters. That is a sensational sound.

Of course, you need a DAC that can do that. Here is a list: Which DACs bypass digital filtering? - Page 27 - DAC - Digital to Analog Conversion - Audiophile Style

Yes, or like right now:
RPi4 with Digi+ I/O input NAA → PC with AMD Ryzen 7 5800X CPU and HQPlayer → Holo Audio Red output NAA → Gustard A26 DAC. Source is iPad playing Spotify at 44.1k PCM and output to Gustard A26 is DSD256.

Yes, certainly! I just already have various NAA+DAC combinations on the local network, so it was easiest to setup.

That should do the same job, I don’t have that one, so I have not personally tested, but other people have.

No, that one makes RPi4 + HQPlayer appear just like USB-connected DAC to the host device/computer. See end of thread here:

It works either straight with HQPlayer Embedded there, or through the NAA input functionality to HQPlayer running elsewhere.

Please note, to enable this functionality you need to edit the last two lines in config.txt on the image’s boot partition. (switch the type-C connector from host mode to peripheral (device) mode)

Just ordered a generic driverless toslink → USB A adapter to try it out. Will it work plug’n’play with HQPlayer OS, or do I need to edit certain config files to make it available as input device? From what I have read in the “using any audio source” thread, the latter might be the case.

Through the NAA it is likely plug and play. For HQPlayer Embedded, one needs to edit hqplayerd.xml config file to enable new input(s).

Thanks Jussi.
I think i have an idea, what needs to be done in the xml-file from various posts in the „any audio source thread“, but would like to come back to you on this once the unit has arrived. Probably starting a new thread or adding to the „any audio source thread“ with this.

Adding to the original topic:
While playing around with filter options and listening to more music during the holidays, i have to revise my orignal statement of hearing no differences to the standard DAC filters.
Sinc-M makes a noticeable difference especially on Laufeys „Bewitched“ (48/24 Qobuz). In standard mode there‘s sometimes a strange kind of intermodulation-like distortion to Laufeys voice, making it hard to listen to.
This is almost completely gone (or better integrated as part of her voice) using Sinc-M to upsample to 192/24, making the voice sound more natural and pleasing. Also spacial presentation sounds improved especially in a way to better keep the impression of ambient space during quieter passages.

Downside: around 10 sec delay from pressing play to beginning of music playing due to buffering and processing. Same goes for pausing and resume playing.

1 Like