根据频率计算音符

斯特凡诺

我在android上创建了一个调谐器,我从设备的麦克风获取音频并进行处理以获取频率。但是,一旦我改变了音符上的频率,我想知道是否有一种方法可以不必使用很多“ IF”,是否可以通过更有效的方式进行计算?

数据狼

是的,可以这样做。但是首先,您必须知道工作的关键。假设普通C大调,您将从音符a1开始为440Hz。每个八度增加一倍的频率,每个八度降低一半的频率,因此您有一个很好的对数刻度,以2为底。

在对数范围内,乘法变成加法。因此,如果您将音符_的间隔相对于a设置,则所有八度音阶之间的频率比率均相同。因此,您所要找出的全部信息,即在哪个八度中,减去或添加该数字,而余数就是频率间隔的对数。查找八度音程也很简单,只需评估floor(log2(f / 440Hz))即可

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章