2010/4/3 Colin Guthrie gmane@colin.guthr.ie
'Twas brillig, and Nicolo' Chieffo at 02/04/10 21:25 did gyre and gimble:
I just had a discussion with pulseaudio developers in which they told me that if the speakers don't emit any audio when the ALSA volume is 0%, then the correct gain value should be -inf dB (a value lower than -200 for pulseaudio means mute). Unfortunately my card has -48 dB.
They also said that if with -47.25 dB (which is what I get with ALSA volume set to 2%) I can hear audio even if it's very very low, at -48 dB I should still be able to hear something (the scale is logarithmic).
Their request is to change to -200 the gain reported from my card driver when the ALSA volume is set to 0%. Thanks
FWIW, I've got the same/similar h/w with a cutoff at 14% in PA as you have. I've been meaning to get this fixed for a while, but I'm incredibly lazy with certain things that don't bother me practically, so haven't followed it up yet.
Thanks for getting the ball rolling :)
If any specific debug is needed here, feel free to ask.
Col
I don't agree *Lennart Poettering say *"ALSA does not define any reference point for the dB scale it exports in its mixer controls "
For most of the driver with dB scale, the 0dB point is the reference point , the reason is PA developer choose a cubic mapping "It's now cubic, which is supposed to be feel more 'natural'."
https://tango.0pointer.de/pipermail/pulseaudio-discuss/2009-May/003898.html
Because PA exposes the same volume scale mapping on all hardware.
In 0.9.15 we mapped 0% on the volume scale to -90dB and 100% to 0dB,
in between the mapping between those percentages and the dB scale was linear (i.e. to the effect that we had an overall logarithmic mapping).
This mapping is not particularly well chosen since it gives too much
control over the uninteresting parts below -20dB and too little control over the 'interesting' parts above -20dB. That's why I modified the mapping in PA git. It's now cubic, which is supposed to be feel more 'natural'.
So, coming back to how PA maps those volumes to ALSA: alsamixer will expose
the exact discrete volume steps of the sound card and show dB information just as little help at the side. PA however controls the volume in dB and if the hw doesn't provide the requested volume step we go to the next higher and then attenuate by the remaining factor in software. That way we can provide the same volume range and granularity on all hardware with the same mapping from the UI to the attenuation factor. So basically, while tha mapping from those percentages to the loudness is different in PA and alsamixer, the dB scaling is mostly the same -- except when it is not...