UNPKG

12tet

Version:

Music theory library for generating and working with chords, modes, intervals, etc.

61 lines (60 loc) 3.82 kB
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 {};