Skip to content

Instantly share code, notes, and snippets.

@wtrocki
Forked from stuartmemo/Note to Frequency
Created August 21, 2018 22:22
Show Gist options
  • Save wtrocki/08362b74e6be010d19d99d9f5e3b49f3 to your computer and use it in GitHub Desktop.
Save wtrocki/08362b74e6be010d19d99d9f5e3b49f3 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