This grammar file maps the structure of the MIDI System Exclusive File Format. The MIDI Sysex File is a wrapper around manufacturer-specific data. Defining this structure facilitates parsing of the MIDI data it contains.
Grammar files provide an interface for editing and translating human readable values to and from the binary file, and are used in conjunction with the hex and binary file analysis tools Synalize It! on macOS and Hexinator on Windows. Grammars are stored as XML, support both Python and Lua scripting languages, and can export to C structs as well as inherit structures from object oriented languages.
This grammar does not cover MIDI System Common or System Real Time Messages, and focuses on Non Real Time Universal System Exclusive Messages.
- Download and open the midi_sysex.grammar in either Synalize It! or Hexinator.
- Open a MIDI Sysex file. If you don't have one available you can download a sample Sysex file (like test.syx) that is provided as a part of this repository.
- Apply the MIDI Sysex grammar to the Sysex file.
- MIDI 1.0 Universal System Exclusive Messages documentation published by the MIDI Association
- Somascape's Guide to the MIDI Software Specification, specifically the section on System Exclusive Messages
- MIDI Technical Fanatic's Brainwashing Center