react-orchestra
Version:
A toolbox to build interactive and smart instruments on the web and mobile.
131 lines (130 loc) • 4.69 kB
TypeScript
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;
}[];
}>;