Re: Mixer volume/decibel mapping

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

 



Peter Ujfalusi wrote:
> On Friday 21 May 2010 09:35:31 ext Clemens Ladisch wrote:
> > James Courtier-Dutton wrote:
> > > I believe it could be extended to support a continuous range.
> > > For example, some hardware uses a 32bit value to control the gain.
> > > The mix operation is simply "the_sample" * "the_control_value".
> > > So in this case the hardware has a linear control that can be
> > > considered continuous for our purposes.
> > 
> > Such controls already exist:
> > 
> > $ grep -rl DB_LINEAR sound/
> > ...
> 
> The DB_SCALE also provides linear mapping:
> For example, if the HW volume control has a range 0 .. 100
> In HW these means:
> 0 == -10dB, 1 == -9.8dB, 2 == -9.6dB .. 99 = 9.8dB, 100 = 10dB
> So it is linear.

This is not what is meant by "linear", because dB values are not linear.

DB_LINEAR means that the mixer control value is a multiplier for the
PCM sample value, as James wrote.  A DB_LINEAR mapping has
0 == -infinity dB, full scale == 0 dB, and the mapping between mixer
control values and corresponding dB values it _not_ linear.

TLV_DB_LINEAR_ITEM is a quite misleading name, but it actually means
"dB mapping for a mixer control whose value has a linear effect on the
sound output", _not_ a linear value <-> dB mapping.


Regards,
Clemens

_______________________________________________
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