2016-06-01 67 views
0

我想写的是使用A440如何使用A440(MIDI)

基本上我需要转换equasion看到返回键盘上的音符的频率的方法来获取一个音符的频率here到C#

下面是我的解释,但是我得到了错误的输出,但是我对这个方程的解释有什么错误?

public static float GetFrequency(int keyIndex) 
{ 
    /// The following equation gives the frequency (f) of the nth key 
    /// f(n) = (2 * (n - 49/12)) * 440 Hz 
    return (2 * ((keyIndex - 49)/12)) * 440; 
} 

回答

4

幂不乘,你需要使用浮点值,以避免整数取整:

return Math.Pow(2, (keyIndex - 49)/12.0) * 440;