Beta – coming soon
Global Sound Log
Events: 0

Records keyscale plays and global output tone groups (tones + intervals only).

General Audio Settings
Engine: waiting

Configure global engine, input and output routing for sandbox tools.

Engine Form
Engine Form
Audio Input Spectrum
MIDI Input Log
Engine Form
Live global playback engine used by direct preview and manual play actions.
Global Playback Defaults
Explicit defaults used across the website for percussion, instrument, one-note melodic, chord or harmony, and dedicated microtonal playback contexts. Percussion or instrument playback can also use sampler presets.
Engine Form
Engine Form
Graphical Options

Configure navigation behavior for Graphical Harmony network view.


Technical

⚡ The Complete Guide to MIDI Commands

Published 2026-03-18 17:16

⚡ The Complete Guide to MIDI Commands

Every status byte, controller & system message — from Note On to SysEx

MIDI (Musical Instrument Digital Interface) is the universal language of electronic music. It is a technical protocol that allows instruments, computers, and hardware to communicate. At its core, MIDI is composed of commands, or messages, that tell a device what to do.


⚙️ Message Structure

Every MIDI message is a sequence of 8-bit bytes:

  • Status Byte: Indicates the type of command (e.g., Note On) and the MIDI channel. The first bit is always "1".
  • Data Bytes: Contain the actual information (e.g., note number or velocity). The first bit is always "0", limiting values to a range of 0–127.

MIDI commands are divided into two main categories: Channel Messages and System Messages.


1. Channel Messages

Directed at a specific MIDI channel (1–16). The channel number is embedded in the status byte.

🎹 Channel Voice Messages

These carry performance data and are the most common type of MIDI traffic.

Command Name Status Byte (hex) Data Bytes Description
Note Off 8n 2: Note, Velocity Sent when a key is released.
Note On 9n 2: Note, Velocity Velocity 0 is often interpreted as Note Off.
Poly Pressure An 2: Note, Pressure Pressure change for a single held key.
Control Change Bn 2: Ctrl #, Value Mod wheel, sustain pedal, etc.
Program Change Cn 1: Program # Changes the instrument patch/preset.
Pitch Bend En 2: LSB, MSB High-resolution 14-bit pitch control.
🔢 Pro Tip: In the status byte, 'n' is the MIDI channel (0–F in hex). Example: 0x90 is Note On for Channel 1; 0x9F is Note On for Channel 16.

🧩 Channel Mode Messages

Determines how a device responds to voice messages. These use Status Bn with Controller # 121–127.

Command Name Ctrl # Description
Reset All 121 Resets controllers to defaults.
Local Control 122 Connects/Disconnects keys from engine.
All Notes Off 123 Mutes all notes on the channel.

2. System Messages

System Messages are global and ignore channel assignments.

📡 System Common & Real-Time

Used for synchronization and device-wide management.

  • F2 (Song Position): Sets sequencer playback point.
  • F8 (Timing Clock): Sent 24 times per quarter note for sync.
  • FA / FB / FC: Start, Continue, and Stop commands.
  • FE (Active Sensing): Heartbeat signal to prevent stuck notes.

🧪 System Exclusive (SysEx)

Used for manufacturer-specific data like patch dumps.

Starts with F0, contains any number of data bytes, and ends with F7.


Compiled from the official MIDI specification · v1.0 / updated 2025

🎛️ Reference Guide: All MIDI commands fall between status bytes 8n and FF.