UNPKG

12tet

Version:

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

62 lines (61 loc) 3.07 kB
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;