Alsamixer settings should be different for DACs

When using the HiFiBerry DAC+ Pro, the output signal is much lower than my standalone DAC (and other devices) and seems of lower quality (probably just a bias because the other one is louder). When you go to alsamixer, you’ll notice that playback is at -6dB, 0%. According to the DAC manual (iqaudio.com/downloads/IQaudIO.pdf).

As for the PCM signal. There is no mentioning of dB or clipping in my case, but the default of 96% seems exactly correct. The playback gain I do not yet understand, but I think it should be left at 0%, the default setting of the DAC (page 99 of the pdf). I know IQaudIO recommends to put them all at 100%, but I’m not sure. At 96%, 100%, 0% the output is indistinguishable from my standalone DAC.

Note that people are already complaining because of this: rpi2-iqaudio-dac-plus-horrible-sound-t3791.html.

I can confirm that 96% is the correct unclipped PCM level. There are 215 steps of 0.50dB and it starts at -103.50dB. At step 207, we’re at 0dB, which corresponds to a setting of 96%. Playback Volume (not PCM) should be set at 100%, 0dB, as I described above. This can easily be verified by reading the chip documentation.

root@volumio:~# amixer -c 0 contents
numid=1,iface=MIXER,name=‘PCM’
; type=INTEGER,access=rw—R–,values=2,min=0,max=215,step=0
: values=207,207
| dBscale-min=-103.50dB,step=0.50dB,mute=1

This all depends on the version of the pcm5122 driver being used as part of the kernel build.

I have tried to document this clearly in the user guide.

The driver was also changed by the Asoc maintainer to separate out the different mixer / gain controls exposed in the driver for the pcm5122. I originally had it as a single mixer with a range of -103db to +4db (the chip will go to +23db IIRC).

So with latest linux
Analogue should be 100% - this moved the output max from 1vrms to 2vrms
Analogue boost adds a 0.8db boost - it sounds better to some
Digital is your volume mixer from 0 to 100% where 100% NOW EQUATED TO 0db

Hope this clarifies.

If in doubt, load up alsamixer and watch the db range as you adjust the volume. On older linux 0db = 86% or thereabouts.

Any questions, drop me an email to gordon@iqaudio.com or ask the ASOC driver maintainers of the kernel.

Gordon

Thanks for your input. In my case there is no mentioning of dB in alsamixer or the default amixer output, but as you can see above, with “amixer -c 0 contents” I can see that the correct value is 96%, or step 207, in my case. This is with the latest version of Volumio. It must be another driver version.

I’m glad you can confirm that the playback volume should be at 100% (2VRMS) and not 0% (1VRMS) as HiFiBerry recommends. I hope Volumio will change this to be the default value for this chip.

OpenELEC alpha version with kernel 4.4:

Simple mixer control 'Digital',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 255 Mono: Front Left: Playback 207 [81%] [0.00dB] [on] Front Right: Playback 207 [81%] [0.00dB] [on]

Same step 207, but with a different percentage (81%). I hope you guys will check this for the current Volumio release, because like I said: 100% seems to be too much for this release. Percentages do not seem to be a reliable measurement.