音符名称、MIDI 编号和频率——Note names, MIDI numbers and frequencies

        音符名称、MIDI 编号和频率在此处通过表格和转换它们的应用程序进行关联。两个音符之间的音程取决于它们的频率比。

        一个八度是 2:1 的比率,在相等的律中,一个八度包括 12 个相等的半音。因此,每个半音的比率为 2 1/12(约 1.059)。按照惯例,A4 通常设置为 440 Hz。这些数据用于计算下面的第一个表格,它给出了任何标准键盘音符或 MIDI 音符编号的频率。

        如何进行计算?假设两个音符的频率为 f 1和 f 2,频率比为 f 2 /f 1。一个八度音阶是 2:1 的比率,因此 f 2和 f 1之间的八度音阶数为

        n0  = log 2 (f 2 /f 1 )。

        现在将八度音阶分成更小的单位。在相等律制中,所有半音的频率比相同,为 2 1/12,音符名称和频率之间的转换很简单。首先,需要一个参考注释和频率。这通常是 A4,通常设置为 440 Hz。对于高 n 个半音(或低 n 个半音)的音符,频率为

fn  = 2 n/12 *440 Hz

相反,可以从 A4 中获得 n,即半音的数量,从

n0  = 12*log 2 (f n /440 Hz)

        类似的方程给出了 n o,A4 的八度音阶数,和 n c,A4 的音分数:

n0 = log 2 (f n /440 Hz) 和 nc   = 1200*log 2 (f n /440 Hz)

        在电子音乐中,音高通常由 MIDI 编号给出:为了我们的目的,我们称它为 m。音符 A4 的 m 为 69,每个相等的回火半音增加 1,因此这为我们提供了频率和 MIDI 数字之间的简单转换(再次使用 440 Hz 作为 A4 的音高):

m  = 12*log 2 (f m /440 Hz) + 69 和 fm = 2 (m-69)/12 (440 Hz)

        这里使用的符号并不通用:在德语国家,使用 H 代替 B,而 B 用于 Bb。(这让巴赫可以在赋格的艺术中写下他的名字。)当然,当使用不同的调音系统时,会使用不同的名称。

c / c++

#include <math.h> //<cmath> in case of c++

float noteToFreq(int note) {

    float a = 440; //frequency of A (coomon value is 440Hz)

    return (a / 32) * pow(2, ((note - 9) / 12.0));

}

下面是这个表格的重现,但是倒过来了,即高音在顶部

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值