On Wed, 30 Aug 2017 21:48:58 +0200, Jack Bates wrote:
I confirmed with Wireshark that my USB sound card responds to GET_MIN with 0x0000 and GET_MAX with 0x6300 .. The audio device class definition [1] says the units are 1/256 dB (section 5.2.2.2.3: Mixer Control) ... So by my calculation, the min and max are 0 and 99 dB (0x6300 / 256 == 99) ... Why then does alsactl print:
range '0 - 99' dbmin 0 dbmax 38
(/usr/sbin/aslactl -f - store)
I originally asked about this on the pulseaudio-discuss list [2] because it uses "dB data" [3].
The "0 - 99" makes sense -- it lines up with my calculation ... Where does the 38 come from? (I expect it's obvious, I just haven't found the explanation?)
Hm, what shows /proc/asound/card*/usbmixer proc file? It contains some raw data.
Basically the driver simply interprets the USB descriptor min/max unless there are overriding mappings by quirk list.
Takashi