Skip to content

Instantly share code, notes, and snippets.

@davemackintosh
Created February 6, 2022 21:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davemackintosh/0503ef40a0d1228e77312bb8a0704f0f to your computer and use it in GitHub Desktop.
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.
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();
(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