12tet
Version:
Music theory library for generating and working with chords, modes, intervals, etc.
61 lines (60 loc) • 3.82 kB
TypeScript
import { ShortIntervalName } from "../interval";
import { Note } from '../note';
import { IonianTonic, ModeDegree } from '../mode';
declare const DIATONIC_CHORD_BASES: readonly ["maj", "min", "dim"];
export type DiatonicChordBase = typeof DIATONIC_CHORD_BASES[number];
export declare function isDiatonicChordBase(chordType: any): chordType is DiatonicChordBase;
export declare const diatonicChordBases: DiatonicChordBase[];
declare const CHORD_BASES: readonly ["maj", "min", "dim", "dom", "sus2", "sus4", "aug"];
export type ChordBase = typeof CHORD_BASES[number];
export declare function isChordBase(chordType: any): chordType is ChordBase;
export declare const chordBases: ChordBase[];
declare const CHORD_ADDITIONS: readonly ["2", "4", "6", "9", "11", "13"];
export type ChordAddition = typeof CHORD_ADDITIONS[number];
export declare function isChordAddition(chordAddition: any): chordAddition is ChordAddition;
export declare const chordAdditions: ChordAddition[];
declare const CHORD_EXTENSIONS: readonly ["7", "9", "11", "13"];
export type ChordExtension = typeof CHORD_EXTENSIONS[number];
export declare function isChordExtension(chordExtension: any): chordExtension is ChordExtension;
export declare const chordExtensions: ChordExtension[];
declare const STANDARD_CHORD_DEGREES: readonly [...("1" | "2" | "3" | "4" | "5" | "6" | "7" | "b1" | "#1" | "b2" | "#2" | "b3" | "#3" | "b4" | "#4" | "b5" | "#5" | "b6" | "#6" | "b7" | "#7")[], "9", "11", "13"];
export type StandardChordDegree = typeof STANDARD_CHORD_DEGREES[number];
export declare function isStandardChordDegree(degreeNumber: any): degreeNumber is StandardChordDegree;
export declare const standardChordDegrees: StandardChordDegree[];
declare const ALTERED_CHORD_DEGREES: readonly [...("b1" | "#1" | "b2" | "#2" | "b3" | "#3" | "b4" | "#4" | "b5" | "#5" | "b6" | "#6" | "b7" | "#7")[], "b9", "#9", "b11", "#11", "b13", "#13"];
export type AlteredChordDegree = typeof ALTERED_CHORD_DEGREES[number];
export declare function isAlteredChordDegree(degreeNumber: any): degreeNumber is AlteredChordDegree;
export declare const alteredChordDegrees: AlteredChordDegree[];
declare const CHORD_DEGREES: ("1" | "2" | "3" | "4" | "5" | "6" | "7" | "9" | "11" | "b1" | "#1" | "b2" | "#2" | "b3" | "#3" | "b4" | "#4" | "b5" | "#5" | "b6" | "#6" | "b7" | "#7" | "13" | "b9" | "#9" | "b11" | "#11" | "b13" | "#13")[];
export type ChordDegree = typeof CHORD_DEGREES[number];
export declare function isChordDegree(degreeNumber: any): degreeNumber is ChordDegree;
export declare const chordDegrees: ChordDegree[];
export declare function chordDegreeToModeDegree(chordDegree: ChordDegree): ModeDegree;
export declare function chordDegreesToModeDegrees(chordDegrees: ChordDegree[]): ModeDegree[];
declare const CHORD_NUMERALS: readonly ["I", "i", "i⁰", "II", "ᵇII", "ii", "ii⁰", "ᵇIII", "iii", "ᵇiii", "iii⁰", "IV", "iv", "#iv⁰", "V", "ᵇV", "v", "v⁰", "ᵇVI", "vi", "vi⁰", "ᵇVII", "vii", "ᵇvii", "vii⁰"];
export type ChordNumeral = typeof CHORD_NUMERALS[number];
export declare function isChordNumeral(numeral: any): numeral is ChordNumeral;
export declare const chordNumerals: ChordNumeral[];
export interface ChordType {
base: ChordBase;
extension?: ChordExtension;
additions?: ChordAddition[];
alterations?: AlteredChordDegree[];
slash?: ChordDegree;
}
export interface Chord {
root: IonianTonic;
base: ChordBase;
extension?: ChordExtension;
additions?: ChordAddition[];
alterations?: AlteredChordDegree[];
slash?: ChordDegree;
slashNote?: Note;
intervals: ShortIntervalName[];
degrees: ChordDegree[];
notes: Note[];
name: string;
}
export declare function isChord(chord: any): chord is Chord;
export declare function chord(tonic: IonianTonic, type: ChordType): Chord;
export {};