'Twas brillig, and Raymond Yau at 16/04/10 14:48 did gyre and gimble:
2010/4/3 Colin Guthrie gmane@colin.guthr.ie
Sorry for the top post but....
Raymond. Your replies are often very disjoint. I see no relevance to my message here and why you're replying here is beyond me.
It's totally unclear what point you are making and which parts of this message are your comments and which are Lennart's original comments that's you've just pasted in.
What are you trying to say?
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...