cxchord
Version:
Midi Chord Recognizer
87 lines (74 loc) • 1.75 kB
text/typescript
import { BayesChordCalculator } from "./CxBayes";
import { ChordInstance } from "./CxChordInst";
export interface ChordMapEntry {
notes: number[]
root: number
inv: number
group: number
count?: number
probability?: number
}
export interface MatchedNotes {
[key:string] : {
invertions: any[]
extensions: any[]
knockouts: any[]
mustHave: any[]
rootNotes: any[]
conflicts: any[]
roots: number[]
group: number
}
}
export interface ChordMap {
[key:string]: ChordMapEntry
}
export interface ChordMapTable {
[key:string]: ChordMapEntry[]
}
export interface Conflicts {
[key:string]: any[][]
}
export interface RootNoteNames {
[key:string]: string[]
}
export interface RuleFx {
( chord: ChordInstance, bayes: BayesChordCalculator, row: number, col: number ) : number
}
export interface Rule {
rule?: string
chord: ChordInstance
ruleFx: RuleFx
}
export interface Hypothesis {
idx: number
key: string
inv: number
len : number
root: number
group: number
}
export interface ChordMatchIntf {
hypo: Hypothesis,
chord: string
root: string
type: string
bass: string
inv: number
notes: number[]
list: string
}
export interface Posterior {
post: number,
idx: number,
hypo?: Hypothesis
}
export interface ScaleMapEntry {
notes: number[]
major: number
minor: number | null
group: number
}
export interface ScaleMap {
[key:string]: ScaleMapEntry
}