MiDi Architecture: Digital Music Standard
- MiDi Architecture is the foundational digital standard for representing musical events, separating event sequencing from sound synthesis.
- It employs variable-length timing and explicit event messages (e.g., Note On/Off, meta-events) to support monophonic and polyphonic compositions.
- Its modular, device-agnostic design enhances cross-platform interoperability and enables innovative, synchronized music production and performance.
The MiDi architecture is the foundational digital specification and organizational principle for encoding, transmitting, and reproducing symbolic music data. It defines how musical events—such as note onsets, dynamics, and control changes—are represented in a compact, device-agnostic format. Central to its design is the separation of event sequencing from sound synthesis, allowing a standardized, protocol-driven interface between musical scores, hardware synthesizers, software instruments, and editing or generative systems. The following sections provide a comprehensive, technically rigorous overview of the MiDi architecture, including its file structure, event representation, technical conventions, applications, and concrete construction examples, as canonically described in the literature (Oliveira et al., 2017).
1. File Structure and Organization
MIDI files are structured as sequences of events, where each event comprises a pair: a time value and a MIDI message. The file begins with a header chunk that defines global attributes such as the number of ticks-per-quarter-note (e.g., 128), which establishes the resolution for timing. After the header, a MIDI file contains one or more track sections (multi-track capability enables polyphonic and multi-instrument composition).
Each track is a series of events, and each event is represented as:
- Delta Time (VLV format): Encodes the time to wait before applying the event. The Variable Length Value (VLV) representation ensures compact storage: short intervals consume fewer bytes, while longer intervals expand as needed.
- MIDI Message: The message consists of one STATUS byte (high bit set) and one or more DATA bytes (high bit zero). STATUS bytes specify the type of operation (e.g., note on/off, control change), while DATA bytes encode parameters (such as pitch or velocity).
For example, the event
1 |
00 FF 58 04 04 02 30 08 |
2. Musical Signal Production: Monophonic and Polyphonic Scenarios
MIDI encodes musical intent rather than sound. It serves as a digital score, instructing a synthesizer what to play and how.
- Note On / Note Off: A "Note On" command (e.g., 0x90 for channel 0) instructs the synthesizer to begin a note, with parameters for pitch (e.g., 0x3C = C4) and velocity (intensity). The "Note Off" command (0x80) terminates the note; alternatively, a "Note On" with velocity zero serves the same function.
- Monophonic Encoding: In monophonic tracks, a new "Note On" implies the end of the current note (unless a separate "Note Off" is issued). This ensures legato sequences where note transitions are strictly sequential.
- Polyphonic Encoding: In polyphonic tracks, multiple "Note On" events may overlap, each note continuing until its matching "Note Off" event or a velocity-zero "Note On". This supports chords and simultaneous layers.
- Channelization and Orchestration: Each channel (0–15 encoded in the low nibble of the status byte) corresponds to a separate instrument or timbral strand, permitting complex orchestrations by distributing note events across channels and selectively using program change messages to assign instrument sounds.
3. Technical Details: Encoding and Time Representation
Several technical conventions underlie the robustness and flexibility of MIDI:
- Delta Time and VLV: Delta times—encoded using the VLV format—allow for non-uniform spacing between events and compact representation of both fast and slow musical passages.
- Message Format—Bit/Byte Layout:
- Status Byte: (where "cccc" = MIDI channel) indicates a "Note On."
- Data Byte: for pitch (0–127) and for velocity.
The division of command/data is succinctly represented:
- Timing Resolution: The header defines the fundamental granularity by specifying ticks per quarter note. Durational relationships derive from this—e.g., 256 ticks = half note if 128 ticks = quarter note.
- Explicit Examples:
- Monophonic MIDI event stream (excerpted):
00 FF 58 04 04 02 30 08 00 FF 59 02 00 00 00 90 3C 28 ...
demonstrates combined use of meta messages (e.g., time signature) and note events, with durations realized by adjusting delta times. - Polyphonic MIDI event stream:
1 2 3
00 90 40 40 (Start note E4) 00 90 43 40 (Start note G4) 81 00 80 43 00 (Stop note G4)
- represents overlapping voices and explicit multi-note articulation.
- Monophonic MIDI event stream (excerpted):
4. Applications and Use Cases
MIDI's architecture underpins numerous applications:
- Music Production and Live Performance: As a digital score, MIDI sequences convey precise musical instructions for synthesizers, enabling repeatable, editable, and portable performance encoding.
- Device Interconnection: MIDI links synthesizers, controllers, sequencers, and computers, facilitating synchronized and coordinated musical interaction with minimal data overhead compared to audio formats (e.g., .wav, .mp3).
- Pedagogical Tools and Software Development: The explicit event/message paradigm provides a natural laboratory for algorithmic composition, educational exploration, and development of interactive installations or music tools.
- Cross-Platform Operability: The architecture's origins in the early 1980s and its subsequent adoption have made it a central lingua franca for hardware and software across vendors, genres, and generations.
5. Concrete Examples of MIDI File Construction
The practical construction of MIDI files involves carefully sequencing message/delta time pairs according to intended musical structure.
Example | Byte Sequence | Description |
---|---|---|
Monophonic | 00 90 3C 28 81 40 80 3C 00 ... | C4 note on, duration (delta = 0x81 0x40 ticks), C4 note off |
Polyphonic | 00 90 40 40, 00 90 43 40, 81 00 80 43 00 ... | Overlapping notes, forming a chord |
Instrument Assign | 00 C0 41, 00 C1 00, 00 C9 00 | Alto Sax, Piano, Bass Drum assigned to channels 1, 2, 10 |
Such patterns illustrate how monophonic and polyphonic textures, as well as instrument assignments, are realized in actual bytecode.
6. Design Implications and Enduring Legacy
The rigorous, modular design of the MiDi architecture—based on universal temporal and symbolic primitives—has ensured its centrality in computer and electronic music. The strictly defined event/message separation, flexible timing resolution, and explicit channel/instrument assignment provide both expressive power and efficiency. The architecture's suitability for sequencing, generation, and real-time manipulation assures its continued relevance, while its clarity and abstraction level make it an enduring model for subsequent symbolic music representations and protocol design.
7. Summary of Key Technical Features
Feature | Encoding Mechanism | Musical Function |
---|---|---|
Event timing | Variable Length Value (VLV) delta time | Controls rhythmic precision |
Channel usage | 4-bit channel code in status byte | Multi-instrument polyphony |
Monophony/poly. | Note on/off event handling | Sequential vs. overlapping notes |
Instrumentation | Program change messages | Assigns patches per channel |
Meta-events | Status 0xFF and subtype | Global directives & markers |
The MiDi architecture's design principles—defining music via a stream of timestamped, parameterized instructions—remain instrumental in shaping the evolution of digital music tools and symbolic encoding frameworks.