2016-06-01 57 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;