Skip to content

Instantly share code, notes, and snippets.

@stuartmemo
Created September 22, 2012 15:00
Show Gist options
  • Star 31 You must be signed in to star a gist
  • Fork 8 You must be signed in to fork a gist
  • Save stuartmemo/3766449 to your computer and use it in GitHub Desktop.
Save stuartmemo/3766449 to your computer and use it in GitHub Desktop.
Convert note to frequency
// Takes string of Note + Octave
// Example:
// var frequency = getFrequency('C3');
var getFrequency = function (note) {
var notes = ['A', 'A#', 'B', 'C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#'],
octave,
keyNumber;
if (note.length === 3) {
octave = note.charAt(2);
} else {
octave = note.charAt(1);
}
keyNumber = notes.indexOf(note.slice(0, -1));
if (keyNumber < 3) {
keyNumber = keyNumber + 12 + ((octave - 1) * 12) + 1;
} else {
keyNumber = keyNumber + ((octave - 1) * 12) + 1;
}
// Return frequency of note
return 440 * Math.pow(2, (keyNumber- 49) / 12);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment