[alsa-devel] Verifying mixer dB data/Invalid dB data from USB cards, especially Aureon 5.1 MkII

Eliot Blennerhassett linux at audioscience.com
Wed Feb 17 00:47:43 CET 2010

Lennart Poettering wrote:
> On Tue, 16.02.10 22:39, Mark Brown (broonie at opensource.wolfsonmicro.com) wrote:
>> On Tue, Feb 16, 2010 at 10:07:03PM +0100, Lennart Poettering wrote:
>>> On Tue, 16.02.10 17:29, Jaroslav Kysela (perex at perex.cz) wrote:
>>>> Basically, if I remember correctly the discussion, 0dB on all elements 
>>>> should main unchanged volume, <0dB attenuation and >0dB gain.
>>> But you need some kind of "anchor" for that. What you write above
>>> applies only for elements that have some kind of analog input and
>>> output. But the most interesting components are probably the DAC and
>>> ADC (i.e. the "innermost" elements), and it's not clear what level they
>>> output, so the "anchor" for the relative dB values is missing...
>> Typically the DACs and ADCs will have a full scale signal at line
>> reference level - it should generally be a good approximation with
>> nothing else to go on.
> "line reference level"? What is that?
> Lennart

There are two separate issues here.
1) Incorrect dB<->linear mapping
ALSA Volume/Gain controls returning incorrect information about mapping
from linear values to dB.  E.g. adding "6dB" to the Volume controls
while subtracting 6dB in software does not result in 0dB overall gain.

For volume controls the convention is  0dB == multiply by 1.0 == no
change. Any sane digital volume control should obey this.
For analog volumes, the 0dB position is entirely arbtrary, as I discuss

2) Absolute calibration of output levels.
(This is *not* required to solve Lennart's problem)
This would be required if you wanted two different (brands of) soundcard
to output the same voltage for given source pcm.

More information about the Alsa-devel mailing list