On 16 February 2010 15:40, Lennart Poettering mznyfn@0pointer.de wrote:
I remember that a while back we had a discussion on alsa-devel regarding the fact that ALSA does not define relative to what the dB values reported by the mixer elements actually are measured. Some mixer controls export dB values relative to max amplification (e.g. my integrated USB speakers here), others relative to the output of some other mixer element, and others relative to different standard or not-so-standard output voltages. And there is no API to figure out what the base is.
Now, what Jaroslav listed above suggests that he chose carefully where he put 0dB. I was just wondering about that. Jaroslav, how did you choose where to put 0dB?
I think what you are trying to do is actually quite difficult. The rules are very simple for digital controls. At 0dB the gain is 0 and the attenuation is 0 so the value going into the control will be identical to the value after the control. The trouble starts at the analogue stages. First we would want to decide on what output we actually want. I think this would depend on the sound card itself. Pro sound cards can output a different set of levels than consumer sound cards. I think the only way to fix the current problem is to determine a sound card that has the correct levels and controls, and then calibrate other sound cards from that. It will take a long time. Up until now, the best we have been able to do is read data sheets and use the values form the data sheets.
I guess a good start would be what digital values should create what voltages on the line output? One can then at least get the 0dB point set right.
Kind Regards
James