'Twas brillig, and Colin Guthrie at 27/05/10 15:43 did gyre and gimble:
PA should play nice with the softvol plugin so I don't think this is the bit that is at fault.
I strongly suspect that the reason has already been correctly identified a while ago, which is that this card considers -48dB silent where as PA assumes this level is -200dB. I believe it was Raymond who pointed out the -48dB level in the HDA spec before on this list.
I'm not sure of the internals, but things do indeed go silent when the volume reaches the magic -48dB mark (which is around the 14% mark with the current cubic mapping).
I suspect that if I were to define infinity to be 48.0 in PA, everything would work nicely.
I'm wrong (surprise, surprise!). Changing this value makes very little difference.
FWIW, the -200dB thing is just a work around for systems that do not define INFINITY. On my system this is defined. in bits/inf.h
So the value of 200dB mentioned by Raymond is not actually used generally speaking.
Even if I undef and define INFINITY to be 48, the actual shut down at -48 seems to happen regardless.
Looking at this in more depth, it seems that the problem is such that the Master control of my card controls things down to -46.5dB. Once that has hit 0, the PCM control takes over and goes down to -51dB
It seems that PA's full scale is determined as the multiplication of thse two elements; therefore: -97.5dB.
However as things basically go silent at -48dB, the inclusion of Master and PCM controls represent too large a range.
So either the 48dB of the HDA spec should be split between Master and PCM more evenly, (e.g. 24dB each) or PCM should be removed and Master should just have the full 48dB range. I don't really understand the Master<->PCM relationship, but this is certainly and issue.
So my second guess (having now abandoned the idea of a problem in PA's -inf definition) is that fixing the above, should fix things :)
Col