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-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.
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.
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.
This Specification defines two major extensions to the MIDI 1.0 Protocol:
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.
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.
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).
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):
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.
This document defines the LocalOn Resource which uses Property Exchange to Get and Set the "Local On/Off" setting of a Property Exchange Device.
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.
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.
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.
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