Skip to content

Instantly share code, notes, and snippets.

@marcgg
Created November 1, 2016 10:56
Show Gist options
  • Save marcgg/94e97def0e8694f906443ed5262e9cbb to your computer and use it in GitHub Desktop.
Save marcgg/94e97def0e8694f906443ed5262e9cbb to your computer and use it in GitHub Desktop.
note frequency value
var noteValues = {
'C0': 16.35,
'C#0': 17.32,
'Db0': 17.32,
'D0': 18.35,
'D#0': 19.45,
'Eb0': 19.45,
'E0': 20.60,
'F0': 21.83,
'F#0': 23.12,
'Gb0': 23.12,
'G0': 24.50,
'G#0': 25.96,
'Ab0': 25.96,
'A0': 27.50,
'A#0': 29.14,
'Bb0': 29.14,
'B0': 30.87,
'C1': 32.70,
'C#1': 34.65,
'Db1': 34.65,
'D1': 36.71,
'D#1': 38.89,
'Eb1': 38.89,
'E1': 41.20,
'F1': 43.65,
'F#1': 46.25,
'Gb1': 46.25,
'G1': 49.00,
'G#1': 51.91,
'Ab1': 51.91,
'A1': 55.00,
'A#1': 58.27,
'Bb1': 58.27,
'B1': 61.74,
'C2': 65.41,
'C#2': 69.30,
'Db2': 69.30,
'D2': 73.42,
'D#2': 77.78,
'Eb2': 77.78,
'E2': 82.41,
'F2': 87.31,
'F#2': 92.50,
'Gb2': 92.50,
'G2': 98.00,
'G#2': 103.83,
'Ab2': 103.83,
'A2': 110.00,
'A#2': 116.54,
'Bb2': 116.54,
'B2': 123.47,
'C3': 130.81,
'C#3': 138.59,
'Db3': 138.59,
'D3': 146.83,
'D#3': 155.56,
'Eb3': 155.56,
'E3': 164.81,
'F3': 174.61,
'F#3': 185.00,
'Gb3': 185.00,
'G3': 196.00,
'G#3': 207.65,
'Ab3': 207.65,
'A3': 220.00,
'A#3': 233.08,
'Bb3': 233.08,
'B3': 246.94,
'C4': 261.63,
'C#4': 277.18,
'Db4': 277.18,
'D4': 293.66,
'D#4': 311.13,
'Eb4': 311.13,
'E4': 329.63,
'F4': 349.23,
'F#4': 369.99,
'Gb4': 369.99,
'G4': 392.00,
'G#4': 415.30,
'Ab4': 415.30,
'A4': 440.00,
'A#4': 466.16,
'Bb4': 466.16,
'B4': 493.88,
'C5': 523.25,
'C#5': 554.37,
'Db5': 554.37,
'D5': 587.33,
'D#5': 622.25,
'Eb5': 622.25,
'E5': 659.26,
'F5': 698.46,
'F#5': 739.99,
'Gb5': 739.99,
'G5': 783.99,
'G#5': 830.61,
'Ab5': 830.61,
'A5': 880.00,
'A#5': 932.33,
'Bb5': 932.33,
'B5': 987.77,
'C6': 1046.50,
'C#6': 1108.73,
'Db6': 1108.73,
'D6': 1174.66,
'D#6': 1244.51,
'Eb6': 1244.51,
'E6': 1318.51,
'F6': 1396.91,
'F#6': 1479.98,
'Gb6': 1479.98,
'G6': 1567.98,
'G#6': 1661.22,
'Ab6': 1661.22,
'A6': 1760.00,
'A#6': 1864.66,
'Bb6': 1864.66,
'B6': 1975.53,
'C7': 2093.00,
'C#7': 2217.46,
'Db7': 2217.46,
'D7': 2349.32,
'D#7': 2489.02,
'Eb7': 2489.02,
'E7': 2637.02,
'F7': 2793.83,
'F#7': 2959.96,
'Gb7': 2959.96,
'G7': 3135.96,
'G#7': 3322.44,
'Ab7': 3322.44,
'A7': 3520.00,
'A#7': 3729.31,
'Bb7': 3729.31,
'B7': 3951.07,
'C8': 4186.01
}
@bblack
Copy link

bblack commented Sep 17, 2021

var NOTES = ["C", "C#", "D", "Eb", "E", "F", "F#", "G", "G#", "A", "Bb", "B"];
function getPitch(note, octave) {
    // ("A", 4) => 440
    // multiply by 2^(1/12) N times to get N steps higher
    var step = NOTES.indexOf(note);
    var power = Math.pow(2, (octave * 12 + step - 57)/12);
    var pitch = 440 * power;
    return pitch;
}

@exside
Copy link

exside commented Sep 10, 2022

Found this too late 🤣 , love @bblack 's function to get the frequencies dynamically, but as I already did the work, here's an object notation of the same, might come handy to someone:

const map = {
    'C': [16.35, 32.70, 65.41, 130.8, 261.6, 523.3, 1047, 2093, 4186],
    'C#': [17.32, 34.65, 69.3, 138.6, 277.2, 554.4, 1109, 2217, 4435],
    'D': [18.35, 36.71, 73.42, 146.8, 293.7, 587.3, 1175, 2349, 4699],
    'Eb': [19.45, 38.89, 77.78, 155.6, 311.1, 622.3, 1245, 2489, 4978],
    'E': [20.6, 41.2, 82.41, 164.8, 329.6, 659.3, 1319, 2637, 5274],
    'F': [21.83, 43.65, 87.31, 174.6, 349.2, 698.5, 1397, 2794, 5588],
    'F#': [23.12, 46.25, 92.5, 185, 370, 740, 1480, 2960, 5920],
    'G': [24.5, 49, 98, 196, 392, 784, 1568, 3136, 6272],
    'G#': [25.96, 51.91, 103.8, 207.7, 415.3, 830.6, 1661, 3322, 6645],
    'A': [27.5, 55, 110, 220, 440, 880, 1760, 3520, 7040],
    'Bb': [29.14, 58.27, 116.5, 233.1, 466.2, 932.3, 1865, 3729, 7459],
    'B': [30.87, 61.74, 123.5, 246.9, 493.9, 987.8, 1976, 3951, 7902],
};

@jesslark
Copy link

jesslark commented Sep 7, 2024

Thank you all, these are great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment