Created
February 6, 2022 21:06
-
-
Save davemackintosh/0503ef40a0d1228e77312bb8a0704f0f to your computer and use it in GitHub Desktop.
Generate octaves of musical notes in sequence with their corresponding midi note number and corresponding tab number.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const fs = require("fs/promises"); | |
const main = async () => { | |
const out = []; | |
let outBuffer = Buffer.from(""); | |
let tabValue = 0; | |
const notes = [ | |
"A$", | |
"A#$/Bb$", | |
"B$", | |
"C$", | |
"C#$/Db$", | |
"D$", | |
"D#$/Eb$", | |
"E$", | |
"F$", | |
"F#$/Gb$", | |
"G$", | |
"G#$/Ab$", | |
]; | |
const octaves = 8; | |
for (let i = 0; i <= octaves; i++) { | |
for (const note of notes) { | |
// midiNote: 21, tabValue: 0, onString: 1, name: "A0" | |
out.push({ | |
midiNote: 21 + tabValue, | |
tabValue: tabValue++, | |
onString: i, | |
name: note.replace(/\$/g, i), | |
}); | |
} | |
} | |
for (const row of out) { | |
outBuffer += Buffer.from( | |
`midiNote: ${row.midiNote}, tabValue: ${row.tabValue}, onString: ${row.onString}, name: "${row.name}"\n` | |
); | |
} | |
await fs.writeFile("./notes.swift", outBuffer); | |
console.log('Wrote "./notes.swift"'); | |
}; | |
main(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(midiNote: 21, tabValue: 0, onString: 0, name: "A0"), | |
(midiNote: 22, tabValue: 1, onString: 0, name: "A#0/Bb0"), | |
(midiNote: 23, tabValue: 2, onString: 0, name: "B0"), | |
(midiNote: 24, tabValue: 3, onString: 0, name: "C0"), | |
(midiNote: 25, tabValue: 4, onString: 0, name: "C#0/Db0"), | |
(midiNote: 26, tabValue: 5, onString: 0, name: "D0"), | |
(midiNote: 27, tabValue: 6, onString: 0, name: "D#0/Eb0"), | |
(midiNote: 28, tabValue: 7, onString: 0, name: "E0"), | |
(midiNote: 29, tabValue: 8, onString: 0, name: "F0"), | |
(midiNote: 30, tabValue: 9, onString: 0, name: "F#0/Gb0"), | |
(midiNote: 31, tabValue: 10, onString: 0, name: "G0"), | |
(midiNote: 32, tabValue: 11, onString: 0, name: "G#0/Ab0"), | |
(midiNote: 33, tabValue: 12, onString: 1, name: "A1"), | |
(midiNote: 34, tabValue: 13, onString: 1, name: "A#1/Bb1"), | |
(midiNote: 35, tabValue: 14, onString: 1, name: "B1"), | |
(midiNote: 36, tabValue: 15, onString: 1, name: "C1"), | |
(midiNote: 37, tabValue: 16, onString: 1, name: "C#1/Db1"), | |
(midiNote: 38, tabValue: 17, onString: 1, name: "D1"), | |
(midiNote: 39, tabValue: 18, onString: 1, name: "D#1/Eb1"), | |
(midiNote: 40, tabValue: 19, onString: 1, name: "E1"), | |
(midiNote: 41, tabValue: 20, onString: 1, name: "F1"), | |
(midiNote: 42, tabValue: 21, onString: 1, name: "F#1/Gb1"), | |
(midiNote: 43, tabValue: 22, onString: 1, name: "G1"), | |
(midiNote: 44, tabValue: 23, onString: 1, name: "G#1/Ab1"), | |
(midiNote: 45, tabValue: 24, onString: 2, name: "A2"), | |
(midiNote: 46, tabValue: 25, onString: 2, name: "A#2/Bb2"), | |
(midiNote: 47, tabValue: 26, onString: 2, name: "B2"), | |
(midiNote: 48, tabValue: 27, onString: 2, name: "C2"), | |
(midiNote: 49, tabValue: 28, onString: 2, name: "C#2/Db2"), | |
(midiNote: 50, tabValue: 29, onString: 2, name: "D2"), | |
(midiNote: 51, tabValue: 30, onString: 2, name: "D#2/Eb2"), | |
(midiNote: 52, tabValue: 31, onString: 2, name: "E2"), | |
(midiNote: 53, tabValue: 32, onString: 2, name: "F2"), | |
(midiNote: 54, tabValue: 33, onString: 2, name: "F#2/Gb2"), | |
(midiNote: 55, tabValue: 34, onString: 2, name: "G2"), | |
(midiNote: 56, tabValue: 35, onString: 2, name: "G#2/Ab2"), | |
(midiNote: 57, tabValue: 36, onString: 3, name: "A3"), | |
(midiNote: 58, tabValue: 37, onString: 3, name: "A#3/Bb3"), | |
(midiNote: 59, tabValue: 38, onString: 3, name: "B3"), | |
(midiNote: 60, tabValue: 39, onString: 3, name: "C3"), | |
(midiNote: 61, tabValue: 40, onString: 3, name: "C#3/Db3"), | |
(midiNote: 62, tabValue: 41, onString: 3, name: "D3"), | |
(midiNote: 63, tabValue: 42, onString: 3, name: "D#3/Eb3"), | |
(midiNote: 64, tabValue: 43, onString: 3, name: "E3"), | |
(midiNote: 65, tabValue: 44, onString: 3, name: "F3"), | |
(midiNote: 66, tabValue: 45, onString: 3, name: "F#3/Gb3"), | |
(midiNote: 67, tabValue: 46, onString: 3, name: "G3"), | |
(midiNote: 68, tabValue: 47, onString: 3, name: "G#3/Ab3"), | |
(midiNote: 69, tabValue: 48, onString: 4, name: "A4"), | |
(midiNote: 70, tabValue: 49, onString: 4, name: "A#4/Bb4"), | |
(midiNote: 71, tabValue: 50, onString: 4, name: "B4"), | |
(midiNote: 72, tabValue: 51, onString: 4, name: "C4"), | |
(midiNote: 73, tabValue: 52, onString: 4, name: "C#4/Db4"), | |
(midiNote: 74, tabValue: 53, onString: 4, name: "D4"), | |
(midiNote: 75, tabValue: 54, onString: 4, name: "D#4/Eb4"), | |
(midiNote: 76, tabValue: 55, onString: 4, name: "E4"), | |
(midiNote: 77, tabValue: 56, onString: 4, name: "F4"), | |
(midiNote: 78, tabValue: 57, onString: 4, name: "F#4/Gb4"), | |
(midiNote: 79, tabValue: 58, onString: 4, name: "G4"), | |
(midiNote: 80, tabValue: 59, onString: 4, name: "G#4/Ab4"), | |
(midiNote: 81, tabValue: 60, onString: 5, name: "A5"), | |
(midiNote: 82, tabValue: 61, onString: 5, name: "A#5/Bb5"), | |
(midiNote: 83, tabValue: 62, onString: 5, name: "B5"), | |
(midiNote: 84, tabValue: 63, onString: 5, name: "C5"), | |
(midiNote: 85, tabValue: 64, onString: 5, name: "C#5/Db5"), | |
(midiNote: 86, tabValue: 65, onString: 5, name: "D5"), | |
(midiNote: 87, tabValue: 66, onString: 5, name: "D#5/Eb5"), | |
(midiNote: 88, tabValue: 67, onString: 5, name: "E5"), | |
(midiNote: 89, tabValue: 68, onString: 5, name: "F5"), | |
(midiNote: 90, tabValue: 69, onString: 5, name: "F#5/Gb5"), | |
(midiNote: 91, tabValue: 70, onString: 5, name: "G5"), | |
(midiNote: 92, tabValue: 71, onString: 5, name: "G#5/Ab5"), | |
(midiNote: 93, tabValue: 72, onString: 6, name: "A6"), | |
(midiNote: 94, tabValue: 73, onString: 6, name: "A#6/Bb6"), | |
(midiNote: 95, tabValue: 74, onString: 6, name: "B6"), | |
(midiNote: 96, tabValue: 75, onString: 6, name: "C6"), | |
(midiNote: 97, tabValue: 76, onString: 6, name: "C#6/Db6"), | |
(midiNote: 98, tabValue: 77, onString: 6, name: "D6"), | |
(midiNote: 99, tabValue: 78, onString: 6, name: "D#6/Eb6"), | |
(midiNote: 100, tabValue: 79, onString: 6, name: "E6"), | |
(midiNote: 101, tabValue: 80, onString: 6, name: "F6"), | |
(midiNote: 102, tabValue: 81, onString: 6, name: "F#6/Gb6"), | |
(midiNote: 103, tabValue: 82, onString: 6, name: "G6"), | |
(midiNote: 104, tabValue: 83, onString: 6, name: "G#6/Ab6"), | |
(midiNote: 105, tabValue: 84, onString: 7, name: "A7"), | |
(midiNote: 106, tabValue: 85, onString: 7, name: "A#7/Bb7"), | |
(midiNote: 107, tabValue: 86, onString: 7, name: "B7"), | |
(midiNote: 108, tabValue: 87, onString: 7, name: "C7"), | |
(midiNote: 109, tabValue: 88, onString: 7, name: "C#7/Db7"), | |
(midiNote: 110, tabValue: 89, onString: 7, name: "D7"), | |
(midiNote: 111, tabValue: 90, onString: 7, name: "D#7/Eb7"), | |
(midiNote: 112, tabValue: 91, onString: 7, name: "E7"), | |
(midiNote: 113, tabValue: 92, onString: 7, name: "F7"), | |
(midiNote: 114, tabValue: 93, onString: 7, name: "F#7/Gb7"), | |
(midiNote: 115, tabValue: 94, onString: 7, name: "G7"), | |
(midiNote: 116, tabValue: 95, onString: 7, name: "G#7/Ab7"), | |
(midiNote: 117, tabValue: 96, onString: 8, name: "A8"), | |
(midiNote: 118, tabValue: 97, onString: 8, name: "A#8/Bb8"), | |
(midiNote: 119, tabValue: 98, onString: 8, name: "B8"), | |
(midiNote: 120, tabValue: 99, onString: 8, name: "C8"), | |
(midiNote: 121, tabValue: 100, onString: 8, name: "C#8/Db8"), | |
(midiNote: 122, tabValue: 101, onString: 8, name: "D8"), | |
(midiNote: 123, tabValue: 102, onString: 8, name: "D#8/Eb8"), | |
(midiNote: 124, tabValue: 103, onString: 8, name: "E8"), | |
(midiNote: 125, tabValue: 104, onString: 8, name: "F8"), | |
(midiNote: 126, tabValue: 105, onString: 8, name: "F#8/Gb8"), | |
(midiNote: 127, tabValue: 106, onString: 8, name: "G8"), | |
(midiNote: 128, tabValue: 107, onString: 8, name: "G#8/Ab8"), |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment