UNPKG

react-orchestra

Version:

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

131 lines (130 loc) 4.69 kB
import { NoteType, Midi, MidiEvent, ROMidiFormat } from "../types"; export declare const getWriter: () => any; export declare const getUniqueFromMidiNotes: (notes: NoteType[]) => any[]; export declare const getAllMetadata: (parsedMidi: 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; }; export declare const midiNoteNumberToName: (midi: number) => string; export declare const urlToJSON: (midiURL: string) => Promise<any>; export declare const getAllTracks: (parsedMidi: 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: MidiEvent[]; programChange: MidiEvent[]; trackname: MidiEvent[]; noteOn: MidiEvent[]; noteOnValid: MidiEvent[]; noteOnInvalid: MidiEvent[]; noteOff: MidiEvent[]; endOfTrack: MidiEvent[]; noteCount: number; instrumentNumber: number; instrumentName: string | undefined; }[]; }; export declare const getInstrumentNameFromMidiTrack: (track: MidiEvent[]) => string | undefined; export declare const binaryStringToJSON: (binaryStringMidi: string) => any; export declare const getNoteOnEvents: (track: MidiEvent[]) => { noteOnEvents: MidiEvent[]; validNoteOnEvents: MidiEvent[]; invalidNoteOnEvents: MidiEvent[]; }; export declare const getNoteOffEvents: (track: MidiEvent[]) => { noteOffEvents: MidiEvent[]; validNoteOffEvents: MidiEvent[]; invalidNoteOffEvents: MidiEvent[]; }; export declare const getTempoFromTrack: (track: MidiEvent[]) => { deltaTime: number; microsecondsPerBeat: number; }; export declare const getMetadataFromTrack: (track: MidiEvent[]) => { microsecondsPerBeat: undefined; keySignature: undefined; timeSignature: undefined; endOfTrack: undefined; }; export declare const urlToBinaryString: (midiURL: string) => Promise<string>; export declare const 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; }; export declare const getMillisecondsPerTick: (microsecondsPerBeat: number, ticksPerBeat: number) => number; export declare const getBPMData: (microSecondsPerBeat: number, ticksPerBeat: number, timeSignature: { numerator: number; denominator: number; }) => { BPM: number; }; export declare const bpmToMSPerBeat: (BPM: number, timeSignatureNumerator?: number, timeSignatureDenominator?: number) => number; export declare const getTracksAndMetaFromParsedMidi: (parsedMidi: Partial<Midi> & { musicTracks: any[]; }) => ROMidiFormat; export declare const 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: MidiEvent[]; programChange: MidiEvent[]; trackname: MidiEvent[]; noteOn: MidiEvent[]; noteOnValid: MidiEvent[]; noteOnInvalid: MidiEvent[]; noteOff: MidiEvent[]; endOfTrack: MidiEvent[]; noteCount: number; instrumentNumber: number; instrumentName: string | undefined; }[]; }>;