将频率转换为键盘音符

ufk*_*ufk 3 audio frequency-analysis

我正在尝试编写音频应用程序.

我可以播放20到20K频率的cin wave来听声音.我的问题是如何将频率转换为键盘音符以创建虚拟键盘(或钢琴)?是否有某种公式来实现这一目标?

我使用的编程语言并不重要,因为我不想使用其他工具来为我计算它.我想自己写,所以我需要了解它背后的数学.谢谢

更新

我找到了以下网址:http://www.reverse-engineering.info/Audio/bwl_eq_info.pdf

包含八度音阶图表.我是否需要存储该列表,或者是否有可以使用的公式?

xof*_*fon 5

您可以将音频的频率计算为

f = 440*exp(x*ln(2)/ 12)

其中x是钢琴键盘中间A以上的半音数.


Fla*_*ash 5

调整乐器有几种不同的方法.最常用的钢琴是12音平等气质,其公式可以在这里找到.这个想法是每对相邻音符具有相同的频率比.

在维基百科上也可以看到平等的气质.

  • 实际上,我不得不问同样的问题.所以,据我所知(并且我不是音乐理论专家),意味着某些键的气质听起来很棒,而其他人的声音很糟糕(由于狼的间隔).对于所有按键,平等气质听起来有点可怕,但消除了狼的间隔. (2认同)