
On Tue, 16.02.10 09:24, Jaroslav Kysela (perex@perex.cz) wrote:
ALSA 1.0.21 (kernel 2.6.32) added a different TLV type that reports the range with the min/max values to minimize those rounding errors.
Unfortunately, it's not the case of a rounding problem. The USB specification is too much vague and vendors don't use the dB range correctly. For example, I tested SB MP3+ USB device and reported ranges were:
Master: -47.87dB..0.06dB # correct Line: 0dB..47.81dB # seems correct -47.81dB..0dB Line Capture: -0.18dB..23.81dB # seems correct -17.81dB..6.18dB
Hmm, how did you choose where to put 0dB?
http://git.alsa-project.org/?p=alsa-kernel.git;a=commitdiff;h=c3a3e040f01457...
The SB MP3+ uses AC97 codec AD1995 with some own ASIC from Creative. So I think that even the 47.87 values are not correct and the real ranges are from -48dB..0dB and -18dB..6dB.
So if I understand this correctly, then the way to handle issues like this is to measure the dB data for each USB card in question and then update the drivers with quirks accordingly?
So if I want my Aureon to work properly I better start measuring now?
Would it be feasible to allow overriding of the dB data from userspace, i.e. from the alsa mixer init db perhaps?
Lennart