2016-06-01 12 views
0

ich eine Methode zu schreiben versuchen, die die Frequenz einer Note auf einer Tastatur A440Wie Frequenz einer Note Get A440 (MIDI) mit

Grundsätzlich muß ich konvertiere die equasion here gesehen wieder in C#

mit

Unten ist meine Interpretation, ich bekomme die falschen Ausgänge, was ist falsch mit meiner Interpretation dieser Gleichung?

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; 
} 

Antwort

4

Potenzierung ist nicht Multiplikation, und Sie müssen Gleitkommawerte verwenden ganzzahlige Rundung zu vermeiden:

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