12tet
Version:
Music theory library for generating and working with chords, modes, intervals, etc.
62 lines (61 loc) • 3.07 kB
TypeScript
import { Note, Tone } from '../note';
import { ModeDegree, ModeKeySignature, ModeName, IonianTonic, DorianTonic, PhrygianTonic, LydianTonic, MixolydianTonic, AeolianTonic, LocrianTonic, Tonic } from '../mode';
export declare function getKeySignatureFromKeyNotes(notes: Note[]): ModeKeySignature | TypeError;
export declare function getKeyTones(tonic: Note, modeName: ModeName): Tone[];
export declare function getKeyTonesByDegree(tonic: Note, modeName: ModeName): Record<ModeDegree, Tone>;
export declare function convertDiatonicKeyTonesToNotes(tonic: Note, keyTones: [Tone, Tone, Tone, Tone, Tone, Tone, Tone]): Note[] | TypeError;
export declare function adjustNote(note: Note, adjustment: 'b' | '#'): Note;
export declare function generateNoteByDegree(notes: Note[]): Record<ModeDegree, Note>;
export declare function getDegreesByNote(notesByDegree: Record<ModeDegree, Note>): {
[key in Note]?: ModeDegree;
};
export declare function keySignatureToAccidentals(keySignature: ModeKeySignature): Note[];
export interface Key {
readonly tonic: Tonic;
readonly mode: ModeName;
readonly notes: Note[];
readonly accidentals: Note[];
readonly signature: ModeKeySignature;
readonly toneByDegree: Record<ModeDegree, Tone>;
readonly noteByDegree: Record<ModeDegree, Note>;
readonly degreeByNote: {
[key in Note]?: ModeDegree;
};
readonly enharmonicEquivalents: Note[];
readonly theoreticalKey: boolean;
}
export interface IonianKey extends Key {
readonly tonic: IonianTonic;
}
export interface DorianKey extends Key {
readonly tonic: DorianTonic;
}
export interface PhrygianKey extends Key {
readonly tonic: PhrygianTonic;
}
export interface LydianKey extends Key {
readonly tonic: LydianTonic;
}
export interface MixolydianKey extends Key {
readonly tonic: MixolydianTonic;
}
export interface AeolianKey extends Key {
readonly tonic: AeolianTonic;
}
export interface LocrianKey extends Key {
readonly tonic: LocrianTonic;
}
export declare function key(tonic: IonianTonic, modeName: 'Ionian'): IonianKey;
export declare function key(tonic: DorianTonic, modeName: 'Dorian'): DorianKey;
export declare function key(tonic: PhrygianTonic, modeName: 'Phrygian'): PhrygianKey;
export declare function key(tonic: LydianTonic, modeName: 'Lydian'): LydianKey;
export declare function key(tonic: MixolydianTonic, modeName: 'Mixolydian'): MixolydianKey;
export declare function key(tonic: AeolianTonic, modeName: 'Aeolian'): AeolianKey;
export declare function key(tonic: LocrianTonic, modeName: 'Locrian'): LocrianKey;
export declare function ionianKey(tonic: IonianTonic): IonianKey;
export declare function dorianKey(tonic: DorianTonic): DorianKey;
export declare function phrygianKey(tonic: PhrygianTonic): PhrygianKey;
export declare function lydianKey(tonic: LydianTonic): LydianKey;
export declare function mixolydianKey(tonic: MixolydianTonic): MixolydianKey;
export declare function aeolianKey(tonic: AeolianTonic): AeolianKey;
export declare function locrianKey(tonic: LocrianTonic): LocrianKey;