Skip to content

Instantly share code, notes, and snippets.

@stuartmemo
Created September 22, 2012 15:00
Show Gist options
  • Select an option

  • Save stuartmemo/3766449 to your computer and use it in GitHub Desktop.

Select an option

Save stuartmemo/3766449 to your computer and use it in GitHub Desktop.

Revisions

  1. stuartmemo created this gist Sep 22, 2012.
    26 changes: 26 additions & 0 deletions Note to Frequency
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,26 @@
    // 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);
    };