Re: Mixer volume/decibel mapping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2010/5/28 Clemens Ladisch <clemens@xxxxxxxxxx>

> Raymond Yau wrote:
> > 2010/5/25 Clemens Ladisch <clemens@xxxxxxxxxx>
> > > Raymond Yau wrote:
> > > > I have doubt about DECLARE_TLV_DB_LINEAR(ak4396_db_scale,
> TLV_DB_GAIN_MUTE, 0);
> > > >
> > > > since the datasheet mention that dB range is only -48dB to 0dB
> > > >
> > > > ATT = 20 log10 (ATT_DATA / 255) [dB]
> > > >
> > > > How can AK4396 has scale of -inf DB to 0dB in the driver code  ?
> > >
> > > When ATT_DATA = 0, there is no output, which is an attenuation of -inf.
> > > The next value, ATT_DATA = 1, results in ATT = -48 dB.
> >
> > refer to ice1712/prodigy_hifi.c , why the comment is -64dB to 0dB  ?
> >
> > /*
> >  * DAC volume attenuation mixer control (-64dB to 0dB)
> > */
>
> Apparently just copied from pontis.c.
>
> > static int ak4396_dac_vol_info(struct snd_kcontrol *kcontrol, struct
> snd_ctl_elem_info *uinfo)
> > {
> >         uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
> >         uinfo->count = 2;
> >         uinfo->value.integer.min = 0;   /* mute */
> >         uinfo->value.integer.max = 0xFF; /* linear */
> >        return 0;
> > }
> > ...
> > static const DECLARE_TLV_DB_SCALE(db_scale_wm_dac, -12700, 100, 1);
>
> And this defines a dB scale from -127 dB to +128 dB, which will break
> PulseAudio's volume calculations.
>
> > > This is true regardless of the precision of the multiplier.  Even a
> one-
> > > bit factor behaves like this; in fact, this would describe a mute
> switch.
> >
> > This mean that the dB range should be calculated from the next step above
> > the min_dB and max_dB when min_dB regarded as a mute switch
>
> No; the AK4396 datasheet mentions -48 dB only because this is the minimum
> attenuation that isn't completely mute.  The minimum of the ATT_DATA
> registers _is_ zero, i.e. -inf dB, and therefore TLV_DB_GAIN_MUTE is the
> correct minimum for the dB range.
>
>
The AK4396 includes channel independent digital output volumes (ATT) with
256 levels at linear step including MUTE.
These volumes are in front of the DAC and can attenuate the input data from
0dB to –48dB and mute.

It only mention the volume can be attenuate to -48dB and MUTE

some driver are using SMUTE (soft mute) and soft mute enable : default is
OFF

As James said , DB_LINEAR is limited to 0dB as Max , how can you provide a
dB scale for the capture volume control of pulseaudio
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux