音符和频率的对应关系计算
在这里看到的,可以直接进去看,我只是把它的代码改好了
不过对我来说真的挺震惊的,不久前我一个一个手敲频率到小数点后10位,然后还自鸣得意,现在才发现自己有多傻:>.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
double midi[127];
int main(){
float a=440;
for(int x=0;x<127;++x){
midi[x]=(a/32.)*pow(2.,((x-9.)/12.));
}
for(int i=0;i<127;++i)printf("%d: %.10f\n",i,midi[i]);
return 0;
}
请用g++
编译.
再也不用手敲音符频率了!!!
midi [ x ] = 440 32 ⋅ 2 exp x − 9 12 \text{midi}[x]=\dfrac{440}{32}\cdot 2\exp \dfrac{x-9}{12} midi[x]=32440⋅2exp12x−9
这真是一件神奇的事呢!但到底为什么呢?等有时间再去看吧:<.