UNPKG

midi-file-io

Version:

Reads, parses and writes MIDI files. Fork of NHQ's midi-file-parser.

106 lines 2.69 kB
/** * User: curtis * Date: 10/31/18 * Time: 1:48 AM */ export declare enum MidiFileType { /** * contains a single track */ Single = 0, /** * contains one or more simultaneous (as in played simultaneously) tracks */ Simultaneous = 1, /** * contains one or more independent (as in played independently) tracks */ Independent = 2 } export type MidiChannelType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15; /** * Number of sharps or flats * -7 = 7 flats * 0 = key of C * +7 = 7 sharps */ export type MidiSharpFlatCount = -7 | -6 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7; /** * 0 = Major * 1 - Minor */ export type MidiScaleMode = 0 | 1; export interface MidiKeySignature { key: MidiSharpFlatCount; scale: MidiScaleMode; } export declare enum MidiIoEventType { Channel = "channel", Meta = "meta", SysEx = "sysEx", DividedSysEx = "dividedSysEx" } export declare enum MidiIoEventSubtype { ChannelAftertouch = "channelAftertouch", Controller = "controller", CopyrightNotice = "copyrightNotice", CuePoint = "cuePoint", EndOfTrack = "endOfTrack", InstrumentName = "instrumentName", KeySignature = "keySignature", Lyrics = "lyrics", Marker = "marker", MidiChannelPrefix = "midiChannelPrefix", NoteAftertouch = "noteAftertouch", NoteOff = "noteOff", NoteOn = "noteOn", PitchBend = "pitchBend", ProgramChange = "programChange", SetTempo = "setTempo", SequenceNumber = "sequenceNumber", SequencerSpecific = "sequencerSpecific", SmpteOffset = "smpteOffset", TimeSignature = "timeSignature", TrackName = "trackName", Text = "text", Unknown = "unknown" } export interface MidiIoHeader { formatType: MidiFileType; trackCount: number; ticksPerQuarter: number; } export interface MidiIoEvent { amount?: number; channel?: MidiChannelType; controllerType?: number; data?: string; deltaTime: number; denominator?: number; hour?: number; frame?: number; frameRate?: number; key?: number; metronome?: number; microsecondsPerBeat?: number; min?: number; noteNumber?: number; number?: number; numerator?: number; programNumber?: number; scale?: number; sec?: number; subframe?: number; subtype: MidiIoEventSubtype; text?: string; thirtyseconds?: number; type: MidiIoEventType; value?: number; velocity?: number; } export interface MidiIoSong { header: MidiIoHeader; tracks: MidiIoTrack[]; } export type MidiIoTrack = MidiIoEvent[]; //# sourceMappingURL=types.d.ts.map