Spaces:
Sleeping
Sleeping
| import {MidiData, MidiEvent} from "./MIDI/midi"; | |
| import Node from "./Matcher/node"; | |
| interface Note { | |
| channel: number; | |
| start: number; | |
| duration: number; | |
| startTick: number; | |
| endTick: number; | |
| pitch: number; | |
| velocity?: number; | |
| beats?: number; | |
| track?: number; | |
| finger?: number; | |
| index?: number; | |
| deltaSi?: number; | |
| softIndex?: number; | |
| matches?: Node[]; | |
| id?: string; | |
| ids?: string[]; | |
| } | |
| interface Tempo { | |
| tempo: number; | |
| tick: number; | |
| time: number; // in milliseconds | |
| } | |
| interface NotationEvent { | |
| data: MidiEvent; | |
| track?: number; | |
| deltaTime?: number; | |
| deltaTicks?: number; | |
| time?: number; | |
| ticks?: number; | |
| } | |
| interface BeatInfo { | |
| beatIndex?: number; | |
| beatsUnit: number, | |
| beats: number, | |
| tick: number, | |
| } | |
| interface NotationMetaInfo { | |
| beatInfos?: BeatInfo[]; | |
| [key: string]: any; | |
| } | |
| interface MeasureRange { | |
| startTick: number; | |
| endTick: number; | |
| index: number; | |
| } | |
| interface NotationData { | |
| ticksPerBeat?: number; | |
| notes: Note[]; | |
| channels?: Note[][]; | |
| events?: NotationEvent[]; | |
| tempos?: Tempo[]; | |
| endTime?: number; | |
| endTick?: number; | |
| pitchMap?: {[key: number]: Note[]}; | |
| measures?: MeasureRange[]; | |
| meta?: NotationMetaInfo; | |
| } | |
| interface FromToRange { | |
| from: number; | |
| to: number; | |
| } | |
| interface Pedal { | |
| type: string; | |
| start: number; | |
| duration: number; | |
| value: number; | |
| } | |
| interface Bar { | |
| time: number; | |
| index: number; | |
| } | |
| interface NotationProtoData { | |
| channels: Note[][]; | |
| meta: NotationMetaInfo; | |
| ticksPerBeat: number; | |
| tempos: Tempo[]; | |
| keyRange?: {low: number, high: number}; | |
| pedals?: Pedal[]; | |
| bars?: Bar[]; | |
| endTime?: number; | |
| endTick?: number; | |
| correspondences?: number[]; | |
| events?: NotationEvent[]; | |
| measures?: any; | |
| } | |
| declare class Notation implements NotationProtoData { | |
| static parseMidi(data: MidiData, options?: {fixOverlap?: boolean}): Notation; | |
| ticksPerBeat: number; | |
| channels: Note[][]; | |
| notes: Note[]; | |
| events?: NotationEvent[]; | |
| tempos: Tempo[]; | |
| endTime: number; | |
| endTick: number; | |
| duration: number; | |
| pitchMap: {[key: number]: Note[]}; | |
| measures?: MeasureRange[]; | |
| keyRange?: {low: number, high: number}; | |
| pedals?: Pedal[]; | |
| bars?: Bar[]; | |
| meta: NotationMetaInfo; | |
| constructor (fields: NotationProtoData); | |
| findChordBySoftindex (softIndex: number, radius?: number): Note[]; | |
| averageTempo (tickRange: FromToRange): number; | |
| ticksToTime (ticks: number): number; | |
| timeToTicks (time: number): number; | |
| tickRangeToTimeRange (tickRange: FromToRange): FromToRange; | |
| /*getMeasureRange (measureRange: {start: number, end: number}): { | |
| tickRange: object, | |
| timeRange: object, | |
| };*/ | |
| scaleTempo (options: {factor: number} | {headTempo: number}): void; | |
| } | |
| declare const midiToEvents: (midi: MidiData, timeWarp?: number) => any; | |
| export { | |
| NotationData, | |
| Note, | |
| NotationEvent, | |
| Notation, | |
| midiToEvents, | |
| }; | |