export const ALL_NOTES = () => { const keys = ["C", "^C", "D", "^D", "E", "F", "^F", "G", "^G", "A", "^A", "B"]; const notes = []; const productKey = (total = 0) => { if (total === 0) return ""; return new Array(Math.abs(total)).fill(total > 0 ? "'" : ",").join(""); }; for (let i = 0; i <= 6; i++) { for (let j = 0; j < 12; j++) { let note = keys[j]; if (i < 3) { notes.push(note + productKey(i - 3)); } else if (i === 3) { notes.push(note); } else if (i === 4) { note = note.toLocaleLowerCase(); notes.push(note); } else { note = note.toLocaleLowerCase(); notes.push(note + productKey(i - 4)); } } } let str = ""; notes.forEach((note, index) => { str += note + (index % 4 === 0 ? " |" : " "); }); // console.log(notes); return str; }; export const ALL_Pitches = [ "C,,,,", "D,,,,", "E,,,,", "F,,,,", "G,,,,", "A,,,,", "B,,,,", "C,,,", "D,,,", "E,,,", "F,,,", "G,,,", "A,,,", "B,,,", "C,,", "D,,", "E,,", "F,,", "G,,", "A,,", "B,,", "C,", "D,", "E,", "F,", "G,", "A,", "B,", "C", "D", "E", "F", "G", "A", "B", "c", "d", "e", "f", "g", "a", "b", "c'", "d'", "e'", "f'", "g'", "a'", "b'", "c''", "d''", "e''", "f''", "g''", "a''", "b''", "c'''", "d'''", "e'''", "f'''", "g'''", "a'''", "b'''", "c''''", "d''''", "e''''", "f''''", "g''''", "a''''", "b''''", ]; export const ABC_NOTE_DATA = [ "C,,,,", ["^C,,,,", "_D,,,,"], "D,,,,", ["^D,,,,", "_E,,,,"], ["E,,,,", "_F,,,,"], ["^E,,,,", "F,,,,"], ["^F,,,,", "_G,,,,"], "G,,,,", ["^G,,,,", "_A,,,,"], "A,,,,", ["^A,,,,", "_B,,,,"], ["B,,,,", "_C,,,"], ["^B,,,,", "C,,,"], ["^C,,,", "_D,,,"], "D,,,", ["^D,,,", "_E,,,"], ["E,,,", "_F,,,"], ["^E,,,", "F,,,"], ["^F,,,", "_G,,,"], "G,,,", ["^G,,,", "_A,,,"], "A,,,", ["^A,,,", "_B,,,"], ["B,,,", "_C,,"], ["^B,,,", "C,,"], ["^C,,", "_D,,"], "D,,", ["^D,,", "_E,,"], ["E,,", "_F,,"], ["^E,,", "F,,"], ["^F,,", "_G,,"], "G,,", ["^G,,", "_A,,"], "A,,", ["^A,,", "_B,,"], ["B,,", "_C,"], ["^B,,", "C,"], ["^C,", "_D,"], "D,", ["^D,", "_E,"], ["E,", "_F,"], ["^E,", "F,"], ["^F,", "_G,"], "G,", ["^G,", "_A,"], "A,", ["^A,", "_B,"], ["B,", "_C"], ["^B,", "C"], ["^C", "_D"], "D", ["^D", "_E"], ["E", "_F"], ["^E", "F"], ["^F", "_G"], "G", ["^G", "_A"], "A", ["^A", "_B"], ["B", "_c"], ["^B", "c"], ["^c", "_d"], "d", ["^d", "_e"], ["e", "_f"], ["^e", "f"], ["^f", "_g"], "g", ["^g", "_a"], "a", ["^a", "_b"], ["b", "_c'"], ["^b", "c'"], ["^c'", "_d'"], "d'", ["^d'", "_e'"], ["e'", "_f'"], ["^e'", "f'"], ["^f'", "_g'"], "g'", ["^g'", "_a'"], "a'", ["^a'", "_b'"], ["b'", "_c''"], ["^b'", "c''"], ["^c''", "_d''"], "d''", ["^d''", "_e''"], ["e''", "_f''"], ["^e''", "f''"], ["^f''", "_g''"], "g''", ["^g''", "_a''"], "a''", ["^a''", "_b''"], ["b''", "_c'''"], ["^b''", "c'''"], ["^c'''", "_d'''"], "d'''", ["^d'''", "_e'''"], ["e'''", "_f'''"], ["^e'''", "f'''"], ["^f'''", "_g'''"], "g'''", ["^g'''", "_a'''"], "a'''", ["^a'''", "_b'''"], ["b'''", "_c''''"], ["^b'''", "c''''"], ["^c''''", "_d''''"], "d''''", ["^d''''", "_e''''"], ["e''''", "_f''''"], ["^e''''", "f''''"], ["^f''''", "_g''''"], "g''''", ["^g''''", "_a''''"], "a''''", ["^a''''", "_b''''"], ["b''''", "_c'''''"], ]; export const ABC_KEYS: { [_: string]: any } = { "K:C": { "K:C#": { up: 1, down: -11, move: 0 }, "K:Db": { up: 1, down: -11, move: 1 }, "K:D": { up: 2, down: -10, move: 0 }, "K:Eb": { up: 3, down: -9, move: 1 }, "K:E": { up: 4, down: -8, move: 0 }, "K:F": { up: 5, down: -7, move: 1 }, "K:F#": { up: 6, down: -6, move: 0 }, "K:Gb": { up: 6, down: -6, move: 1 }, "K:G": { up: 7, down: -5, move: 0 }, "K:Ab": { up: 8, down: -4, move: 1 }, "K:A": { up: 9, down: -3, move: 0 }, "K:Bb": { up: 10, down: -2, move: 1 }, "K:B": { up: 11, down: -1, move: 0 }, "K:C": { up: 0, down: 0, move: 0 }, }, "K:C#": { "K:D": { up: 1, down: -11, move: 0 }, "K:Eb": { up: 2, down: -10, move: 1 }, "K:E": { up: 3, down: -9, move: 0 }, "K:F": { up: 4, down: -8, move: 1 }, "K:Gb": { up: 5, down: -7, move: 0 }, "K:F#": { up: 5, down: -7, move: 1 }, "K:G": { up: 6, down: -6, move: 1 }, "K:Ab": { up: 7, down: -5, move: 1 }, "K:A": { up: 8, down: -4, move: 0 }, "K:Bb": { up: 9, down: -3, move: 1 }, "K:B": { up: 10, down: -2, move: 0 }, "K:C": { up: 11, down: -1, move: 1 }, "K:C#": { up: 0, down: 0, move: 0 }, "K:Db": { up: 0, down: 0, move: 0 }, }, "K:Db": { "K:D": { up: 1, down: -11, move: 0 }, "K:Eb": { up: 2, down: -10, move: 1 }, "K:E": { up: 3, down: -9, move: 0 }, "K:F": { up: 4, down: -8, move: 1 }, "K:Gb": { up: 5, down: -7, move: 0 }, "K:F#": { up: 5, down: -7, move: 1 }, "K:G": { up: 6, down: -6, move: 0 }, "K:Ab": { up: 7, down: -5, move: 1 }, "K:A": { up: 8, down: -4, move: 0 }, "K:Bb": { up: 9, down: -3, move: 1 }, "K:B": { up: 10, down: -2, move: 0 }, "K:C": { up: 11, down: -1, move: 1 }, "K:C#": { up: 0, down: 0, move: 0 }, "K:Db": { up: 0, down: 0, move: 1 }, }, "K:D": { "K:Eb": { up: 1, down: -11, move: 0 }, "K:E": { up: 2, down: -10, move: 1 }, "K:F": { up: 3, down: -9, move: 0 }, "K:Gb": { up: 4, down: -8, move: 1 }, "K:F#": { up: 4, down: -8, move: 0 }, "K:G": { up: 5, down: -7, move: 0 }, "K:Ab": { up: 6, down: -6, move: 0 }, "K:A": { up: 7, down: -5, move: 1 }, "K:Bb": { up: 8, down: -4, move: 0 }, "K:B": { up: 9, down: -3, move: 1 }, "K:C": { up: 10, down: -2, move: 0 }, "K:C#": { up: 11, down: -1, move: 1 }, "K:Db": { up: 11, down: -1, move: 0 }, "K:D": { up: 0, down: 0, move: 0 }, }, "K:Eb": { "K:E": { up: 1, down: -11, move: 0 }, "K:F": { up: 2, down: -10, move: 1 }, "K:Gb": { up: 3, down: -9, move: 0 }, "K:F#": { up: 3, down: -9, move: 1 }, "K:G": { up: 4, down: -8, move: 0 }, "K:Ab": { up: 5, down: -7, move: 1 }, "K:A": { up: 6, down: -6, move: 0 }, "K:Bb": { up: 7, down: -5, move: 1 }, "K:B": { up: 8, down: -4, move: 0 }, "K:C": { up: 9, down: -3, move: 1 }, "K:C#": { up: 10, down: -2, move: 0 }, "K:Db": { up: 10, down: -2, move: 1 }, "K:D": { up: 11, down: -1, move: 0 }, "K:Eb": { up: 0, down: 0, move: 0 }, }, "K:E": { "K:F": { up: 1, down: -11, move: 0 }, "K:Gb": { up: 2, down: -10, move: 1 }, "K:F#": { up: 2, down: -10, move: 0 }, "K:G": { up: 3, down: -9, move: 1 }, "K:Ab": { up: 4, down: -8, move: 0 }, "K:A": { up: 5, down: -7, move: 1 }, "K:Bb": { up: 6, down: -6, move: 0 }, "K:B": { up: 7, down: -5, move: 1 }, "K:C": { up: 8, down: -4, move: 0 }, "K:C#": { up: 9, down: -3, move: 1 }, "K:Db": { up: 9, down: -3, move: 0 }, "K:D": { up: 10, down: -2, move: 1 }, "K:Eb": { up: 11, down: -1, move: 0 }, "K:E": { up: 0, down: 0, move: 0 }, }, "K:F": { "K:Gb": { up: 1, down: -11, move: 0 }, "K:F#": { up: 1, down: -11, move: 1 }, "K:G": { up: 2, down: -10, move: 0 }, "K:Ab": { up: 3, down: -9, move: 1 }, "K:A": { up: 4, down: -8, move: 0 }, "K:Bb": { up: 5, down: -7, move: 1 }, "K:B": { up: 6, down: -6, move: 0 }, "K:C": { up: 7, down: -5, move: 1 }, "K:C#": { up: 8, down: -4, move: 0 }, "K:Db": { up: 8, down: -4, move: 1 }, "K:D": { up: 9, down: -3, move: 0 }, "K:Eb": { up: 10, down: -2, move: 1 }, "K:E": { up: 11, down: -1, move: 0 }, "K:F": { up: 0, down: 0, move: 0 }, }, "K:F#": { "K:G": { up: 1, down: -11, move: 0 }, "K:Ab": { up: 2, down: -10, move: 1 }, "K:A": { up: 3, down: -9, move: 0 }, "K:Bb": { up: 4, down: -8, move: 1 }, "K:B": { up: 5, down: -7, move: 0 }, "K:C": { up: 6, down: -6, move: 1 }, "K:C#": { up: 7, down: -5, move: 0 }, "K:Db": { up: 7, down: -5, move: 1 }, "K:D": { up: 8, down: -4, move: 0 }, "K:Eb": { up: 9, down: -3, move: 1 }, "K:E": { up: 10, down: -2, move: 0 }, "K:F": { up: 11, down: -1, move: 1 }, "K:Gb": { up: 0, down: 0, move: 0 }, "K:F#": { up: 0, down: 0, move: 0 }, }, "K:Gb": { "K:G": { up: 1, down: -11, move: 0 }, "K:Ab": { up: 2, down: -10, move: 1 }, "K:A": { up: 3, down: -9, move: 0 }, "K:Bb": { up: 4, down: -8, move: 1 }, "K:B": { up: 5, down: -7, move: 0 }, "K:C": { up: 6, down: -6, move: 1 }, "K:C#": { up: 7, down: -5, move: 0 }, "K:Db": { up: 7, down: -5, move: 1 }, "K:D": { up: 8, down: -4, move: 0 }, "K:Eb": { up: 9, down: -3, move: 1 }, "K:E": { up: 10, down: -2, move: 0 }, "K:F": { up: 11, down: -1, move: 1 }, "K:Gb": { up: 0, down: 0, move: 0 }, "K:F#": { up: 0, down: 0, move: 0 }, }, "K:G": { "K:Ab": { up: 1, down: -11, move: 0 }, "K:A": { up: 2, down: -10, move: 1 }, "K:Bb": { up: 3, down: -9, move: 0 }, "K:B": { up: 4, down: -8, move: 1 }, "K:C": { up: 5, down: -7, move: 0 }, "K:C#": { up: 6, down: -6, move: 1 }, "K:Db": { up: 6, down: -6, move: 0 }, "K:D": { up: 7, down: -5, move: 1 }, "K:Eb": { up: 8, down: -4, move: 0 }, "K:E": { up: 9, down: -3, move: 1 }, "K:F": { up: 10, down: -2, move: 0 }, "K:Gb": { up: 11, down: -1, move: 1 }, "K:F#": { up: 11, down: -1, move: 0 }, "K:G": { up: 0, down: 0, move: 0 }, }, "K:Ab": { "K:A": { up: 1, down: -11, move: 0 }, "K:Bb": { up: 2, down: -10, move: 1 }, "K:B": { up: 3, down: -9, move: 0 }, "K:C": { up: 4, down: -8, move: 1 }, "K:C#": { up: 5, down: -7, move: 0 }, "K:Db": { up: 5, down: -7, move: 1 }, "K:D": { up: 6, down: -6, move: 0 }, "K:Eb": { up: 7, down: -5, move: 1 }, "K:E": { up: 8, down: -4, move: 0 }, "K:F": { up: 9, down: -3, move: 1 }, "K:Gb": { up: 10, down: -2, move: 0 }, "K:F#": { up: 10, down: -2, move: 1 }, "K:G": { up: 11, down: -1, move: 0 }, "K:Ab": { up: 0, down: 0, move: 0 }, }, "K:A": { "K:Bb": { up: 1, down: -11, move: 0 }, "K:B": { up: 2, down: -10, move: 1 }, "K:C": { up: 3, down: -9, move: 0 }, "K:C#": { up: 4, down: -8, move: 1 }, "K:Db": { up: 4, down: -8, move: 0 }, "K:D": { up: 5, down: -7, move: 1 }, "K:Eb": { up: 6, down: -6, move: 0 }, "K:E": { up: 7, down: -5, move: 1 }, "K:F": { up: 8, down: -4, move: 0 }, "K:Gb": { up: 9, down: -3, move: 1 }, "K:F#": { up: 9, down: -3, move: 0 }, "K:G": { up: 10, down: -2, move: 1 }, "K:Ab": { up: 11, down: -1, move: 0 }, "K:A": { up: 0, down: 0, move: 0 }, }, "K:Bb": { "K:B": { up: 1, down: -11, move: 0 }, "K:C": { up: 2, down: -10, move: 1 }, "K:C#": { up: 3, down: -9, move: 0 }, "K:Db": { up: 3, down: -9, move: 1 }, "K:D": { up: 4, down: -8, move: 0 }, "K:Eb": { up: 5, down: -7, move: 1 }, "K:E": { up: 6, down: -6, move: 0 }, "K:F": { up: 7, down: -5, move: 1 }, "K:Gb": { up: 8, down: -4, move: 0 }, "K:F#": { up: 8, down: -4, move: 1 }, "K:G": { up: 9, down: -3, move: 0 }, "K:Ab": { up: 10, down: -2, move: 1 }, "K:A": { up: 11, down: -1, move: 0 }, "K:Bb": { up: 0, down: 0, move: 0 }, }, "K:B": { "K:C": { up: 1, down: -11, move: 0 }, "K:C#": { up: 2, down: -10, move: 1 }, "K:Db": { up: 2, down: -10, move: 0 }, "K:D": { up: 3, down: -9, move: 1 }, "K:Eb": { up: 4, down: -8, move: 0 }, "K:E": { up: 5, down: -7, move: 1 }, "K:F": { up: 6, down: -6, move: 0 }, "K:Gb": { up: 7, down: -5, move: 1 }, "K:F#": { up: 7, down: -5, move: 0 }, "K:G": { up: 8, down: -4, move: 1 }, "K:Ab": { up: 9, down: -3, move: 0 }, "K:A": { up: 10, down: -2, move: 1 }, "K:Bb": { up: 11, down: -1, move: 0 }, "K:B": { up: 0, down: 0, move: 0 }, }, }; /** 附点音符 */ export const NOTE_DOT: { [_: string]: string } = { "4": "3", "2": "3", "": "3/2", "/": "2/3", "//": "1/3", "///": "3/8", };