Re: [RFC] TLV entry for linear volume

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

 



At Wed, 23 Aug 2006 19:22:37 +0100,
James Courtier-Dutton wrote:
> 
> Takashi Iwai wrote:
> > At Wed, 23 Aug 2006 17:31:10 +0200,
> > I wrote:
> >   
> >>> So, 0 dB is when (volume - rec->min) / (max - min) == 1
> >>> So, for +6 dB gain, the volume will need to be higher than max?
> >>> Does this sound right? In that case, maybe "max" is not a good name for 
> >>> it because volume can be greater than max.
> >>>       
> >> Hm, right, I didn't think of overload case with a linear volume
> >> codec.  By min and max, I thought of a "segment" between mute and
> >> 0dB (although not implemented rightly in alsa-lib).
> >>
> >> Maybe min and max should be in (0.01) dB expressions since the min and
> >> max "values" are known from snd_ctl_elem_info.  The only problem is
> >> that we have no standard definition of "mute" in dB expression.
> >> In alsa-lib, -9999999 indicates mute.  But it should be defined as a
> >> constant in a public header.
> >>     
> >
> > It turned out that minimal dB makes the computation too complicated,
> > and chips are very likely from mute to a certain dB.  So, I decided to
> > drop the min dB there.
> >
> > The below are the revised patches.
> >
> >
> > Takashi
> >   
> I think you will find that your second approach is still wrong.
> You need to first identify the 0dB point, and then the scale factor and 
> offset value for the linear component before the log10 conversion.
> So, linear to log should be something like:
> 20log10 ((linear / scale) - offset)

What is linear and scale here?

In my case, the calculation is so simple as below.

The value y at x [0,max] is

   y = (x / max) * maxVal

where maxVal = 10^(maxdB/20)

so, in dB expression,

  Y = 20 * log10(y) = 20 * log10((x / max) * 10^(maxdB/20))
    = 20 * log10(x/max) + maxdB


Takashi

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/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