qambi
Version:
MIDI sequencer, loads MIDI files, can record and playback MIDI, uses WebMIDI and WebAudio
31 lines (25 loc) • 1.61 kB
JavaScript
// standard MIDI events
const MIDIEventTypes = {}
Object.defineProperty(MIDIEventTypes, 'NOTE_OFF', {value: 0x80}) //128
Object.defineProperty(MIDIEventTypes, 'NOTE_ON', {value: 0x90}) //144
Object.defineProperty(MIDIEventTypes, 'POLY_PRESSURE', {value: 0xA0}) //160
Object.defineProperty(MIDIEventTypes, 'CONTROL_CHANGE', {value: 0xB0}) //176
Object.defineProperty(MIDIEventTypes, 'PROGRAM_CHANGE', {value: 0xC0}) //192
Object.defineProperty(MIDIEventTypes, 'CHANNEL_PRESSURE', {value: 0xD0}) //208
Object.defineProperty(MIDIEventTypes, 'PITCH_BEND', {value: 0xE0}) //224
Object.defineProperty(MIDIEventTypes, 'SYSTEM_EXCLUSIVE', {value: 0xF0}) //240
Object.defineProperty(MIDIEventTypes, 'MIDI_TIMECODE', {value: 241})
Object.defineProperty(MIDIEventTypes, 'SONG_POSITION', {value: 242})
Object.defineProperty(MIDIEventTypes, 'SONG_SELECT', {value: 243})
Object.defineProperty(MIDIEventTypes, 'TUNE_REQUEST', {value: 246})
Object.defineProperty(MIDIEventTypes, 'EOX', {value: 247})
Object.defineProperty(MIDIEventTypes, 'TIMING_CLOCK', {value: 248})
Object.defineProperty(MIDIEventTypes, 'START', {value: 250})
Object.defineProperty(MIDIEventTypes, 'CONTINUE', {value: 251})
Object.defineProperty(MIDIEventTypes, 'STOP', {value: 252})
Object.defineProperty(MIDIEventTypes, 'ACTIVE_SENSING', {value: 254})
Object.defineProperty(MIDIEventTypes, 'SYSTEM_RESET', {value: 255})
Object.defineProperty(MIDIEventTypes, 'TEMPO', {value: 0x51})
Object.defineProperty(MIDIEventTypes, 'TIME_SIGNATURE', {value: 0x58})
Object.defineProperty(MIDIEventTypes, 'END_OF_TRACK', {value: 0x2F})
export {MIDIEventTypes}