Software Volume Control and Upsampling

I am running Volumio on a Raspberry Pi B+, connected to an HRT MusicStreamer II+. Fantastic setup!

The MusicStreamer doesn’t have hardware volume control, so I just turned on Volumio’s software volume control, and it works fine. My question is, since I send almost all audio to the Pi as 16 bit, if I turn on Volumio’s Resampling feature to get 24 bit audio, is the software volume control doing the conversion after the resampling, on the 24 bit audio? If not, there would be no reason to do this, but if so, in principle there would be little to no effective loss of audio quality with the software conversion being done on 24 bit samples.

I am curious why choose for letting Volumio control volume and not your Amp? Because of no remote for the Amp? Or not to need 2 devices (one for Volumio and one for volume control)? An amplifier is much better suited to control volume with leaving the audio as it is supposed to be, it just ‘amplifies’ the analog signal. Using software (=digital) volume control means that you have to alter the digital stream and therefor will influence the audio resulting in different analog signal at the same volume levels. From a hifi perspective I would say sub-optimal at least :slight_smile: But maybe from a user experience perspective a little more convenient.

I do not know if it does the volume thing first and than re-sample. I would expect that it should do any re-sampling first before altering volume levels. But I doubt if it makes any sense to turn on re-sampling to upsample your 16/44,1 audio to say 24/96 or even 24/44,1. Yes, a different light will turn on on your DAC, but the audio quality is not improved. It can even be argued that it is even worse because the re/up-sampling has to ‘guess’ what bits it need to add to come up with more bits (24 instead of 16) and more samples (96k instead of 44,1k). Therefor the signal is less ‘original’ that it was before.

But, at the end it is a matter of preference :wink:

1 Like

I have the output of the Pi going to a HRT MusicStreamer II+, which connects to my Bryston pre-amp, and then to my Bryston power amp. So without software volume control, I have to adjust the volume knob on my pre-amp. Fine for serious/active listening, but when I’m using the stereo for background music in the house, it’s nice to adjust the volume from a different room.

My understanding of the benefits of having Volumio up-sample the stream is that the arithmetic to adjust the volume on the PCM data stream would be operating on 24 bit integers, and therefore the round-off errors would be insignificant compared to 16 bits. Hence my question of the order of up-sampling and applying the volume control.

I’m not talking about changing the sampling rate from 44.1 to 96, just the word length to minimize arithmetic round-off errors for the software volume control conversion on the PCM data stream.

1 Like

I know this is an old thread, but I could not find the answer the the original question.

There ARE situations where software volume control is neat. Upsampling 16bit data to 24bits before changing the volume makes a lot of sense, because the extra 8bits provide a lot of headroom before the original data (the 16bit information) gets truncated.

So, how does upsampling from 16bit to 24bit (or 32bit?) and software volume control work with Volumio?