export type NoteAsObject = { pitchClass: PitchClass; octave: Octave; }; export type PitchClassLetter = 'C' | 'D' | 'E' | 'F' | 'G' | 'A' | 'B'; type FlatAccidental = 'b' | 'bb' | 'bbb'; type SharpAccidental = '#' | 'x' | '#x'; export type Accidental = '' | FlatAccidental | SharpAccidental; export type Octave = number; export type FlatPitchClass = `${PitchClassLetter}${FlatAccidental}`; export type SharpPitchClass = `${PitchClassLetter}${SharpAccidental}`; export type PitchClass = PitchClassLetter | FlatPitchClass | SharpPitchClass; export type Note = `${PitchClass}${Octave}`; export type RawPitchClass = 'C' | 'C#' | 'Db' | 'D' | 'D#' | 'Eb' | 'E' | 'F' | 'F#' | 'Gb' | 'G' | 'G#' | 'Ab' | 'A' | 'A#' | 'Bb' | 'B'; export type RawFlatPitchClass = 'C' | 'Db' | 'D' | 'Eb' | 'E' | 'F' | 'Gb' | 'G' | 'Ab' | 'A' | 'Bb' | 'B'; export type RawSharpPitchClass = 'C' | 'C#' | 'D' | 'D#' | 'E' | 'F' | 'F#' | 'G' | 'G#' | 'A' | 'A#' | 'B'; export type Chord = Array; export type Scale = Array; export type NoteDuration = ''; export {};