Reference
Specs & Resources
The primary sources behind this guide, plus trusted references for going deeper. Every link here is checked
automatically by npm run verify:resources.
Getting the official PDFs
The MIDI Association publishes its specifications for free, but most downloads need a free account at midi.org. MIDI 1.0, Standard MIDI Files, General MIDI, MPE and the MIDI 2.0 family are all listed on the spec index. MIDI 2.0 specifications are developed and published jointly with AMEI in Japan.
Official specifications
-
MIDI Association specification index MIDI Association
The starting point for every current MIDI specification; downloads need a free account.
midi.org
-
MIDI 1.0 Core Specifications MIDI Association
The Complete MIDI 1.0 Detailed Specification plus the core addenda and confirmations.
midi.org
-
Summary of MIDI 1.0 Messages MIDI Association
The official one-page tables of channel, system and controller messages.
midi.org
-
Standard MIDI Files Specification MIDI Association
The SMF format: chunks, delta-times, meta events and file formats 0, 1 and 2.
midi.org
-
General MIDI MIDI Association
The GM Level 1 sound set, percussion map and minimum device requirements.
midi.org
-
General MIDI 2 MIDI Association
The GM2 extension with more sounds, drum kits, controllers and Universal SysEx messages.
midi.org
-
MPE: MIDI Polyphonic Expression MIDI Association
The MPE specification for per-note pitch bend, pressure and timbre using one channel per note.
midi.org
-
MIDI 2.0 overview MIDI Association
Overview of MIDI 2.0 and links to the full family of 2.0 specifications.
midi.org
-
Universal MIDI Packet (UMP) and MIDI 2.0 Protocol MIDI Association / AMEI
The UMP format, message types, groups, Function Blocks and the MIDI 2.0 Protocol (M2-104-UM).
midi.org
-
MIDI-CI Specification MIDI Association / AMEI
MIDI Capability Inquiry: discovery, Profile Configuration, Property Exchange and Process Inquiry.
midi.org
-
MIDI over Bluetooth Low Energy (BLE-MIDI) MIDI Association
The BLE-MIDI service, characteristic and packet format with timestamps.
midi.org
-
Network MIDI 2.0 MIDI Association
UMP over UDP with discovery, sessions and error correction.
midi.org
-
USB MIDI 2.0 (MIDI Association overview) MIDI Association
How MIDI 2.0 and UMP are carried over USB, with links to the USB-IF class specification.
midi.org
-
The original USB-MIDI class: 32-bit event packets with cable numbers and Code Index Numbers.
usb.org
-
USB MIDI 2.0: UMP transport on an alternate setting with Group Terminal Blocks.
usb.org
Standards bodies
-
The MIDI Association MIDI Association
The global organization that maintains MIDI, run by the MMA (MIDI Manufacturers Association).
midi.org
-
The Japanese body that co-develops and co-publishes the MIDI specifications with the MMA.
amei.or.jp
-
USB Implementers Forum USB-IF
Publishes the USB device class definitions, including USB-MIDI 1.0 and 2.0.
usb.org
RFCs and web standards
-
The RTP-MIDI payload format behind AppleMIDI and network MIDI sessions.
rfc-editor.org
-
Practical guidance for implementing RTP-MIDI senders and receivers.
rfc-editor.org
-
The published W3C specification for MIDI access from web pages.
w3.org
-
Web MIDI API (editor's draft) W3C Audio WG
The latest working draft of the Web MIDI API.
webaudio.github.io
-
Web MIDI API specification repository W3C Audio WG
Source and issue tracker for the Web MIDI API specification.
github.com
Platform documentation
-
Reference for MIDIAccess, MIDIInput, MIDIOutput and browser compatibility.
developer.mozilla.org
-
Core MIDI Apple
Apple's MIDI framework for macOS and iOS, including UMP-based MIDI 2.0 APIs.
developer.apple.com
-
Windows MIDI Services Microsoft
Documentation for the new Windows MIDI stack with MIDI 2.0, UMP and multi-client support.
microsoft.github.io
-
MIDI on Windows (Windows apps) Microsoft
Microsoft Learn's MIDI guidance for Windows app developers.
learn.microsoft.com
-
ALSA library reference ALSA Project
API documentation for alsa-lib, including the sequencer and rawmidi interfaces.
alsa-project.org
-
ALSA sequencer interface ALSA Project
The Linux sequencer API: clients, ports, subscriptions and event routing.
alsa-project.org
-
MIDI 2.0 on Linux Linux kernel
Kernel documentation for UMP devices, USB MIDI 2.0 and the ALSA MIDI 2.0 interfaces.
kernel.org
-
android.media.midi Android
Android's MIDI API reference for USB, BLE and virtual devices.
developer.android.com
-
Android MIDI architecture Android Open Source Project
How MIDI is implemented in Android, for device makers and platform developers.
source.android.com
Learning and references
-
MIDI (Wikipedia) Wikipedia
A well-sourced overview of MIDI's history, technology and applications.
en.wikipedia.org
-
General MIDI (Wikipedia) Wikipedia
GM's history, program list and percussion map with references.
en.wikipedia.org
-
MIDI Polyphonic Expression (Wikipedia) Wikipedia
Background on MPE, its adoption and supporting instruments.
en.wikipedia.org
-
Outline of the Standard MIDI File Structure Craig Stuart Sapp, CCRMA
A concise, widely cited walkthrough of the SMF byte layout.
ccrma.stanford.edu
-
MIDI technical specification notes somascape.org
A detailed independent write-up of MIDI 1.0 messages and behaviors.
somascape.org
In this guide
Looking for people rather than documents? See forums, chat and mailing lists. For MIDI files and research datasets with license notes, see Getting MIDI files; for free instrument sounds, Samples.
Looking for code rather than reading? The library catalog lists verified open-source implementations, and the Cookbook has short runnable recipes.
Spotted an error? Edit this page on GitHub.