alsamixer 和 amixer 输出关于 Master 百分比的区别

alsamixer 和 amixer 输出关于 Master 百分比的区别

我正在尝试编写一个 bash 脚本来查找音量百分比。我使用了这个:

amixer get Master | awk '/Mono.+/ {print $6=="[off]"?$6:$4}'

此命令打印频道的音量百分比Master,或打印[off]是否静音。

但是,正如您从下面的屏幕截图中看到的,输出的百分比与频道中显示的amixer get Master百分比不同。alsamixerMaster

在此处输入图片描述

有什么区别?哪一个才是我Master频道的真实百分比?我如何才能获得显示的百分比alsamixer(如果它是真实的百分比)?

答案1

man 1 alsamixer

体积映射

在 中alsamixer,音量被映射到对人耳来说更自然的值。映射的设计使得间隔中的位置与人耳感知到的音量成比例,即位置是线性样本乘积因子的立方根。对于范围较小的控件(24 dB 或更小),映射在 dB 值中是线性的,因此每个步骤在视觉上具有相同的大小。

仅对于没有 dB 信息的控制,才使用硬件音量寄存器值的线性映射(这与旧版本中使用的算法相同alsamixer)。

然后从man 1 amixer

-R
使用原始值来评估百分比表示。这是默认模式。

-M
使用映射音量来评估百分比表示alsamixer,以便对人耳来说更自然。

因此使用amixer -M get Master

相关内容