An introduction to computer audio
Digital volume control is multiplying the numerical value of the sample by a factor.
This factor is in general < 1 but not all of the time.
Volume leveling (replay gain) is an example where > 1 might be applied.
By design the audio is no longer bit perfect when digital volume control is applied.
One easy example is applying volume control. If you change the volume to 90% for example, the software will multiply all the digital audio data by 0.9. The result is rarely an exactly 16-bit word, just like dividing regular numbers often results in non-integer numbers. It usually has a remainder...which will require more bits (digits, or decimal places in regular numbers). If the data path is limited to 16-bit, the remainders will be truncated. That's analogous to dividing 10 by 3, and having a result of 3. With extra digits available, a more accurate result of 3.333... can be achieved.
Most DACs accept 16 or 24 bit words only.
No matter how the volume control is calculated, the result must be rounded to a 16 or a 24 bit integer.
The remainder simple doesn’t fit in.
This is called quantization error.
This affect affects the LSB (Least Significant Bit) both in 16 and in 24 bits.
The LSB of a 16 bit word is -96 dBFS. Although very soft, it is audible. Dither must be applied to camouflage this artifact.
In case of a 24 bit word the LSB is at -144 dBFS. This is way below the noise floor of any gear.
Using a 24 bit DAC has an advantage.
A lot of audiophiles think digital volume control is bad.
They set the digital volume control to 100% and use an analog device because with digital volume control one loses resolution and dynamic range.
The loudest a DAC could play is called 0 dBFS, say all bits are on.
If we lower the volume digital we ‘shift’ to the right as we do get a smaller number
Yes, we do loose resolution
The same happens when using 24 bits.
The difference is that with 16 the truncation (quantization error) happens at -96 dBFS hence the dither will be there too. In this example only 8 bits are left.
With 24 this happens at -144 dBFS and this is a value below what any DAC can resolve.
Playing 16 bits audio on a 24 bit DAC sounds like the ideal solution.
If we reduce the volume by -48 dB (8 bits) we still have the full 16 bit signal.
No loss of resolution at all.
Theoretically, it works this way.
Practice is a bit different.
The best DACs can resolve 22 bits max.
-96 dBFS is very soft, we probably won’t hear much below this level.
The bits might be all there, if we don’t hear them we still have a loss of resolution.
If the loudest passage at recording time is 100 dB, we have the full dynamic range at playback if we adjust the volume control such that our speaker produces 100 dB.
If we set the volume lower, we will lose the dynamics of the recording.
This applies to any volume control, digital or analog
Mark Mallinson provided some data comparing analog and digital volume control using 16-bit audio
An analog volume control brings down the peak signal and noise simultaneously to preserve S/N down to low output levels.
S/N ratio of volume control using a DAC with a -104dB S/N ratio, 16-bit/44.1 audio.
Already at -10 dBFS the analog volume control outperforms the digital in S/N ratio.
This is the consequence of the quantization noise.
S/N ratio of volume control using a DAC with a -132dB S/N ratio, 16-bit/44.1 audio.
Now we have to go down to -40 dBFS to hear a difference.
It is unclear how these numbers are obtained.
The correctness is questioned at the What’s Best Forum.
ESS has a nice paper on this subject.
If one decreases the signal analog, the noise floor goes done as well.
Do the same using digital volume control on a 16 bit DAC and one sees the signal lowers exactly the same as in case of analog volume control but the noise remains the same.
Effectively the SNR (Signal to Noise Ratio) gets worse.
At -1 dBFS SN=97.63 and ENOB=15.87
At -35 dBFS SN=63.18 and ENOB=10.17
(ENOB=Effective Number of Bits, the number of bits in the digitized signal above the noise floor.)
Indeed the audiophile is right; we lose resolution and get more noise!
The answer by ESS is using a 32-bit DAC.
Now you can lower the volume substantial without having the quantization error.
Excellent result with one caveat; the digital volume control must have access to the DACs internal data path.
This means it must be implemented in the DAC.
The digital volume control of your media player won’t do.
If you have a pre-amp or a DAC with analog volume control, you can simply test the impact of both digital and analog volume control.
Set the digital volume control of your media player to 100%, hopefully this is 0 dBFS.
Play at a realistic level. Turn down the digital volume and increase the analog at the same time trying to keep the level constant.
Modest digital volume control e.g. up to -10 dB is in general considered not audible.
One thing is sure, digital volume control never wears, never crackles, never breaks!