[alsa-devel] Mixer volume/decibel mapping

Raymond Yau superquad.vortex2 at gmail.com
Wed Jun 9 07:39:58 CEST 2010


2010/6/8 Sebastian H. <vand2 at gmx.de>

>
> >>>>> I thinks Sebastian's question is whether he can use
> >>>>> snd_mixer_selem_set_playback_
> >>>>> dB() set any values in between the volume steps
> >>>>>
> >>>>> e.g. Master volume control of ac97 is 1.5 dB per step,
> >>>>>
> >>>>> when using snd_mixer_selem_set_playback_dB() to set -0.9dB , how can
> >> the
> >>>>> mixer application know what dB value has been set since the value is
> in
> >>>>> between -1.5dB and 0dB without snd_mixer_selem_get_playbackdB()
> >>>>
> >>>> Indeed I quite happy with what ALSA already provides (I'm just an
> >>>> interested
> >>>> amateur). My main problem is that there is no documentation for the
> >> Mixer
> >>>> API
> >>>> and how things are related to each other. Like CTL, HCTL, Mixer and
> >>>> SimpleMixer and of course volume and dB in the snd_mixer_selem_
> >> functions.
> >>>>
> >>>> The root issue is that I wondered if the mixer application should
> offer
> >> a
> >>>> separate text input for decibel values besides the text input for
> volume
> >>>> values. As pointed out this would not allow for finer grained volume
> >>>> control
> >>>> therefore for the moment I'll probably stick with a mere text label
> for
> >> dB.
> >>>>
> >>>>
> >>
> >>> The main difference between those volume controls using TLV_DB_SCALE
> and
> >>> TLV_DB_LINEAR is -6dB is at the middle of TLV_DB_LINEAR and
> TLV_DB_SCALE
> >> has
> >>> fixed dB value between any two steps.
> >>
> >> What's TLV_DB_SCALE and TLV_DB_LINEAR for?
> >> A grep in the alsa-lib sources did not return anything.
> >>
> >>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/332631
> >>>
> >>> if the user has both hda onboard sound and emu10k1, he may notice that
> >> there
> >>> is big difference if he set volume at percentage instead of dB
> >>
> >> Interesting, that's my setup. I have an onboard HDA Intel and a
> >> pci SBLive! Card and some el cheapo USB sound cards to experiment
> >> with. Thanks I'll give the volume listening test a try at some point.
> >>
> >
> >
> > https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4883
> >
> > Pekka Lampila reported that when he set -40dB and only get back -9999999
> by
> > his program alsa_mixer_test.c
> >
> > I don't have emu10k1 so don't know whether this is a bug of alsa-lib or
> not
>
> I also get a big jump from -39.60dB to -99999.99 dB for some emu10k1
> sliders when I move them to the minimum although their advertised
> minimum is -40dB. This looks like a way to express log ( 0 ).
>

Do you ream snd_mixer_selem_get_Playback_dB_range() return 40dB but max_dB -
min_dB = 99999.99 dB ?


More information about the Alsa-devel mailing list