MIDI (Musical Instrument Digital Interface) is a standard communications protocol for connecting musical instruments, computers, and related audio devices for playing, editing, and recording music.
In the xenharmonic space, it is used for transmitting scores as
.mid files, and for driving synthesizers from keyboards/instruments or scores.
Each MIDI link supports 16 channels (numbered 1–16, but encoded as 0–15), with 128 pitches each (numbered 0–127). In typical applications, these pitches are assigned to 12edo pitches from C−1 (8.2 Hz) to G9 (12.5 kHz), and the channels are used for different instruments. Pitch bend messages allow the pitch to be varied with more precision than a semitone, but apply the same bend to all notes sent on a channel.
There are a variety of hacks/extensions that allow for varying amounts of xenharmonicity:
- Channel Rotation - This technique uses all 16 channels for a single instrument, rotating between them for subsequent notes, so that each note can have an independent pitch bend applied to it. For polyphonic music with long sustain of each note, this can still result in audible pitch bend collisions, however.
- MIDI Tuning Standard (MTS) - Allows for both a bulk tuning dump message, giving a tuning for each of 128 notes, and a tuning message for individual notes as they are played.
- MIDI Polyphonic Expression (MPE) - Allows controlling multiple parameters independently for each note, including pitch-bend.
- MIDI 2.0 - Allows for setting the pitch of each note independently, using the "Pitch 7.9" attribute (which overrides the default pitch).
(Open Sound Control (OSC) is sometimes suggested as a microtonal replacement for MIDI, however it is an open-ended communication protocol, without even a de facto standard for sending notes, so the protocol must be customized for each synthesizer/server.)
- New Tuning Method
- Mclaren-notation#Computer and MIDI formats
- Tuning per channel - [Is this one MTS scale per channel?]
- Hardware Synths - Lists devices that support MIDI Tuning Standard
- DAWs#Approaches to Microtonal Composition in a DAW
- List of microtonal software plugins
- Scala - can retune MIDI streams and files using pitch bend, supports MIDI sysex and file-based tunings
- OSC question
- linux-audio-dev: Re: [linux-audio-dev] Common synthesizer interface -or- microtonal alternative to MIDI?
- Home · fabb/SynOSCopy Wiki, GitHub, "one of the reasons OSC has not replaced MIDI yet is that there is no connect-and-play … There is no standard namespace in OSC for interfacing e.g. a synth"
- We hate MIDI. We love MIDI. Ben Supper, October 24, 2012, Focusrite Development, "OSC lacks a defined namespace for even the most common musical exchanges, to the extent that one cannot use it to send Middle C from a sequencer to a synthesiser in a standardised manner"
- OSC-Namespace and OSC-State: Schemata for Describing the Namespace and State of OSC-Enabled Systems, "there is no fixed set of messages, each participating server needs to know what messages it can send to the servers it intends to communicate with."