The MIDI Manufacturers Association adopted 5 core MIDI 2.0 specifications on February 20, 2020.
MIDI 2.0 Specification Overview
This document defines the specific collection of MMA/AMEI specifications that collectively comprise the core MIDI 2.0 Specification and introduces the fundamental concepts of MIDI 2.0. The document also defines minimum requirements for Devices to claim MIDI 2.0 compatibility.
MIDI Capability Inquiry (MIDI-CI)
MIDI-CI defines an architecture that allows Devices with bidirectional communication to agree to use extended MIDI capabilities beyond those defined in MIDI 1.0, while carefully protecting backward compatibility. MIDI-CI features "fall back" mechanisms so that if a Device does not support new features MIDI continues to work as defined by MIDI 1.0. Goals of MIDI-CI design:
Fully backward compatible: supports continued MIDI 1.0 functionality for any Devices that do not recognize extended MIDI features enabled by MIDI-CI.
- Allow easy configuration between MIDI-CI Devices.
- Sender can know the capabilities of a Receiver.
- Sender and Receiver can negotiate auto-configuration details
- Define method for negotiating choice of Protocol between Devices.
- Define method for using Profiles.
- Define method for Discovering, Getting, and Setting a wide range of Device Properties.
Common Rules for MIDI-CI Profiles
MIDI-CI allows devices to communicate their capabilities to each other. Devices can use that capabilities information to self-configure their MIDI connections and related settings. Profiles are a beneficial component in enabling intelligent auto-configuration.
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. In addition to defining response to MIDI messages, a Profile may optionally also define other device functionality requirements. This definition also then implies MIDI implementation of a sender or in some cases may require a defined MIDI implementation of a sender.
Common Rules for MIDI-CI Property Exchange
Property Exchange is a set of MIDI-CI messages used to access a wide range of properties in MIDI devices. The exchange of properties takes place between a MIDI-CI Initiator and a MIDI- CI Responder.
This Common Rules for Property Exchange document provides a complement to the MIDI-CI specification by defining details of the Property Exchange mechanism and rules for the data payload in MIDI-CI Property Exchange messages. Further Property Exchange specifications define schemas and various data payloads that use the rules in MIDI-CI and this document to achieve specific tasks.
Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol
This Specification defines two major extensions to the MIDI 1.0 Protocol:
- Universal MIDI Packet (UMP) Format
UMP can contain all MIDI 1.0 Protocol messages and all MIDI 2.0 Protocol messages in a single, common container definition with a payload format which is intended to be usable in (or easily adaptable for) any standardized or proprietary data transport.
- MIDI 2.0 Protocol
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.
These core MIDI 2.0 specifications are all available for download (please log in to download).
8 new MIDI 2.0 Specifications adopted (total 13)
MIDI-CI Property Exchange Foundational Resources: DeviceInfo, ChannelList, JSONSchema
This specification is based on the MIDI-CI Capability Inquiry Specification and the Common Rules for MIDI-CI Property Exchange Specification.
Property Exchange (PE) defines that devices may have Resources, each one being a set of one or more Properties (Property Data) in a device which are accessible by a Property Exchange inquiry and MIDI-CI Transactions.
Foundational Resources provide core Properties of PE Devices and serve to enable other Resources. Many other Resources depend on or make use of Properties discovered in Foundational Resources. This specification defines three Foundational Resources.
The DeviceInfo Resource provides core details about the identity of a Property Exchange Device. It contains the same data as the Device Inquiry Universal SysEx Message. DeviceInfo also includes human-readable Properties for Manufacturer, Family, Model, Version information, and more.
ChannelList is a List Resource which describes the current MIDI Channels in use across the whole Device or, in the case of a Device using the Universal MIDI Packet Format, the current MIDI Channels in use across one Group of the Universal MIDI Packet Format. It describes the current Channel, Program, Group, MPE Status and other properties.
The "JSONSchema" Resource provides the JSON Schema for Manufacturer Specific Resources "schema" property. See [MMA03] Common Rules for MIDI-CI Property Exchange Section 11.3.2 for more information.
MIDI-CI Property Exchange Mode Resources: ModeList, Current Mode
This specification defines two Resources, ModeList and CurrentMode. If a Property Exchange Device has Modes, then it should support the ModeList Resource and CurrentMode Resource.
ModeList is a List Resource which describes the different Modes available in the Device. A Mode is a fundamental configuration of a Device. A change of Mode might change the response to MIDI messages, might change the number of active MIDI Channels, and might change the contents of Payload Data on the Device for any supported Resource.
The CurrentMode is a Simple Property Resource used to get or set the current Mode. The list of Modes available is retrieved using the ModeList Resource.
MIDI-CI Property Exchange ProgramList Resource
ProgramList is a List Resource which provides the list of Programs available in a Program Collection. A Program Collection is a grouping of Programs with some common trait (bank, category, instrument, synthesis engine, presets, etc).
MIDI-CI Property Exchange Get and Set Device State
The Property Exchange Resources described in this document allow for an Initiator to send or receive Device State, or in other words, to capture a snapshot which might be sent back to the Device at a later time. The primary goal of this application of Property Exchange is to GET the current memory of a MIDI Device. This allows a Digital Audio Workstation (DAW) or other Initiator to store the State of a Responder Device between closing and opening of a project. Before a DAW closes a project, it performs the GET inquiry and the target Device sends a REPLY with all data necessary to restore the current State at a later time. When the DAW reopens a project, the target Device can be restored to its prior State by sending an Inquiry: Set Property Data Message.
Data included in each State is decided by the manufacturer but typically might include the following properties (not an exhaustive list):
- Current Program
- All Program Parameters
- Mode: Single Patch, Multi, etc. Current Active MIDI Channel(s) Controller Mappings
- Samples and other binary data Effects
- Output Assignments
MIDI-CI Property Exchange Channel Resources: ChannelMode, BasicChannelRx, BasicChannelTx
This document defines three Property Exchange Resources: ChannelMode, BasicChannelRx, and BasicChannelTx. These Resources are used to Get and Set information related to the choice of MIDI Channels which are actively in use by a Device.
MIDI-CI Property Exchange Local On Resource
This document defines the LocalOn Resource which uses Property Exchange to Get and Set the "Local On/Off" setting of a Property Exchange Device.
MIDI-CI Property Exchange MaxSysex8Streams Resource
This document defines the MaxSysex8Streams Resource which uses Property Exchange to discover how many simultaneous System Exclusive 8 messages are supported by a Device when using the MIDI 2.0 Protocol.
MIDI-CI Property Exchange ExternalSync Resource
This document defines the ExternalSync Resource. If a Property Exchange Device has a clock which is able to synchronize to external MIDI sync messages, then the Device should support the ExternalSync Resource.
More MIDI 2.0 innovation on the horizon
MMA members (and members of AMEI, the Japanese MIDI organization) are working incredibly hard on new and exciting MIDI 2.0 possibilities. There are working groups for Standard MIDI 2 File Format, new MIDI 2.0 transports and multiple Profile working group sub committees including active Profile subgroups for Default CC Mapping, Orchestral Articulations, Guitar Controllers, Wind Controllers, DAW control and Piano.
The MMA does not publish details of specifications before they are adopted because that could lead to interoperability issues, but this list of current activities gives an idea of how much work is currently going on.
New MIDI Specification Area of the site coming soon!
With all the new MIDI 2.0 specifications coming out and more being planned, we decided we needed a better way for people to read about and download all MIDI specifications.
The 8 new MIDI 2.0 specifications outlined above will soon be made available for download in a updated MIDI Specification section of the website that we have been working on.
We have also been working on editorial updates to older MIDI specification to remove some culturally insensitive language that was contained in older MIDI 1.0 specifications.
All MMA members are committed to improving our processes and communications and we always welcome feedback from people on the site.
You can always reach out us here. https://www.midi.org/contact-us