Should I use HQPlayer volume control or DAC/AMP's potentiometer?

I’ve read conflicting advice regarding this, some people say adjusting volume on the computer should be avoided at all costs because it “reduces quality”, some say HQPlayer has excellent volume control so you should stick to that.

I have a FiiO Q3 btw, should I set my DAC to 100% and control with HQPlayer or the opposite?

Hi, welcome!

I can’t think of anything that should be avoided “at all costs” in audio - at least not right now :slight_smile:

Implementing software volume is really straightforward and both Roon and HQP are perfectly capable of doing it without any loss of quality, so both solutions are perfectly fine. It comes down to your preference, whether you want to be able to change the volume in an app or it’s ok to take a trip to the amp.

2 Likes

Thanks for the insight, in my case the DAC is doing the volume control @jussi_laako in this case what is your recommendation?

Typical digital volume control drops bits/quality to achieve the decrease. iirc, HQPlayer starts at something excessively high like 64 bits to ensure that decreases don’t touch quality. Jussi can confirm how this works.

Analog potentiometers have small mismatches across their range that digital volume controls don’t, digital always has perfect stereo matching. I’d expect a small gain in soundstage going to HQPlayer’s volume control unless you’re using an R-2R ladder preamp or stepped volume knob with tightly matched resistors per step.

But by far the best feature of HQPlayer’s volume control is volume adaptive loudness, which counteracts the fact that our perception of low frequencies decreases with decreasing volume. The loudness feature “corrects” for that and makes low volume listening vastly more satisfying.

TL;DR: give HQPlayer’s volume control a shot, you might be surprised

1 Like

Is that always enabled? Couldn’t find an option

If you don’t want to use HQPlayer’s volume control, I recommend using either of the two ISO optimal fixed volume settings, ~ -3 dB or -6 dB.

In your device case it has an analog attenuator chip, which is sort of electronic R2R ladder volume control. Using high attenuation levels in such will result in reduced SNR, and it is rather counter-productive to first output high level from DAC, then attenuate it a lot and then again amplify it a lot again in headphone/power amp.

So depending on your currently required volume settings you could do two three things:

  1. If the attenuation needed is relatively high, like -40 dB, do gain optimization (see separate paragraph below)

  2. If the attenuation needed is not high, and you want to use the analog volume control, set HQPlayer to fixed ISO optimal volume and use the analog volume setting

  3. If the attenuation needed is not high and you instead prefer to use digital volume (may be objectively better), bypass the analog volume or set it to unity gain (0 dB). And adjust volume from HQPlayer.

For gain optimization, first set HQPlayer volume to -3 dB either using the volume knob or equivalent fixed volume setting. Then set the amplifier volume to highest volume you would ever want to listen with any content. Then leave the amplifier volume there and don’t touch it anymore. Now adjust the wanted playback level from HQPlayer.

Some power amplifiers like Benchmark’s AHB2 have a switchable gain, so you can match the gains sufficiently and avoid notable back-and-forth attenuation and amplification. For many modern cases, power amp with just 6 or 12 dB gain would be better than the more common 36 dB gain. In a common traditional gain setup, you may have 30 dB of excess gain.

In case a DAC has USB controllable analog volume, HQPlayer Embedded on Linux and Linux based NAA also supports hybrid volume where the DAC’s analog volume is combined with HQPlayer’s digital volume. And the entire thing is controlled from HQPlayer.

It is also worth noting that many DACs have best THD+N figure somewhere between -10 dBFS and -20 dBFS. So driving digital output level to the max serves no purpose.

2 Likes

It’s not, and it needs tuned to your own perception before it can be used.

I use Embedded, where it lives under the Matrix page. Not sure where it would be on Desktop. P.S., if you’re on Embedded, check out my HQPTuner thread for a better configuration interface :wink:

It needs the matrix engine enabled first, then basically what I do is:

  1. You’ll probably want to enable fixed volume in Roon, otherwise you’re about to calibrate to a moving target.
  2. Find the volume at which everything sounds perfectly even to you; decreasing volume yields a perceptual decrease in low frequencies. Set this to the upper bound.
  3. Find the quietest listening volume you can stand. Set this to the lower bound.
  4. Turn the loudness feature on and restart the engine. Play back some music and adjust the volume through the loudness range. If bass gets boomy as volume decreases, bump the lower bound down and try again. If bass gets weak, bump the lower bound up.
  5. Once the bounds are dialed in, play with the absolute values of the boosts if needed. The treble boost is optional, so if this makes treble sound weird, set the treble level to 0.

imho this is one of HQPlayer’s most underrated features

1 Like

Both HQP and Roon use 64-bit floats for DSP, so a decrease in volume does not directly translate to a decrease in bit depth. For example, an attenuation of about 6dB will preserve the significand and reduce the exponent by one, so no bits will be lost there. Bits are lost only when converting from float back to integer, and the final number of bits depends solely on the DAC.

2 Likes

By default, when Roon+HQPlayer combo is used, Roon adjusts HQPlayer’s volume through the HQPlayer control API. So it is fine to adjust volume from Roon GUI. You can easily verify this from HQPlayer Client for example (or HQPlayer Desktop main window) to see how HQPlayer volume control reacts.

2 Likes

Hi Jussi, thank you very much for your explanation, my only doubt is this part, here are you talking about attenuation done by HQPlayer or the DAC/AMP’s knob?
I checked and my comfortable level is when the DAC’s volume is 100%, and is -25.0 dBFS on HQPlayer.

Yes, in that case, you can just do all adjustments from HQPlayer. Likely gives you best SNR / THD+N figures.

1 Like

I wouldn’t worry too much about volume-related SNR. Even if your room is very quiet, it still has a constant background noise (of 30dB or so). So, when you reduce the volume by say 10dB, you lose 10dB of SNR, assuming a perfect volume control that doesn’t introduce any additional noise. The quieter the music, the more SNR you inherently give up.

1 Like

Good, thanks everyone for your help, I learned from this thread :slight_smile:

1 Like

might be a bug in Hqplayer I found, my integrated amp went up in smoke this week and I then had to input my new Holo audio cyan 2 into my tube power amp. This required using the volume control in Hqplayer 6.0.2, which is fed by upnp from Veravox. If moving the volume when playing it caused Hqplayer to hang and crash and at one point I had to reboot the mac mini it was so bad. Now I’m left with Veravox not being able to see Hqplayer. Its like Hqplayer has lost permissions on the mac. Foobar can see the upnp of Hqplayer but not Veravox. Both have been removed and reinstalled but no change. Its only a temporary use as I will be buying a preamp or an integrated to deal with the cyan 2 lake of volume control , but in the meantime I’m stuck with foobar which is not very good on a mac.I paid for Veravox as it is very promising and the issue is with Hqplayer not Veravox.

Start HQPlayer first and then VeraVox.

But overall, things are more complicated when two UPnP applications are running within the same computer. It is more straightforward when the entities are on separate devices as originally designed.

How do you conclude the issue is with HQPlayer and not VeraVox if foobar is still working?

Since we are on Roon forum, I assume Roon controlling HQPlayer and HQPlayer’s volume is working fine?

You have more flexibility with control applications that support HQPlayer natively, like Roon, JPlay, etc.

Never tried Veravox, so take this with a grain of salt, but you can see that the website was made by AI, it’s probable that the app wasn’t made by a human, so I wouldn’t think highly of its quality.

Try it, then you can criticize … and I’m curious about the relation between a website and the sw it describe … the argomentation seems quite silly

There are many vibe coded apps these days, some better, some worse…

Having been working on HQPlayer over past 28 years, I’m not interested to use AI things.

But I don’t really mind what other people prefer to use / how they prefer to work.

Of course side effect is that you will see a lot of new apps popping up.

This here is totally my opinion, and I don’t mean to sound definitive on this, but when I see a case like this I think: “If this person won’t be bothered to make a website for their product, I can’t trust that they’ll be careful when making the app with AI”

I care a lot about attention to detail, I want the stuff I use to be of quality, and I’m 100% aware most people don’t care, and that’s fine.