On July 16, 2010 10:10:48 pm Tim E. Real wrote: > > Here we go! snd_mixer_selem_get_playback_dB( ) > > > > Problem solved? Accurate or not? Not accurate with AK4524 chip. Read on...
> > Slider markings still not possible with this - it is only a 'current' > value. > > But that's OK, I'm now thinking markings on every slider would be clutter. > Instead, let's have a dB label below the integer value label, and use > snd_mixer_selem_get_playback_dB() to fill it. > > I think that might be reasonable. dB markings may be impossible here... > {snip} > I don't remember why I didn't try to take care of it, > if there was some difficulty in the actual dB numbers or > something, or probably just never got around to it. {Much discussion elsewhere...} Yikes! It's all coming back to me now, this can of worms. In my case the Delta101LT card has the AK4524 ADCs. The dB step of the IPGA stage is constant at 0.5dB, but the dB step of the DATT stage is not - anywhere from 6dB to 0.28dB ! And remember the IPGA and DATT controls were combined, complicating things. Meanwhile, other AK chips' DATT stages are constant step. ---------------- Hey look what I found: A bunch of other dB related funcs like: snd_mixer_selem_get_playback_dB_range (snd_mixer_elem_t *elem, long *min, long *max) "Get range in dB for playback volume of a mixer simple element. " Now, this would certainly help with markings - if the dB step were constant. We would know by the number of integer steps where the 0dB point was etc. But even better, look at this one! : snd_mixer_selem_ask_playback_vol_dB (snd_mixer_elem_t *elem, long value, long *dBvalue) "Return corresponding dB value to an integer playback volume for a mixer simple element. " The thing is, for the AK4524, ALSA reports only a single constant step of 0.5, and says the minimum is -63.5dB, with 163 integer steps and a max of +18.5dB. It does kinda sorta all work out, but in a average step sort of way... ALSA would need to use a dB table (exists?) to be accurate here. So, we're basing our scales on somewhat dubious info. But no doubt these dB functions should be very helpful in drawing scales for all ADC chips on ice1712 cards, no? The "impossible" is possible? Hope this helps. Tim. _______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/listinfo/linux-audio-dev