MIDI has been a successful tool for music transport for more than 3 decades. The features of MIDI 1.0 that we “know and love” continue to work well. The basic semantic language of music does not change and as a result the existing definitions of MIDI as musical control messages continue to work.
However, MIDI has not changed to fully take advantage of the new technical environment around it. The 2018 MIDI Manufacturers Association (MMA) wants to expand the feature set of MIDI capabilities. At the same time, they recognize there are several key hurdles and requirements to consider as they make any additions to MIDI:
• Backwards compatibility is a key requirement. Our users expect new MIDI devices to work seamlessly with MIDI devices sold over the past 33 years.
• All MIDI Status Bytes are defined. The opcodes and data payloads are defined. It is difficult to define any new message types or change the format of the existing MIDI messages.
Expanding MIDI with new features requires a new protocol with extended MIDI messages. To protect backwards compatibility in an environment with expanded features, devices need to confirm the capabilities of other connected devices. When 2 devices are connected to each other, they use MIDI 1.0 and confirm each other’s capabilities before using expanded features. If both devices share support for the same expanded MIDI features they can agree to use those expanded MIDI features. MIDI-CI provides this mechanism.
MIDI-CI: Expanding MIDI while Protecting Backwards Compatibility:
MIDI Capability Inquiry (MIDI-CI) is a mechanism to allow us to expand MIDI with new features while protecting backward compatibility with MIDI devices that do not understand these newly defined features.
MIDI-CI separates older MIDI products from newer products with new capabilities and provides a mechanism for two MIDI devices to understand what new capabilities are supported.
MIDI-CI assumes and requires bidirectional communication. Once a MIDI-CI connection is established between devices, query and response messages define what capabilities each device has.
MIDI-CI then negotiates or auto-configures to use those features that are common between the devices. MIDI-CI provides test mechanisms when enabling new features. If a test fails, then devices fall back to using MIDI 1.0 for that feature. MIDI-CI improves MIDI capabilities in several key areas.
MIDI-CI allows devices to use an expanded MIDI protocol with high resolution and multiple per note controllers. It allows for incremental adoption of new MIDI features by providing a fallback to MIDI 1.0 devices in all cases.
MIDI-CI Includes Queries for 3 major areas of expanded MIDI functionality:
- Protocol Negotiation
- Profile Configuration
- Property Exchange
Read more from MMA here and the full MIDI-CI spec here. You can see a demo video below.