I’m using a PCM5122-based DAC (and/or a TAS5756M-based DAC-Amp) with a Raspberry Pi and thus have three options for volume control:
- Roon’s DSP Volume software control
- The ‘hardware’ volume control exposed via ALSA (the slider called ‘Digital’)
- An ALSA softvol plugin software volume control slider
Option 1 (Roon DSP volume) has been described elsewhere on this forum as being a standard, best practice implementation, operating in essentially the same manner as the core DSP engine in Roon (although the reasons for labelling it “high quality” rather than “enhanced” are understood):
a high quality 64bit precision attenuation with dithering
The control range is from 0 dB to -80 dB.
Option 2 (hardware volume) is the default, and in another thread on this forum Brian from Roon wrote:
We manipulate the “Digital” control for pcm512x devices like the HiFiBerry/IQaudIO devices because we’ve been made to understand that this is the highest quality volume control on the device
However, in the datasheet for these devices (PCM5122, TAS5756M), describes the volume control only briefly thus (emphasis added):
A basic digital volume control with range from 24 dB to –103 dB and mute is available on each channel […] These volume controls all have 0.5-dB step programmability
The control range for the slider in ALSA is 0 dB max, rather than the +24 dB the chip can do (thankfully). Roon doesn’t mark it as degrading the data path (i.e. it shows “enhanced”, “lossless” or whatever).
Option 3 is the ALSA software volume control plugin. It’s not clear to me exactly how it works (in terms of bit depth or dither), but the range and resolution of the slider is user-definable, which is convenient. Roon doesn’t really know this is any different to the hardware volume slider in ALSA (above), so it also doesn’t mark it as degrading the data path.
For the hardware volume control to be described as “basic” by the manufacturer is not exactly awe-inspiring (and especially given there is no further information about its operation), and so leads me to want to use either Roon’s DSP volume or ALSA’s softvol plugin.
My questions around this are:
- How does the ALSA softvol plugin compare to Roon’s DSP volume? (which is ‘technically’ better?)
- Can anyone (perhaps someone knowledgable at Roon) offer any more insight into the ALSA softvol plugin? Does it use 64-bit internal precision? Does it dither?