Hea*_*ank 5 math android logarithm acoustics replaygain
我正在尝试将 Replay Gain(即响应音乐文件中的 replaygain 标签)实现到库存的 Android/AOSP 音乐播放器应用程序中。这只是一个个人项目,但我可以将它作为补丁提供,或者制作我自己的库或播放器。我首先只关注轨道增益。我的问题的性质可能归结于我数学不及格的事实;)
任务是做两件事:A) 在播放开始之前,将音量限制在设备最大 -14dB(或者更多,一些消息来源建议 -23dB)。B) 在开始播放每首曲目之前,读取其标签并按该 dB 数进行调整。
我看到在 Android 中调整播放音量也涉及对数缩放,但由于我是对数的新手,我不确定这是否会使事情变得更容易或两倍(10 倍?)困难。
任何人都可以给我一些关于如何将分贝值转换为 MediaPlayer.setVolume() 可用参数的线索吗?感谢您提供任何提示。
编辑:我有一些(可能是不稳定的)断言可能需要建立连接,但我非常需要被告知他们中的任何一个是否愚蠢。
如果这些都成立,我会将 -1.3 的 Track Gain 值转换为 MediaPlayer.setVolume() 的适当参数,如下所示:
这是远程在正确的轨道上吗?
因此,一旦你在两个量表之间找到了共同点,它们就会以相同的方式发展。您基本上通过说 -14dbFS = 89 dBSPL 定义了两个音阶的参考声压之间的比率。
\n\n因为乘法尺度很麻烦,所以我们取这些乘法值的对数,并将它们除以 10,这给出了称为分贝的加法值(额外的 2 因子来自于我们比较声压的平方,而不是声压)他们自己)。
\n\n最后,如果您认为您的 103 dB 范围以对数方式映射(您的 dB 也是如此),从 0.0f 到 1.0f(这就是 Android 中播放音量的情况),那么 -14dBFS 就是( 103 - 14)/103。
\n\n仅当您想以此为线性标度时,才需要进行对数数学运算:线性标度上最大声音的 80% 在输出上将为 1-log(20)/log(100)规模。
\n| 归档时间: |
|
| 查看次数: |
1605 次 |
| 最近记录: |