Official MIDI Specifications

MIDI 2.0 - Updated June 2023

MIDI 2.0 is an extension of MIDI 1.0. It does not replace MIDI 1.0 but builds on the core principles, architecture, and semantics of MIDI 1.0.

A foundational architecture for MIDI 2.0 expansion is defined by the MIDI Capability Inquiry (MIDI-CI) specification. MIDI-CI allows Devices with bidirectional communication to agree to use extended MIDI capabilities beyond those already defined in MIDI 1.0, while carefully protecting backward compatibility.

MIDI 2.0 is not a stand-alone specification. Manufacturers and developers must have a thorough understanding of MIDI 1.0 in order to implement MIDI 2.0. 

These documents make up the MIDI 2.0 Core Specifications.
  1. MIDI 2.0 Specification Overview
  2. MIDI Capability Inquiry (MIDI-CI)
  3. Common Rules for MIDI-CI Profiles
  4. Common Rules for MIDI-CI Property Exchange
  5. Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol
  6. MIDI Clip File Specification (SMF format for UMP)
There are specifications that build on the core MIDI 2.0 specifications. These define further capabilities in MIDI 2.0 for specific applications and various device types.
The MIDI 2.0 Protocol is an extension of the MIDI 1.0 Protocol. Architectural concepts and semantics remain the same as MIDI 1.0. Compatibility for translation to/from the MIDI 1.0 Protocol is given high priority in the design of the MIDI 2.0 Protocol.

Compared to the MIDI 1.0 Protocol, MIDI 2.0 Protocol messages have extended data resolution for all Channel Voice Messages. New properties have been added to some Channel Voice Messages, and new Channel Voice Messages have been added with greatly improved Per-Note control and much more musical expression.
Property Exchange is part of the MIDI Capability Inquiry (MIDI-CI) specification and MIDI 2.0. Property Exchange is a method for getting and setting various data, called Resources, between two Devices. Resources are exchanged inside two payload fields of System Exclusive Messages defined by MIDI-CI, the Header Data field and Property Data field. This document defines only the contents of the Header Data and Property Data fields. For information on how to transmit and receive these Resource payloads inside MIDI-CI System Exclusive messages, see the MIDI Capability Inquiry specification and Common Rules for MIDI-CI Property Exchange specification.
A Profile is a defined set of rules for how a MIDI receiver device implementing the Profile shall respond to a chosen set of MIDI messages to achieve a particular purpose or to suit a particular application.
Found here are past revisions of MIDI 2.0 specifications. Some of these, such as MIDI-CI v1.1, may be useful for checking backward compatibility.