UNPKG

react-orchestra

Version:

A toolbox to build interactive and smart instruments on the web and mobile.

145 lines (144 loc) 5.89 kB
export default class MidiIO { millisecondsPerTick?: number; timeSignatureNumerator?: number; timeSignatureDenominator?: number; ticksPerBeat?: number; BPM?: number; settings: { midiURL: string | null; parsedMidi: any; BPM: number; }; isInitialised: boolean; constructor(userSettings: MidiIO["settings"]); setBPM(BPM?: number): void; static parseMidi: (url: string) => Promise<{ meta: { tempo: any; keySignature: any; timeSignature: any; timeSignatureNumerator: any; timeSignatureDenominator: any; timeSignatureMetronome: any; timeSignatureThirtyseconds: any; endOfTrack: any; trackCount: number; microsecondsPerBeat: any; instrumentNumbers: any[]; instrumentNames: (string | undefined)[]; millisecondsPerTick: number; ticksPerBeat: number; BPM: number; }; musicTracks: { controller: import("../types").MidiEvent[]; programChange: import("../types").MidiEvent[]; trackname: import("../types").MidiEvent[]; noteOn: import("../types").MidiEvent[]; noteOnValid: import("../types").MidiEvent[]; noteOnInvalid: import("../types").MidiEvent[]; noteOff: import("../types").MidiEvent[]; endOfTrack: import("../types").MidiEvent[]; noteCount: number; instrumentNumber: number; instrumentName: string | undefined; }[]; }>; static getTracksAndMetaFromParsedMidi: (parsedMidi: Partial<import("../types").Midi> & { musicTracks: any[]; }) => import("../types").ROMidiFormat; static getWriter: () => any; static getUniqueFromMidiNotes: (notes: import("../types").NoteType[]) => any[]; static midiNoteNumberToName: (midi: number) => string; static urlToJSON: (midiURL: string) => Promise<any>; static getAllMetadata: (parsedMidi: import("../types").Midi, tracks: any[]) => { tempo: any; keySignature: any; timeSignature: any; timeSignatureNumerator: any; timeSignatureDenominator: any; timeSignatureMetronome: any; timeSignatureThirtyseconds: any; endOfTrack: any; trackCount: number; microsecondsPerBeat: any; instrumentNumbers: any[]; instrumentNames: (string | undefined)[]; millisecondsPerTick: number; ticksPerBeat: number; BPM: number; }; static getAllTracks: (parsedMidi: import("../types").Midi) => { meta: { tempo: any; keySignature: any; timeSignature: any; timeSignatureNumerator: any; timeSignatureDenominator: any; timeSignatureMetronome: any; timeSignatureThirtyseconds: any; endOfTrack: any; trackCount: number; microsecondsPerBeat: any; instrumentNumbers: any[]; instrumentNames: (string | undefined)[]; millisecondsPerTick: number; ticksPerBeat: number; BPM: number; }; musicTracks: { controller: import("../types").MidiEvent[]; programChange: import("../types").MidiEvent[]; trackname: import("../types").MidiEvent[]; noteOn: import("../types").MidiEvent[]; noteOnValid: import("../types").MidiEvent[]; noteOnInvalid: import("../types").MidiEvent[]; noteOff: import("../types").MidiEvent[]; endOfTrack: import("../types").MidiEvent[]; noteCount: number; instrumentNumber: number; instrumentName: string | undefined; }[]; }; static getInstrumentNumberFromMidiTrack: (track: import("../types").MidiEvent[]) => string | undefined; static binaryStringToJSON: (binaryStringMidi: string) => any; static getNoteOnEvents: (track: import("../types").MidiEvent[]) => { noteOnEvents: import("../types").MidiEvent[]; validNoteOnEvents: import("../types").MidiEvent[]; invalidNoteOnEvents: import("../types").MidiEvent[]; }; static getNoteOffEvents: (track: import("../types").MidiEvent[]) => { noteOffEvents: import("../types").MidiEvent[]; validNoteOffEvents: import("../types").MidiEvent[]; invalidNoteOffEvents: import("../types").MidiEvent[]; }; static getTempoFromTrack: (track: import("../types").MidiEvent[]) => { deltaTime: number; microsecondsPerBeat: number; }; static getMetadataFromTrack: (track: import("../types").MidiEvent[]) => { microsecondsPerBeat: undefined; keySignature: undefined; timeSignature: undefined; endOfTrack: undefined; }; static urlToBinaryString: (midiURL: string) => Promise<string>; static noteOffEventToNote: (noteOffEvent: any, noteInstrumentName: string, previousEndTime: number, msPerTick: number) => { noteNumber: any; noteName: string; startTimeInMS: number; durationInMS: number; endTimeInMS: number; noteInstrumentName: string; deltaTime: any; msPerTick: number; }; static getMillisecondsPerTick: (microsecondsPerBeat: number, ticksPerBeat: number) => number; static getBPMData: (microSecondsPerBeat: number, ticksPerBeat: number, timeSignature: { numerator: number; denominator: number; }) => { BPM: number; }; static bpmToMSPerBeat: (BPM: number, timeSignatureNumerator?: number, timeSignatureDenominator?: number) => number; }