react-orchestra
Version:
A toolbox to build interactive and smart instruments on the web and mobile.
55 lines (54 loc) • 1.4 kB
TypeScript
export declare type NoteType = {
noteName: string;
instrumentName: string;
durationInMS: number;
};
export declare type ROMidiFormat = {
meta: any;
tracks: any[];
};
export declare type Midi = {
meta: any;
tracks: Track[];
header: {
ticksPerBeat: number;
};
};
export interface ProgramChangeEvent extends MidiTrackEvent {
programNumber: number;
}
export interface MidiTrackEvent {
type: string;
subtype: string;
deltaTime: number;
}
export interface KeySignatureEvent extends MidiTrackEvent {
key: string;
scale: string;
}
export interface TimeSignatureEvent extends MidiTrackEvent {
numerator: number;
denominator: number;
metronome: number;
thirtyseconds: number;
}
export interface EndOfTrackEvent extends MidiTrackEvent {
}
export declare type SetTempoEvent = {
type: string;
subtype: string;
deltaTime: number;
microsecondsPerBeat: number;
};
export declare type NoteOnEvent = {
type: string;
subtype: string;
deltaTime: number;
};
export declare type NoteOffEvent = {
type: string;
subtype: string;
deltaTime: number;
};
export declare type MidiEvent = TimeSignatureEvent | EndOfTrackEvent | KeySignatureEvent | SetTempoEvent | NoteOnEvent | ProgramChangeEvent | NoteOffEvent;
export declare type Track = (MidiEvent)[];