# MIDI

Musical Instrument Digital Interface (englisch für „digitale Schnittstelle für Musikinstrumente“), kurz MIDI, ist ein Industriestandard für den Austausch musikalischer Steuerinformationen zwischen elektronischen Instrumenten, wie z. B. Keyboards oder Synthesizern. Dieser Standard umfasst sowohl die Beschaffenheit der erforderlichen Hardware als auch das Kommunikationsprotokoll für die zu übermittelnden Daten. MIDI 1.0 wurde im August 1982 eingeführt und ist inzwischen mehrmals erweitert worden. Entwickelt wurde MIDI von Dave Smith in Kooperation mit Ikutaro Kakehashi von der Roland Corporation, wofür beide im Jahr 2013 mit dem technischen Grammy ausgezeichnet wurden.

## Einsatzbereiche

Das MIDI-Protokoll wurde ursprünglich zur Kommunikation von Synthesizern unterschiedlicher Hersteller entwickelt. Der eigentliche Sinn war, von einer Tastatur eines Synthesizers aus weitere Synthesizer anzusteuern. Davor konnten Synthesizer nur analog und mit großem Verkabelungsaufwand verbunden werden.
Zu der damaligen Zeit hatten die Synthesizer nur wenige Stimmen, d. h., sie konnten meist nur 4–8 Töne gleichzeitig erzeugen. Trotz einer gewissen Soundauswahl konnte kein Gerät mehr als einen Sound gleichzeitig erzeugen. Wollte man also zwei oder mehr Sounds mit einem Tastendruck spielen, musste man zwei Geräte mit einer Tastatur verkoppeln. So konnte man unterschiedliche Sounds übereinanderlegen, um z. B. einen „dickeren“ Synthesizerstreicherklang zu bekommen oder Synthesizerstreicher mit Synthesizerbläsern zu kombinieren.
Das war nun mit der Verbindung über ein einzelnes MIDI-Kabel möglich, indem der MIDI-Out des Hauptgerätes mit dem MIDI-In des angesteuerten Gerätes per 5-poligem MIDI-Kabel verbunden wurde (wobei nur zwei Pole genutzt werden). Da die Audiosignale der verschiedenen Synthesizer keine MIDI-Steuerdaten sind, müssen diese über zusätzliche Leitungen einem Mischpult zugeführt werden.
MIDI trennte auch gleichzeitig die Tastatur eines Synthesizers von seiner Klangerzeugung, was natürlich die Einsatzmöglichkeiten eines Instrumentes massiv erhöhte: Denn so war es auch möglich, eine Tastatur aufzuteilen (zu splitten) und die Tastaturbereiche auf verschiedene Synthesizer zu verteilen. So konnte der Keyboarder z. B. mit dem linken Tastaturbereich einen Streicherklang mit einem angesteuerten Synthesizer und mit der rechten Hand einen Solo-Synthesizerklang mit dem lokalen Gerät spielen.
Schnell wurde die MIDI-Schnittstelle für fast jede Art an elektronischen Musikinstrumenten adaptiert, so z. B. für Expandermodule, Sampler, Drumcomputer, Effektgeräte (Hall, Echo, Equalizer usw.), Hardware-Sequencer (Aufnahme- und Abspielgeräte für MIDI-Daten), Computer, Controller (wie Masterkeyboards, Drum-Pads, Masterkeyboardcontroller, Standard-MIDI-File-Player, Fader-Boxen, später auch für Sound- und Audiokarten usw.), nicht zuletzt auch – zweckentfremdet – zur Steuerung von Lichteffekten für Bühnen (MIDI Show Control).
Der Einsatz von Computern in der Tonstudiotechnik gab MIDI einen weiteren Schub. So konnte der wenig versierte Keyboarder mit Hilfe eines Hardwaresequencers bzw. des Computers und eines Sequencerprogrammes komplexe, schwierige oder gar manuell unspielbare Musikstücke erstellen, weil er die MIDI-Daten im Sequencer verändern und korrigieren konnte. Weil die MIDI-Datensätze verschiedene Informationen enthalten, kann zum Beispiel der Sound auch nach einer Aufnahme im Sequencer beliebig ausgetauscht werden. Das ergab völlig neue Möglichkeiten – auch für versierte Musiker – und hat Auswirkungen auf die Produktionsweise von Musik bis heute:
Komposition, Arrangement und Notensatz wurden durch die Verbindung von MIDI-fähigem Keyboard und Computer erheblich vereinfacht. Variationen von Stimmen und Songabläufen sind sehr schnell realisierbar und bleiben jederzeit änderbar. Diese Zeitersparnis ist u. a. bei Studioproduktionen ein wichtiger Faktor. Der Komponist greift oft zwar auf das Hilfsmittel Computer zurück und editiert sein Konzept direkt über Software, viele Stimmen werden jedoch nach wie vor über eine Klaviertastatur bzw. ein Masterkeyboard eingespielt.
Mit speziellen Wandler-Geräten kann man auch aus den Tönen beliebiger akustischer Instrumente wie Gitarre (siehe Gitarrensynthesizer) oder Saxophon MIDI-Daten erzeugen (siehe Blaswandler). Dabei muss neben der Tonhöhe oft auch ein komplexes Klangmuster ermittelt werden, was, abhängig vom Instrument und der Spielweise, bald an Grenzen stößt. Bei einer Gitarre muss z. B. berücksichtigt werden, wenn Bundwechsel oder Ziehen einer Saite im Spiel ist.
In den 2000er Jahren, als der Speicher in Mobiltelefonen noch knapp war, benutzte man das MIDI-Format zunächst auch für Klingeltöne.

## Funktionsweise

Spielt man auf einem Keyboard eine Taste, werden digitale Informationen über Tonhöhe und Anschlagstärke am MIDI-Ausgang des Keyboards ausgegeben und lassen sich an den MIDI-Eingang eines Computers übermitteln oder zur Steuerung der Klangerzeuger in elektronischen Instrumenten und Soundkarten verwenden. Solche Befehle sind beispielsweise Note-on („Taste für Note x wurde gedrückt“) und Note-off („Taste für Note x wurde wieder losgelassen“).
Ein vollständiger 3-Byte-Datensatz für einen Spielbefehl für eine Note könnte beispielsweise wie folgt aussehen:
* Byte: Note ein auf MIDI-Kanal 1
* Byte: Note C3
* Byte: Anschlagstärke 103
Diesen Ton spielt ein angesteuerter Klangerzeuger so lange, bis dieser den 3-Byte-Befehl mit einem Note aus-Byte anstelle des Note ein-Byte empfängt. Welchen Sound der Klangerzeuger spielt, wird entweder zuvor am Klangerzeuger oder mit weiteren MIDI-Befehlen vor dem Spielbefehl für die Note eingestellt.
Ein Computer kann diese Informationen aufzeichnen, abspeichern und in verschiedenen Editoren visualisieren, eingeben und manipulieren. Üblich sind hierbei folgende Editoren:
* ein Listeneditor, in dem MIDI-Daten direkt editiert werden;
* der (wohl am meisten verwendete) Piano-Roll-Editor, der eine Klaviertastatur mit einem Zeitverlauf darstellen kann;
* ein Noteneditor, der die Notenschrift auch auf dem Bildschirm sichtbar macht.
Gleichzeitig oder auch später können die aufgezeichneten Daten an ein MIDI-Instrument zurückgesendet werden.
Neben den musikalischen Befehlen können weitere Datenpakete zur Steuerung des Zielgerätes genutzt werden, so etwa Program-Change-Befehle zur Auswahl eines seiner meist vielen hundert Klangspektren. Viele Klangerzeuger wie Synthesizer, Expander und andere verstehen Befehle, mit denen ihre interne Klangerzeugung direkt beeinflusst werden kann, um so aus einer Reihe einfacher Grundschwingungsformen komplexe, individuelle Klänge zu erzeugen.
Inzwischen nutzen neben elektronischen Instrumenten auch zahlreiche andere Geräte wie beispielsweise (digitale) Mischpulte und Mehrspuraufzeichnungsgeräte das MIDI-Protokoll, um darüber Steuerinformationen auszutauschen. Anstatt MIDI-Datenpakete zur Übertragung von Notenbefehlen zu nutzen, können die Daten hier beispielsweise zum Fernbedienen sämtlicher Mischpultfunktionen (Fader, Muteschalter, Panorama etc.) oder zur Steuerung der Laufwerksfunktionen eines Recorders (Play, Stopp, Vor-/Rückspulen) verwendet werden.

## Technik

MIDI verwendet ein unidirektionales Protokoll zur seriellen Datenübertragung ohne Datenflusskontrolle. Die Übertragungsgeschwindigkeit beträgt 31250 Bit/s (exakt 32 µs pro Bit). Zu jedem Byte, bestehend aus 8 Bit, kommt ein Start- sowie ein Stopp-Bit, sodass die komplette Übertragung eines Datensatzes bestehend aus 30 Bits 960 µs dauert. Bis auf das Fehlen des Parity-Bits entspricht es damit dem Protokoll bei PC-UARTs.
Im Unterschied zu pegelgesteuerten Schnittstellen wird bei MIDI jedoch eine 5-mA-Stromschleife verwendet. Durch den Optokoppler in der Empfangsleitung ergibt sich eine galvanische Trennung der einzelnen MIDI-Geräte untereinander, die Masseleitung (und Kabelabschirmung) darf an der MIDI-In-Schnittstelle nicht angeschlossen werden, um Masseschleifen zu vermeiden.

### Stecker

Physisch sind die Anschlüsse nach klassischer Spezifikation als fünfpolige DIN-Buchsen (DIN 5/180° – früher Diodenbuchse/-stecker) realisiert. Die Pins 4 und 5 werden zur Signalisierung verwendet. Für Pin 2 der Ausgangsbuchsen (MIDI-Out und MIDI-Thru) ist eine Masseverbindung spezifiziert. Auf diesen Pin soll die Abschirmung des Kabels aufgelegt werden. Gemäß der MIDI-Spezifikation ist Pin 4 über einen 220-Ohm-Widerstand mit +5 V verbunden. Zur Datenübertragung wird Pin 5 über 220 Ohm mit 0 V verbunden. Ist am anderen Ende ein MIDI-In-Port angeschlossen (nochmals 220 Ohm in Reihe mit dem Optokoppler), fließt ein Strom über die Leitung, dieser Zustand ist als logische „0“ definiert. Wird Pin 5 nicht verbunden, fließt kein Strom, was als logische „1“ gilt und auch den Ruhezustand darstellt.
Laut einer nachträglichen Erweiterung der MIDI-Spezifikation sind nun auch MIDI-Ausgänge möglich, die auf einer 3,3 V-Versorgungsspannung beruhen. In diesem Fall werden Serienwiderstände von 33 Ohm und 10 Ohm an Pin 4 bzw. an Pin 5 eingesetzt.
Bei manchen Systemen (z. B. bei der MIDI-Interface-Karte „Roland MPU-401 AT“ als ISA-Karte) sind die Anschlüsse auch als 6-polige Mini-DIN-Buchsen ausgelegt. In solchen Fällen hilft ein Anschlussadapter, der baugleich zu einem Tastaturadapter „Mini-DIN-Stecker zu DIN-Buchse“ (PS/2 auf AT) ist.
Am 26. Juli 2018 wurde die Spezifikation auf 2,5-mm- und 3,5-mm-Klinkenstecker erweitert. Die dreipolige Form solcher Stecker bietet sich an, da auch von den fünf Pins der üblichen DIN-Buchse lediglich drei zur Signalübertragung genutzt werden. Die kleinere Bauform einer Klinkenbuchse erlaubt somit den spezifikationsgerechten Einbau von MIDI-Schnittstellen auch in besonders flache Geräte.

### Anschlüsse

Es existieren drei verschiedene Arten von MIDI-Anschlüssen, MIDI-In, MIDI-Out und MIDI-Thru.
* MIDI-In wird von einem Gerät zum Empfang verwendet.
* MIDI-Out wird zum Senden verwendet.
* MIDI-Thru schickt am MIDI-In empfangene Signale unbearbeitet weiter.
MIDI arbeitet nach dem Master-Slave-Prinzip. Will man mit einem Keyboard einen Synthesizer steuern, verbindet man die MIDI-Out-Buchse des Keyboards (Master) mit der MIDI-In-Buchse des Synthesizers (Slave). Sollen mit einem Keyboard (Master) zwei Soundmodule als Slave A und B angesteuert werden, verbindet man die MIDI-Out-Buchse des Masters mit der MIDI-In-Buchse des Slave A sowie die MIDI-Thru-Buchse des Slave A mit der MIDI-In-Buchse des Slave B.
Ein häufig anzutreffendes Szenario ist der Einsatz eines Computers mit entsprechender Sequenzer-Software sowie der Anschluss eines Keyboards oder elektronischen Pianos zum Einspielen der Noten und mehreren Synthesizern zur Klangerzeugung. Dabei wird üblicherweise die MIDI-Out-Buchse des Keyboards mit der MIDI-In-Buchse des Computers verbunden, die MIDI-Out-Buchse des Computers mit den MIDI-In-Buchsen der Synthesizer, ggf. verkettet über die MIDI-Thru-Buchsen. Zu beachten ist, dass sich dabei die unvermeidlichen Verzögerungen im MIDI-Datenstrom summieren und damit zu Timingfehlern führen können. Eine sternförmige MIDI-Verkabelung, bei der das Master-Keyboard seine Daten an einen zentralen Verteiler (MIDI-Patchbay) sendet, an dem alle weiteren MIDI-Geräte angeschlossen sind, beseitigt solche Probleme.

### Eingabegeräte

Ein Masterkeyboard erzeugt Noteninformationen im MIDI-Format und dient ausschließlich der Steuerung von Expandern, Software-Synthesizern oder zur Aufzeichnung der Tastenbewegung beim Einspielen von Musik in Sequenzer. Es enthält keine eigene Klangerzeugung. Die Klangsteuerung an den Geräten kann über gerätespezifische Steuerfunktionen wie Bankumschaltung geschehen.
Dem gegenüber stehen die reinen MIDI-Controller. Dabei handelt es sich um Geräte ohne Tastatur, die lediglich Knöpfe, Schiebe- und Drehregler besitzen, mit denen eingehende Daten modifiziert oder dem Datenstrom neue Daten auf anderen Kanälen hinzugefügt werden. Sie werden zwischen ein Masterkeyboard und einen Empfänger oder parallel dazu geschaltet.
Es gibt auch MIDI-Geräte, die zur Erzeugung von Noteninformationen sogenannte Pads verwenden. Dabei handelt es sich um größere, meist quadratische Knöpfe, die zudem wie Keyboard-Tasten oft die Anschlagdynamik aufnehmen. Sie werden üblicherweise für Percussions oder zum Abspielen von Samples genutzt.
Heute werden oft kombinierte Eingabegeräte verwendet, die sowohl Noten- als auch umfangreiche Kontrollfunktionen ausüben können. Einige erzeugen reine MIDI-Informationen, andere sind zusätzlich oder alleinig an den PC anschließbar. DJ-Controller besitzen ebenfalls Knöpfe, Regler und (nicht anschlagdynamische) Pads, deren Informationen sie oft per MIDI-kompatiblem Treiber weitergeben, wodurch sie als MIDI-Controller genutzt werden können.
Für viele akustische Musikinstrumente existieren Tonaufnehmer zur Erzeugung von MIDI-Signalen (z. B. Guitar-to-MIDI-Converter, Piano-Aufsetzer etc.) Hier wird die akustische Schwingung durch ein Mikrofon aufgenommen und in eine MIDI-Tonhöhe umgerechnet, indem ein Grundton ermittelt und Controllerwerte zur Modulation desselben erzeugt werden. Damit sind Töne variierender Tonhöhe (Vibrato) erzeugbar. Einige dieser Systeme eignen sich auch zum Aufnehmen des menschlichen Gesangs. So können komplexe Stimmverläufe wie blue notes und Phrasierungen z. B. durch Pfeifen auf das Notenpapier gebracht werden.
Eine Reihe von Instrumenten existieren heute als reine MIDI-Geräte, bei denen die Tonerzeugung ausschließlich mit einem Expander möglich ist. Beispiele dafür sind MIDI-Geigen, MIDI-Gitarren, Blaswandler und das MIDI-Schlagzeug.

### Rechner als Speichermedien
#### Signal-Konverter

Um mit einem Computer über MIDI zu kommunizieren, muss ein Signal-Konverter zwischengeschaltet werden, der gewöhnlich als MIDI-Interface bezeichnet wird. Er übersetzt die Spannungspegel und sorgt für eine galvanische Entkopplung. Im Prinzip kann jede serielle Datenübertragungs-Schnittstelle eines Computers mit einem geeigneten MIDI-Interface für die MIDI-Übertragung genutzt werden, sofern es auf das MIDI-typische Protokoll eingestellt werden kann.

#### Commodore 64

Eine Pionierrolle spielte der Commodore 64, auf dem insbesondere die deutschen Softwareautoren Gerhard Lengeling und Karl Steinberg ihre ersten Sequenzer programmierten, die für die Namen C-LAB, Emagic und Steinberg stehen.

#### Atari ST

Der kommerzielle Durchbruch für MIDI als Plattform für professionelle Musikproduktion ist eng mit dem Atari ST verbunden, da dieser standardmäßig mit einer MIDI-Schnittstelle ausgeliefert wurde. Die Entwicklung wichtiger MIDI-Programme wie Cubase (Steinberg) oder Notator (Lengeling) begann auf dem Atari ST.

#### Commodore Amiga

Auf dem Commodore Amiga prägte die Softwarefirma Blue Ribbon Inc. mit Bars & Pipes Professional ein neues Sequenzer-Software-Prinzip, das durch seine frei programmierbare Plugin-Schnittstelle in seinen Funktionen fast beliebig erweiterbar ist. Die meisten MIDI-Interfaces für den Commodore Amiga wurden als Adapter für die serielle Schnittstelle angeboten und sind mit einem MIDI-In, einem MIDI-Thru und meistens drei MIDI-Out ausgestattet. Es gibt sowohl synchrone als auch asynchrone MIDI-Interfaces. Bei einem asynchronen MIDI-Interface sind die verschiedenen MIDI-Out-Schnittstellen unabhängig voneinander ansteuerbar. Bei drei MIDI-Out-Schnittstellen gibt es also 48 MIDI-Kanäle (3×16).

#### IBM-PC

Hier handelte es sich ursprünglich um eine 8-Bit-ISA-Steckkarte des Herstellers Roland. Viele für MS-DOS-PCs erhältliche Computerspiele zwischen 1988 und 1995 unterstützen diese MIDI-Schnittstelle zur Ansteuerung von Klangerzeugern wie z. B. der internen Roland LAPC-I oder dem externen MT-32. Andere Hersteller wie bspw. Creative Labs unterstützten den MPU-401-Modus nur eingeschränkt im sogenannten Dumb-Mode (UART), während der Intelligent-Mode, der genaues Timing durch Hardwareunterstützung garantierte, nur von Rolands eigenen Produkten beherrscht wurde.
Die standardmäßigen DIN-Buchsen für MIDI sind zu groß, um direkt in die Rückplatte einer PC-Steckkarte eingebaut zu werden. Lange Zeit war die übliche Vorgehensweise, die MIDI-Signale, die an einem kombinierten Game-/MIDI-Anschluss entsprechender Soundkarten verfügbar waren, über einen Adapter (siehe MIDI-Anschlüsse) auf die Standard-MIDI-Schnittstelle umzusetzen. Ältere PC-Soundkarten, ausgehend vom Sound Blaster, haben einen Anschluss geprägt, bei dem sich Game-Interface und MIDI-Interface eine 15-polige D-Sub-Buchse teilen und der heute immer noch in billigeren, nicht professionellen MIDI-Interfaces in PCs vertreten ist. Die Soundkarte braucht dabei nur zwei digitale, serielle Leitungen ohne Datenflusskontrolle zur Verfügung zu stellen (MIDI verwendet keine Datenflusskontrolle). Bei dieser Art der Hardware-Implementierung ist ein Teil des MIDI-Interfaces in einen externen, oft separat zu erwerbenden Teil verlegt, der meist in dem dickeren Stecker eines Kabels vergossen ausgeführt ist. Motherboards, die Sound-, MIDI- und Game-Controller on-Board haben, haben diese kombinierte Game-/MIDI-Anschlussbuchse übernommen. Dem entsprechen Sound-, Game- und MIDI-Chipsätze, die diese Funktionalitäten teilweise oder ganz gemeinsam integrieren. Das Vorhandensein einer 15-poligen D-Sub-Buchse an sich erlaubt jedoch noch keinen Rückschluss darauf, ob ein MIDI-Interface vorhanden ist oder, falls vorhanden, von welcher Qualität es ist.

#### Allgemeines

Softwareseitig war die Hardware meistens MPU-401-kompatibel. Vorher waren auch MIDI-Interfaces für die serielle (COM) und parallele (Druckerport) Schnittstelle im Gebrauch. Professionelle MIDI-Geräte für PCs benutzen oft proprietäre (herstellerspezifische) Buchsen zwischen Steckkarte und dem externen Gerät. Inzwischen gibt es jedoch viele MIDI-Interface-Geräte mit USB, FireWire (mLAN) und LAN.

### Expander (Soundmodul)

Ein Expander ist ein externer Klangerzeuger ohne eigene Tastatur. Er empfängt Noten ausschließlich per MIDI. Nur Parameter, die sich am Expander einstellen lassen, werden zurück übertragen und können aufgezeichnet werden. Teilweise werden die Umschaltbefehle, die mit den Tasten am Gerät erzeugt werden, ebenfalls gesendet und aufgezeichnet.
Ein Expandermodul erweitert die Möglichkeiten eines Tastatur-Synthesizers oder Keyboards. Wie ihre Pendants mit Tastatur können Expander viele Formen der Klangerzeugung zur Verfügung stellen. Wegen ihres geringen Platzbedarfs sind sie von ihrer Bedeutung her mindestens ebenso relevant wie die Tastaturversionen für die Entwicklung und Verbreitung von MIDI.
Die Expandertechnik bietet die Möglichkeit, in relativ kleinen Geräten eine Vielfalt von Klängen zu erzeugen. Ohne sie hätte sich MIDI sicher weniger schnell und weniger weit verbreitet, denn andere Verfahren verbieten sich vielerorts wegen ihres Platzbedarfs und ihrer Kosten.
Die Klangerzeugungsverfahren von Expandermodulen kann man in zwei Grundklassen aufteilen:
* samplebasierte Klangerzeugermodule;
* Synthesizermodule

#### Samplebasierte Klangerzeugermodule
##### ROM-Klangerzeuger (ROMpler) und Sampleplayer

Diese Klangerzeuger stellen eine Vielzahl unterschiedlicher Grundklänge (Multisamples) zur Verfügung, die einfach abgespielt werden. Sie dienen dazu, einen Grundvorrat an Imitationsklängen natürlicher Instrumente bereitzustellen. Deshalb waren diese Geräte von Anfang an mit mindestens 16 Stimmen und mit mindestens 6 Klangfarben (Timbres) ausgestattet. Dank dieser Multitimbralität können mehrere unterschiedliche Klänge auf unterschiedlichen MIDI-Kanälen abgerufen werden. In der Anfangszeit war dies nur mit wenigen Geräten möglich.
Diese Klangerzeugerklasse war zum Beginn der Expanderzeit am weitesten verbreitet. Beispiele sind Roland U-110 und Roland U-220. Etwas später bekamen diese Geräte einfache Bearbeitungsfunktionen, also einfache Filter. Dadurch wurden sie jedoch nicht zu ausgewachsenen Synthesizern, denn diese Filter dienten mehr zur Klangverfeinerung als zur echten Neuschaffung von Klängen. Ein Beispiel ist der Korg M1r.

##### Sampler

Sampler stellen keine Klänge zur Verfügung, sondern können diese aufnehmen und abspielen. Meist werden Samples aus einer Sound-Library in das Gerät geladen. Mit Samplern kann der Benutzer eigene Multisamples erstellen und so eine aufwändig zusammengestellte Instrumentenimitation schaffen. Sampler können auch Bearbeitungsfunktionen wie Loops bereitstellen. Sampler lassen neuartige Spielweisen für Musiker zu, beispielsweise das Verwenden von Drum-Loops und One-Shot-Effektsounds innerhalb einer Keymap, das heißt einer Tastaturzusammenstellung von verschiedenen Samples.
Die Samplertechnik hat die moderne Musik maßgeblich geprägt. Musikstile wie Hip-Hop wären ohne Sampler nicht vorstellbar. Einen großen Einfluss hat diese Technik auch auf die Filmmusik. Gute Orchesterimitationen sind bis heute nur mit aufwändiger Samplingtechnik möglich.
Sampler wurden und werden auch im Live-Betrieb oft verwendet, beispielsweise um die Klangeigenschaften eines echten Schlagzeugs durch Samples zu erweitern, oder um Chöre oder Backing-Vocals bei kleinen Bandbesetzungen bereitzustellen. Die Chorsamples drückt ein Keyboarder mit einer Taste ab, oder der Schlagzeuger löst sie mit einem E-Pad per MIDI-Befehl aus.
Fast alle weitverbreiteten Sampler wurden nur als Expanderversionen ausgeführt. Ein bekanntes Beispiel ist die Akai-S-Serie.

##### Samplebasierte Synthesizermodule

Es gibt eine Vielzahl von samplebasierten Synthesetechniken:
* Die LA-Synthese ist ein von der Firma Roland entwickeltes Syntheseverfahren. Sie trennt Klänge auf in Transienten und Flächenklänge, die dann mit einem digitalen Filter bearbeitet werden. Über die verschiedenen Zusammenstellungen dieser Klänge können neue Klänge erzeugt werden. Ab dem D-50 und seinem Expandermodel D-550 basieren viele Modelle der Firma bis heute auf diesem Klangerzeugungsverfahren.
* Die Firma Yamaha hingegen integrierte Samples in ihr FM-Verfahren, in dem ROM- und RAM-Samples Wellenformen bereitstellen.
* Korg hatte mit der Wavestation ein Gerät, das Samples rhythmisch abspielen konnte.
* Bei Geräten der Firmen Waldorf und Ensoniq gab es das Wavetable-Verfahren, bei dem einzelne Zyklen von Samples durchlaufen werden und so neue Klänge erzeugt werden.
* Kurzweil entwickelte mit der VAST-Synthese ein Verfahren, mit dem Samples über aufwändige DSP-Funktionen extrem ummoduliert werden und damit verfremdet werden, sodass das Ausgangssample nicht mehr zu erkennen ist.
Jede Klangerzeugung hat einen eigenen Charakter. Eine Auswahl an Geräten mit Tastatur live oder im Tonstudio bereitzustellen, ist aus Platzgründen oft nicht möglich, weshalb hier meist Expander zum Einsatz kommen.

#### Synthesizermodule mit generischer Klangerzeugung

Diese Geräteklasse ist ähnlich umfassend, wie die der samplebasierten Synthesizer, wobei die Klangerzeugung rein synthetisch geschieht. Sie reicht von modularen, analogen Schrankwänden, beispielsweise von Doepfer, bis hin zu digitalen Kleinstmodulen in Halbzollgröße.
Viel verwendete Syntheseverfahren sind (kleine Auswahl):
* analoge Synthese mit analogen Oszillatoren und Filtern (Roland MKS 80)
* analoge Synthese mit digital kontrollierten Oszillatoren und analogen Filtern (Oberheim Matrix6)
* FM-Synthese (Yamaha DX7/TX802)
* additiven Synthese (Kawai K5000R)
* virtuellen Syntheseverfahren aller Art:
Virtuelle Simulationen sind die modernste Art der Synthese, sie bilden akustische, mechanische, elektrische und elektronische Bauweisen der Instrumente nach, weshalb sich ihre Bedienung an den baulichen Eigenheiten orientiert und deshalb völlig verschieden ist von den klassischen Syntheseverfahren. Ein Beispiel wäre das virtuelle Öffnen des Flügeldeckels, was einen mechanischen Vorgang widerspiegelt. Für einen Filter hingegen gibt es keinen echten Gegenpart, er bleibt ein elektronischer Vorgang, der von der Charakteristik der elektronischen Schaltung abhängt.
Beispiele für virtuelle Synthese sind „virtuell-analoge“ Synthesizer, „virtual Strings“ für Gitarren-, Bassgitarren- und Streichinstrument-Simulationen; „virtual Brass“ für Blasinstrument-Simulationen, diverse Orgel-, Piano- und E-Piano-Simulationen für mechanische und elektromechanische Instrumente.

#### Steuermöglichkeiten der Expander

Unterschiedliche Synthesetechniken erfordern unterschiedliche Bearbeitungsweisen. Mittlerweile sind viele Expandermodule mit Steuerelementen wie Reglern, Fadern und Schaltern ausgestattet, die MIDI-Signale senden können. So können beispielsweise Regelverläufe eines Filters vom Regler eines Expandermoduls an einen Sequenzer zur Aufzeichnung gesendet werden. Ihre MIDI-Noten-Befehle können sie durch den Sequenzer oder von einer Tastatur erhalten. Viele dieser Geräte sind daher je nach Situation Sender, Empfänger oder beides gleichzeitig.

#### Bauweise

Expandermodule werden normalerweise in genormter 19-Zoll-Bauweise hergestellt. Es gab und gibt immer wieder Ausnahmen. In den Anfangszeiten von MIDI gab es noch häufiger Geräte, die nicht dieser Norm entsprachen.

### Sequenzer

Der Hardware-Sequenzer dient der Aufzeichnung der MIDI-Daten und dem Arrangement eines Musikstückes. MIDI-Sequenzer erlauben das Programmieren, die Aufzeichnung sowie die Wiedergabe von aufgezeichneten oder programmierten MIDI-Informationen wie Notenwerten, Anschlagsstärke oder weiteren Steuerungsbefehlen wie z. B. Modulation. Für den Live-Einsatz erfreuen sich auch die in Keyboards oder Groove-Boxes integrierten Sequenzer großer Beliebtheit. Eine Kombination aus Klangerzeuger und Synthesizer, Masterkeyboard und Hardware-Sequenzer wird als Workstation bezeichnet.
Softwaresequenzer haben im Bereich der Komposition große Bedeutung, da sie über die Standardfunktionen (Programmieren, Aufzeichnen, Abspielen) hinaus auch weitere Bearbeitungsmöglichkeiten in grafischer Form bieten (nachträgliches Editieren, Quantisierung usw.) und heutzutage nicht nur MIDI-, sondern auch Audiomaterial verarbeiten können. Diese Kombination aus Audio- und MIDI-Bearbeitung auf einem PC nennt man DAW (Digital Audio Workstation).
Die heute überwiegend verwendeten Sequenzerprogramme sind alle als Digital Audio Workstation anzusprechen. Beispiele sind das bereits erwähnte Cubase von Steinberg (seit 2004 zu Yamaha gehörig) für Mac (OSX) und Windows-PC und sein Pendant Logic, das, inzwischen von Apple aufgekauft, nur noch für Apple Macintosh bezogen werden kann. Ferner gibt es Rosegarden und MusE auf unixartigen Plattformen und einige weitere Lösungen wie Sonar, Ableton Live, REAPER, Renoise oder auch Reason.

### Zusätzliche Hardware

Zahlreiche digitale Effektgeräte und Mischpulte sind heute ebenfalls über MIDI-Controller-Befehle steuerbar. Auf diese Weise können Aktivitäten am Pult mit einem Sequenzer oder einem PC aufgezeichnet werden, um z. B. einen Livemix nachzubearbeiten oder komplizierte Aktionen zu automatisieren. Auch sind Standardmischungen für bestimmte Aufnahmesituationen speicherbar. Größere Pulte der FOH sowie Monitormischpulte sind auf diese Weise durch Musiker fernsteuerbar.

## Protokoll

Das Protokoll wurde 1981 von Dave Smith für die Audio Engineering Society entwickelt und von der MIDI Manufacturers Association erstmals 1983 auf der NAMM-Show in Anaheim, USA, vorgestellt. Der MIDI-Standard wird von der MMA (MIDI Manufacturers Association) festgelegt.
Der folgende Abschnitt erfordert das Verständnis des Hexadezimalsystems. Ein Byte ist aus zwei Hexadezimalziffern im Wert zwischen 0 und 15 aufgebaut, wobei die Zahlen 10 bis 15 mit A bis F notiert werden. Eine 2-stellige Hex-Zahl (00-FF) besitzt damit einen Zahlenbereich von 0 bis 255.
Die meisten MIDI-Befehle enthalten neben ihrer Befehlskennung und den Befehlsdaten auch eine Kanalnummer. Die Kanalnummer ist 4 Bit groß, so dass sich 2$^4$, also 16 Kanäle ansteuern lassen. Jedes angeschlossene Instrument wertet nur die Befehle aus auf dessen Kanal es eingestellt ist, somit lassen sich über eine MIDI-Verbindung bis zu 16 verschiedene Instrumente steuern.

### Nachrichtentypen

Das MIDI Protokoll kennt zwei verschiedene Arten von Bytes (Datenbyte und Statusbyte) sowie acht mögliche Befehle: Note On/Of, Monophonic/Polyphonic Aftertouch, Controll/Programm Change, Pitchbend und Systeme Exklusiv Message.
Das erste Bit gibt an, ob ein Statusbyte oder ein Datenbyte vorliegt. Ein Datenbyte beginnt immer mit einer 0 was bedeutet, dass durch die restlichen sieben Bits Werte von 0 bis 127 dargestellt werden können. Ein Statusbyte beginnt immer mit einer 1, gefolgt von drei Bits, welche einen der acht möglichen Befehle (0–7) codieren und den vier restlichen Bits, welche den Kanal (0–15) festlegen (außer bei System Exklusiv Message).
So liegen die Statusbytes im Bereich 80$_{16}$ (1000 0000$_2$) bis FF$_{16}$ (1111 1111$_2$) und die Datenbytes zwischen 00$_{16}$ (0000 0000$_2$) und 7F$_{16}$ (0111 1111$_2$).
In vielen Programmen wird bei der Darstellung der Kanalnummer der tatsächliche Wert um 1 erhöht dargestellt, also von 1 bis 16 (statt von 0 bis 15).
Eine Note On Nachricht zum Beispiel, besteht aus einem Status- und zwei Datenbytes (Tonhöhe und Anschlagstärke) während ein Programm Change Befehl nur ein Datenbyte nach dem Statusbyte benötigt. System Exklusiv Messages hingegen können beliebig viele Datenbytes lang sein.

#### Running Status

Gemäß dem MIDI-Protokoll ist es möglich, bei mehreren gleichen Befehlen (zum Beispiel Controll Change) das immer gleiche Statusbyte einfach wegzulassen. Das MIDI-Gerät merkt sich sozusagen den letzten Befehl (z. B. Note On) und interpretiert die folgenden Datenbytes entsprechend. Dieser sogenannte Running Status kann die Datenmenge um etwa ein Drittel verringern. Daher wurden ein Note-On-Befehl mit einer Anschlagstärke von 0 als Note-Off-Befehl definiert, um für sehr große Mengen von Tönen für Note-On und Note-Off den gleichen (Running) Status nutzen zu können.
| Statusbyte und MIDI-Kanal Byte 0 | Datenbyte Byte 1 | Datenbyte Byte 2 | Aktion | Erläuterung |
| 8n | kk | vv | Note Off | Beendet das Spielen der Note kk. Hat also die Bedeutung des Loslassens einer Taste. Wurde die Note vorher gar nicht gespielt, wird dieses Signal einfach ignoriert. Zusätzlich wird eine „Release velocity“ vv gesendet. Im Dateiformat .mid kann dies, wenn vv weggelassen wird, auch die Zeitspanne zwischen zwei Befehlen (bsp. Note an – Note aus) angeben, wobei hier ein Vierteltakt in 960 Einheiten aufgeteilt ist, die mit einem 14 Bit breiten Wert dargestellt werden. |
| 9n | kk | vv | Note On | Beginnt das Spielen einer Note kk. Zusätzlich wird die Anschlagsdynamik vv (englisch Velocity) angegeben, die der Druckstärke auf die Taste in 127 Schritten von 1 (sehr schwach) bis 127 (sehr stark) entspricht. Der Wert 0 ist als Note-Off-Befehl definiert. |
| An | kk | vv | Polyphonic Aftertouch | Beschreibt das Ändern des Tastendrucks vv für die bereits gedrückte Taste kk. Diese Daten sind neutral, d. h., sie müssen anderen Daten zugeordnet werden (z. B.: Zuordnung zu Controller 11: Expression – Ausdrucksstärke, wodurch nach dem Anschlag der Taste der Klang eines Saxophones verändert werden kann, während der Ton klingt.) |
| Bn | cc | vv | Control Change | Ändert den Zustand eines Controllers cc (siehe nächster Abschnitt) mit dem Wert vv. |
| Cn | pp | | Program Change | Legt das für den angegebenen Kanal zu spielende Instrument pp fest. |
| Dn | vv | | Monophonic bzw. Channel Aftertouch | Beschreibt das Ändern des Tastendrucks vv für alle Tasten gemeinsam, während die Tasten bereits gedrückt sind. Wie bei Polyphonic Aftertouch sind diese Daten neutral. |
| En | vv | ww | Pitch Bending | Ändern der Tonhöhe. Die zwei Datenbytes vv und ww ergeben zusammen den 14 Bit breiten Wert zwischen 0 und 16383. Zu beachten ist, dass sie vertauscht kombiniert werden, also (Byte 2 · 128) + Byte 1 = 14-Bit-Wert. Der Wert 8192 entspricht einer nicht geänderten Tonhöhe. |
| F0…7 | xx | | System (exclusive) Message | Steuermeldungen, häufig gerätespezifisch, Länge ebenfalls gerätespezifisch (xx = Datenbytes) |

### Controller

Zweck eines MIDI-Controllers (Continuous Controller = CC, vordefinierter, festgelegter Controller) ist es, dem Anwender für sein Instrument die typischen Spielhilfen bereitstellen zu können, so z. B. dem Klavierspieler ein Haltepedal (CC064) oder dem Orgelspieler einen Lautstärkeregler (CC007 bzw. CC011) und einen Leslie-Geschwindigkeitsumschalter (z. B. CC004, CC006).
Dem Synthesizerspieler beispielsweise stehen eine ganze Reihe weiterer Beeinflussungsmöglichkeiten für sein Spiel zur Verfügung, z. B. ein Modulationsrad (CC001), Pitch-Bending-Hebel, diverse Pedale und Fußschalter, weitere Schiebe- und Druckregler und -schalter, Blaswandler (CC002) oder Steuerungen per Licht für die Hände. Es gibt sogar – externe – Steuerungen für das Gehirn (Brain-to-Midi).
So kann eine gute Haptik und Kontrolle bei der Beeinflussung seiner Spielweise ein ausdrucksstarkes Spielen ermöglichen. Dazu haben die Spielhilfen meist mechanisch bewegliche Elemente, die der Benutzer bedienen kann. Diese Bewegung wird in Nachrichten (Controllerdaten) übersetzt und an die Geräte sowie Klangerzeuger weitergegeben. Sie arbeiten somit ähnlich wie Gamecontroller. Teilweise sind die Spielhilfen per MIDI-Protokoll an bestimmte Controllerbefehle gebunden, wobei meist sowohl die Spielhilfen beim Sender (z. B. Tastatur) wie auch beim Empfänger (Expandermodul, Plugin) frei auf andere Controller(befehle) umgeändert werden können (z. B. Modulationsrad als Lautstärkeregler).
Erst in neuerer Zeit nutzt man Controller verstärkt auch, indem die ursprüngliche Semantik ignoriert wird. Dem jeweiligen Befehl werden ganz andere Funktionen zugeordnet als im MIDI-Protokoll vorgesehen. Das ist häufig der Fall, wenn die Musikbearbeitung ausschließlich auf einem Computer durchgeführt wird. Insbesondere bei DJ-Programmen sind angepasste Controller sehr verbreitet. Hier wird zum Beispiel mit dem MIDI-Signal ein Dialog zur Songauswahl geöffnet, oder Funktionen wie Start, Stopp werden steuerbar. Auf der anderen Seite können Anzeigeelemente in Controllern bedient werden. Der semantisch mit der Tonhöhe belegte MIDI-Befehl kann so beispielsweise die Länge einer Wiederholungsschleife codieren. Gerade hier ist die Controllerhaptik wichtig, da sich mit der Maus am Computer die erforderliche Reaktionszeit und Feinfühligkeit zum Beispiel bei der Synchronisierung des Beats zweier Songs nicht erreichen lässt. Dem proprietären Charakter dieser Anwendungsart kann durch freie Belegbarkeit der MIDI-Befehle sowohl im Programm als auch im Controller begegnet werden, was allerdings noch lange nicht die Regel ist.
Klassische Anwendungen der MIDI-Controller halten sich hingegen streng an die Semantik des Protokolls. Diese haben im Bereich der Musikerzeugung größere Bedeutung, da sich mit ihnen auf einfache Art und Weise gerätespezifische Klangparameter des aktuellen Instruments steuern lassen. Unterschiedliche Geräte sind dabei untereinander austauschbar.
Die Controller senden auf einem bestimmten Kanal mit einer bestimmten Controllernummer einen bestimmten Wert. Einfache Controller können Werte von 0 bis 127 annehmen, was jedoch bei Tonhöhenänderungen sehr schnell zu unschönen treppenhaft-sprunghaften Tonhöhenveränderungen führt. Daher lassen sich die Controller 0–31 mit einem sogenannten LSB-Controller 32–63 koppeln, um so eine wesentlich höhere Auflösung zu erhalten. In der Praxis wird diese Technik jedoch selten angewandt, da eine Auflösung der Lautstärke beispielsweise in 128 Schritten ausreichend ist.
Schalter wie beispielsweise das Haltepedal Nummer 64 können zwar theoretisch Werte zwischen 0 und 127 senden, da ein Schalter allerdings nur zwei Werte annehmen kann, werden üblicherweise Werte von 0 bis 63 als „aus“ und Werte von 64 bis 127 als „ein“ interpretiert.
Wird ein programmierbares Steuergerät verwendet, so sind Kenntnisse der Controllernummern und was diese üblicherweise steuern von großem Nutzen. Die wichtigsten Controller sind in der nachfolgenden Tabelle zusammengestellt. Das erste Byte eines Controllerbefehles lautet immer Bn$_{16}$, wobei n die Kanalnummer angibt und vv für den Wert, den der zu steuernde Klangparameter annehmen soll, steht.
Wichtige MIDI-Controller :
| Statusbyte Byte 0 | Datenbyte Byte 1$_{Dezimal}$ | Datenbyte Byte 2 | Aktion | Erläuterung |
| Bn | 00$_0$ | vv | Bank select MSB | gefolgt von Bank select LSB Controller 32 |
| Bn | 01$_1$ | vv | Modulation MSB | Stellung des Modulationsrades |
| Bn | 02$_2$ | vv | Breath Controller | Blasregler |
| Bn | 03$_3$ | vv | Undefined | Undefiniert bzw. frei verwendbar |
| Bn | 04$_4$ | vv | Foot Controller MSB | Stellung des Pedals |
| Bn | 05$_5$ | vv | Portamento Time MSB | Dauer des übergangslosen Gleitens zwischen zwei Tonhöhen |
| Bn | 06$_6$ | vv | Data Byte | Datenbyte für einen RPN-/NRPN-Controller (siehe unten) |
| Bn | 07$_7$ | vv | Main volume | Gesamtlautstärke |
| Bn | 08$_8$ | vv | Balance | Verstärkung des rechten bzw. linken Lautsprechersignals (nur Stereo) |
| Bn | 09$_9$ | vv | Undefined | undefiniert bzw. frei verwendbar |
| Bn | 0A$_{10}$ | vv | Panorama | Stereopositionierung im Raum (links … mittig … rechts) |
| Bn | 0B$_{11}$ | vv | Expression | Lautstärke des Einzelklangs |
| Bn | 0C$_{12}$ | vv | Effect Control 1 | Effekt 1 steuern (2-Byte-Befehl, 14-Bit-Controller, gesendet in der Reihenfolge Bn 0C vv, Bn 2C vv) |
| Bn | 0D$_{13}$ | vv | Effect Control 2 | Effekt 2 steuern (2-Byte-Befehl, 14-Bit-Controller, gesendet in der Reihenfolge Bn 0D vv, Bn 2D vv) |
| Bn | 0E$_{14}$…0F$_{15}$ | | Undefined | undefiniert bzw. frei verwendbar |
| Bn | 10$_{16}$…13$_{19}$ | | General Purpose Controllers 1–4 | frei belegbare Controller 1–4 |
| Bn | 14$_{20}$…1F$_{31}$ | | Undefined | undefiniert bzw. frei verwendbar |
| Bn | 20$_{32}$ | vv | Bank select LSB | gefolgt von Programmnummer-Befehl: Cn xx (n – MIDI kanal; xx – Nummer) Das „Bank select MSB/LSB/Programmnummer“ wird verschieden genutzt: z. B. YAMAHA bei XG für die Auswahl einer Tonebank: MSB(Ctrl.0) = 0, LSB(Ctrl.32) = Banknummer; für die Auswahl eines Drumsets: MSB(Ctrl.0) = Drumset LSB(Ctrl.32) = 0. |
| Bn | 21$_{33}$…3F$_{63}$ | | LSB for Controllers 1–31 (rarely implemented) | Dienen eigentlich dazu, die Controller 1–31 feiner auflösen zu können, wird aber kaum verwendet |
| Bn | 40$_{64}$ | vv | Hold 1 | Haltepedal, Werte vv von 0–63 werden als „aus“ interpretiert, Werte von 64–127 als „an“ |
| Bn | 41$_{65}$ | vv | Portamento | Portamento ein- und ausschalten |
| Bn | 42$_{66}$ | vv | Sostenuto | Während des Drückens des Pedals bereits gespielte Noten werden gehalten, neu hinzukommende nicht |
| Bn | 43$_{67}$ | vv | Soft Pedal | Senkt die Lautstärke der gespielten Noten |
| Bn | 44$_{68}$ | vv | Legato Footswitch | Legatopedal |
| Bn | 45$_{69}$ | vv | Hold 2 | 2. Haltepedal |
| Bn | 46$_{70}$ | vv | Sound Controller 1 (Sound Variation) | Klangsteuerung 1, meistens Klangvariation |
| Bn | 47$_{71}$ | vv | Sound Controller 2 (Harmonic Content) | Klangsteuerung 2, meistens Teiltonhaltigkeit |
| Bn | 48$_{72}$ | vv | Sound Controller 3 (Release Time) | Klangsteuerung 3, meistens Ausschwingzeit |
| Bn | 49$_{73}$ | vv | Sound Controller 4 (Attack Time) | Klangsteuerung 4, meistens Einschwingzeit |
| Bn | 4A$_{74}$ | vv | Sound Controller 5 (Brightness) | Klangsteuerung 5, meistens Helligkeit |
| Bn | 4B$_{75}$…4F$_{79}$ | | Sound Controller 6–10 | Klangsteuerung 6–10, keine Vorschlagswerte |
| Bn | 50$_{80}$-53$_{83}$ | vv | General Purpose Controllers 5–8 or General Purpose Buttons 1–4 | Frei belegbare Controller 5–8 (vv = 0–127) oder Taster 1–4 (vv=0–63: „aus“, vv= 64–127: „an“) |
| Bn | 54$_{84}$ | vv | Portamento Control | Kontrolle des Portamento |
| Bn | 55$_{85}$…5A$_{90}$ | | Undefined | Undefiniert bzw. frei verwendbar |
| Bn | 5B$_{91}$ | vv | Effects 1 Depth | Effekttiefe 1, früher Intensität eines externen Effektes |
| Bn | 5C $_{92}$ | vv | Effects 2 Depth | Effekttiefe 2, früher Tremolointensität |
| Bn | 5D$_{93}$ | vv | Effects 3 Depth | Effekttiefe 3, früher Chorusintensität |
| Bn | 5E $_{94}$ | vv | Effects 4 Depth | Effekttiefe 4, früher Detuneinstensität |
| Bn | 5F $_{95}$ | vv | Effects 5 Depth | Effekttiefe 5, früher Phaserintensität |
| Bn | 60$_{96}$ | vv | Data Increment RPN/NRPN | Wert eines RPN/NRPN Controllers erhöhen |
| Bn | 61$_{97}$ | vv | Data Decrement RPN/NRPN | Wert eines RPN/NRPN Controllers erniedrigen |
| Bn | 62$_{98}$ | vv | NRPN LSB | Niederwertiges Byte eines NRPN-Controllers |
| Bn | 63$_{99}$ | vv | NRPN MSB | Höherwertiges Byte eines NRPN-Controllers |
| Bn | 64$_{100}$ | vv | RPN LSB | Niederwertiges Byte eines RPN-Controllers |
| Bn | 65$_{101}$ | vv | RPN MSB | Höherwertiges Byte eines RPN-Controllers |
| Bn | 66$_{102}$…77$_{119}$ | | Undefined | Undefiniert bzw. frei verwendbar |
| Bn | 78$_{120}$ | vv | all sounds off | Klangerzeugung sofort einstellen (vv hat keine Bedeutung) |
| Bn | 79$_{121}$ | vv | Controller Reset | Setzt alle Controller auf ihre Ursprungswerte |
| Bn | 7A$_{122}$ | vv | Local Control on/off | Koppelt die Tastatur vom internen Klangerzeuger eines Gerätes ab; die interne Klangerzeugung kann weiterhin von außen über MIDI angesteuert werden, während die Tastatur weiterhin über den MIDI-Ausgang Daten sendet, aber eben nicht mehr an die interne Klangerzeugung |
| Bn | 7B$_{123}$ | vv | all notes off | Spielen einstellen – sämtliche Noten werden ausgeschaltet, die Klänge durchlaufen jedoch noch ihre Release-Zeit (d. h., sie klingen ab) (vv hat keine Bedeutung) |
| Bn | 7C$_{124}$ | vv | omni off | Das Gerät soll nur auf programmierte Kanäle reagieren (vv hat keine Bedeutung) |
| Bn | 7D$_{125}$ | vv | omni on | Das Gerät soll auf Nachrichten auf allen Kanälen reagieren (vv hat keine Bedeutung) |
| Bn | 7E$_{126}$ | vv | mono on / poly off | Das Gerät soll nur mit einer begrenzten Anzahl Stimmen spielen (vv = Stimmenzahl, üblich ist 1 – viele Geräte ignorieren vv und stellen auf einstimmig) |
| Bn | 7F$_{127}$ | vv | poly on / mono off | Das Gerät soll mit maximaler Anzahl an Stimmen spielen |
* MSB engl.: Most Significant Byte = höchstwertigstes Byte
* LSB engl.: Least Significant Byte = niederwertigstes Byte
* RPN engl.: registered parameter number = im MIDI-Standard vorgesehene Parameternummer
* NRPN engl.: non registered parameter number = vom Gerätehersteller spezifizierte Parameternummer

### Herstellerspezifische Erweiterungen

Die allgemeinen (RPN – Registered Parameter Number) und die herstellerspezifischen (NRPN – Non Registered Parameter Number) Controller dienen dazu, Parameter zu steuern, die im normalen Controller-Bereich keinen Platz gefunden haben. Es können Parameter mit einem Index zwischen 0 und 16383 verändert werden. Zum Setzen der Indizes dienen die Controller
* RPN-MSB (65$_{16}$)
* RPN-LSB (64$_{16}$)
* NRPN-MSB (63$_{16}$)
* NRPN-LSB (62$_{16}$)
Es wird also zunächst der Index des Controllers gesetzt – dazu wird erst das MSB und anschließend das LSB der gewünschten Controllernummer in jeweils drei Bytes übermittelt. Anschließend gibt es zwei Möglichkeiten:
* Entweder die Übertragung des neuen Werts, den der gerade indizierte Controller annehmen soll. Dazu wird nun der Controller „Data Entry“ (06$_{16}$) und der gewünschte Wert (0…127) übermittelt. Wird auf Empfängerseite ein Wert mit hoher Präzision (14 Bit) erwartet, kann Controller 38 (26$_{16}$) mit den niedrigeren sieben Bits des Zielwerts folgen.
* Stattdessen kann auch die Anweisung folgen, den aktuellen Wert um eins zu erhöhen oder zu erniedrigen: Dazu wird der Controller „Data Increment“ (60$_{16}$) oder „Data Decrement“ (61$_{16}$) übertragen. Aus syntaktischen Gründen muss auch hier ein drittes Byte folgen (0…127), dessen Wert aber vom Empfänger ignoriert wird. (siehe Tabelle).

### Systemexklusive Meldungen

Systemexklusive Meldungen (SysEx) sind Bestandteil des MIDI-Übertragungsprotokolls.
Während die übrigen MIDI-Befehle weitgehend als ein Standard festgelegt sind, wurde speziell durch die systemexklusiven Meldungen sichergestellt, dass die Hersteller von Hard- und Software auch Informationen übertragen können, die im MIDI-Protokoll nicht vorgesehen sind. So kann zum Beispiel der Speicherinhalt eines Gerätes zur Datensicherung an einen Rechner gesendet werden. Auch können Modellbezeichnungen zwischen den Geräten ausgetauscht werden. Das MIDI-Protokoll garantiert, dass systemexklusive Meldungen nicht durch andere Befehle unterbrochen werden. Daher werden systemexklusive Meldungen in Pausen übertragen, so dass es zu keinen unschönen Aussetzern oder Verzögerungen kommen kann.
Eine systemexklusive Meldung beginnt mit F0$_{16}$ und endet mit F7$_{16}$. Das zweite Byte ist die Herstellerkennung, die von der MIDI Manufacturers Association vergeben wird und weltweit eindeutig ist. Ist das zweite Byte gleich 00$_{16}$, identifizieren die beiden folgenden Bytes den Gerätehersteller. Die Herstellerkennung ermöglicht den Geräten eine Filterung, was den entsprechenden Geräten die Interpretation der Meldungen ermöglicht. Zwischen der Herstellerkennung und dem Schlusszeichen folgen beliebig viele Datenbytes, die aber nur Werte zwischen 00$_{16}$ und 7F$_{16}$ enthalten können und so nur einen 7-Bit-Zeichensatz ermöglichen. In der Regel werden zu Beginn zuerst einige Bytes gesendet, die festlegen, für welches Gerät die Nachrichten bestimmt sind. Die Bedeutung legt der entsprechende Hersteller fest.
Beispiele:
* F0 41 … F7
* F0 00 20 33 … F7

### Erweiterung des Standards durch MPE

Ein Kritikpunkt an MIDI ist, dass die Controller in der Regel nur monophon übertragen werden, also auf alle gespielten Noten eines Programms gleich wirken (Ausnahme: der selten anzutreffende polyphone Aftertouch).
Um größere Expressivität erreichen zu können, wurde 2017 MPE als abwärtskompatible Erweiterung des MIDI-Standards definiert. Unter MPE erhält jede Note einen eigenen MIDI-Kanal zugewiesen, sodass auch die Noten eines gespielten Akkords unabhängig voneinander moduliert werden können.
MPE wird von Geräten wie dem Roli Seaboard oder dem Linnstrument verwendet, die neben der Anschlagsdynamik und dem Druck auf die Taste (Aftertouch) auch Bewegungen der Finger auf der X- und Y-Achse auswerten.
siehe Hauptartikel MIDI Polyphonic Expression

## Synchronisation

Synchronisation ist immer dann nötig, wenn zwei oder mehrere MIDI- bzw. Audiogeräte zu einem System zusammengeschlossen werden müssen. Dazu gibt es zwei MIDI-Protokolle: Die ältere und tendenziell unpräzisere MC (MIDI-Clock), die auf das Grundtempo eines Songs referenziert und eher für den musikalischen Einsatz vorgesehen ist, und den neueren MTC (MIDI-Time-Code), der auf ein absolutes Zeitsystem referenziert und für Aufnahmesysteme relevant ist.
Jeder Systemverbund hat genau einen Master, alle anderen Geräte sind Slaves, die dem Master folgen müssen.
Wenn alle Geräte Daten senden sollen, muss eine mehrkanalige Verbindung hergestellt werden, siehe MIDI-Ring.
Synchronisation ist in vielen Bereichen notwendig. Dabei kann man zwei grundsätzlich verschiedene Einsatzzwecke feststellen, aus denen sich diverse Mischformen ergeben:

### Synchronisation von Systemen

Hier werden verschiedene Aufnahme-, Wiedergabe- und Bearbeitungssysteme zu einer Systemeinheit verbunden. Sie sollen also gleichzeitig und synchron starten, stoppen und mitlaufen und natürlich auch nicht während des Musikstücks auseinanderlaufen, was passieren würde, wenn man die einzelnen Systeme manuell gleichzeitig starten würde. Genau das übernimmt der MTC und verhindert derartige Probleme.
Einige Synchronisationsbeispiele aus der Praxis (MTC):
* Zwei DAWs (Digital Audio Workstation) werden zu einem Verbund zusammengeschaltet.
* Eine DAW muss mit einem Hardware-Sequencer zusammengeschaltet werden.
* Eine DAW muss mit einer Drum-Machine zusammengeschaltet werden.
* Eine Bandmaschine muss mit einer DAW zusammengeschaltet werden.
* Eine Bandmaschine, ein Sequencer und ein Harddiskrecorder müssen zusammengeschaltet werden.
* Eine Bandmaschine oder eine DAW müssen für eine Mischung mit einem Mischpult mit eigenem Automationssystem zusammengeschaltet werden.
* Sonderanwendung: Mehrere Computer sollen Daten über die MIDI-Schnittstelle austauschen siehe MIDI-MAZE,
Bei (analogen) Bandmaschinen muss vor einer Aufnahme der Timecode auf das Band aufgespielt werden. Dabei wird ein SMPTE-Timecode auf die letzte Spur (8-Spur auf Spur 8, 16-Spur auf Spur 16 usw.) der Maschine aufgenommen, der von einem SMPTE-Generator erzeugt wird. Ein SMPTE-Code stört durch Übersprechen danebenliegende Kanäle, weshalb man auf die Außenspur ausweicht, um neben der SMPTE-Code-Spur nur noch eine weitere Spur für Aufnahmen zu verlieren.
Aus dem aufgenommenen SMPTE-Code „liest“ ein SMPTE-Reader das Signal aus und wandelt es in MTC, das von den daran angeschlossenen Geräten gelesen werden kann.
Da nur professionelle Maschinen aufwändige Synchronisatoren besitzen, sind meist die Bandmaschinen MTC-Master über den SMPTE-Code, denen alle anderen Systeme folgen müssen. Ein weiterer Grund ist, dass selbst professionelle Bandmaschinen immer eine Spulzeit haben, weshalb es selten einen Sinn ergibt, beispielsweise eine DAW als Master einzusetzen.
Je nach Art des SMPTE-Codes kann es durchaus einen Sinn ergeben, bei Überspielungen von Bandmaterial auch den alten Timecode vom Band mit als Audiosignal aufzunehmen, um Rechendifferenzen zu minimieren. Manchmal aber ist der Timecode bei alten Bändern so schlecht, dass eine Synchronisation nicht möglich ist, so dass alle Spuren mit einem Mal aufgenommen werden müssen. Den Timecode kann man nachträglich mit spezieller Software bzw. Geräten reparieren und wieder nutzbar machen.

### Synchronisation von Synthesizerfunktionen und Effektgeräten

Hier werden Sequencer und Synthesizer bzw. Effektgeräte miteinander gleichgeschaltet, um musikalisch wichtige Ereignisse auszulösen.
Einige Synchronisierungs-Beispiele aus der Praxis (MC):
* Ein Delay soll genau auf den Rhythmus eines Musikstückes gesetzt werden, um ein musikalisches Echo für ein Soloinstrument bereitzustellen. Hierzu muss das Effektgerät natürlich MC verarbeiten können. Besonders wenn sich das Tempo des Stückes ändert, ist das nur auf diese Weise möglich, weil das manuell nicht umsetzbar wäre.
* Ein Flächensound eines Synthesizers soll rhythmisiert („zerhackt“) werden.
** Entweder ein MIDI-Gate wird so angesteuert, dass es im Rhythmus des Musikstückes öffnet und schließt,
** oder die MC wird zur Synchronisation der Lautstärkenmodulation im Synthesizer genutzt.
* Ein Sound eines Synthesizers soll im Rhythmus eines Musikstückes im Panorama wandern.
* Ein Sound eines Synthesizers soll im Rhythmus eines Musikstückes den Filter öffnen und schließen.
Die Möglichkeiten für den Einsatz von MC ist nur begrenzt durch die technischen Möglichkeiten der angeschlossenen Geräte.

### MIDI-Clock und Song Position Pointer

* MIDI-Clock (MC)
Die MIDI-Clock basiert auf Takt- und Notenebene. Die Einheit ist ein Tick, ein 96tel eines Schlages (bei vielen Liedern Viertelnote). Die Dichte, mit der die Clock-Informationen gesendet werden, ergibt sich daher aus der gewählten BPM-Einstellung des Liedes. Folgende Messages sind möglich:
* F2$_{16}$ Noten Position innerhalb eines Liedes 0–16383 (zwei Datenbytes)
* F3$_{16}$ Liedauswahl 0–127 (ein Datenbyte)
* F8$_{16}$ wird (während des Abspielens) 24-mal je Viertelnote gesendet
* FA$_{16}$ Start
* FB$_{16}$ Von der aktuellen Position aus fortsetzen
* FC$_{16}$ Stopp
Durch diese Signale starten alle Sequenzer gleichzeitig, folgen dem gegebenen Tempo und stoppen auch wieder gleichzeitig.
* Song Position Pointer (SPP)
Während MC im Grunde lediglich Clock-Ticks sendet, ist SPP dafür zuständig, die Position im Song zu übermitteln. Er wird jede Sechzehntelnote übertragen und ist auf maximal 1024 Takte beschränkt.
Die relativ grobe Unterteilung von SPP-Befehlen dient zur groben Gleichschaltung von Geräten, während die exakte Gleichschaltung per MC erfolgt.
Angeschlossene Geräte können so auch im Stopp-Modus eines Sequenzers erkennen, an welcher Stelle in einem Musikstück sie sich befinden. Außerdem können sie bei bestimmten Songpositionen Funktionen ausführen, z. B. dass Drumcomputer vorprogrammierte Wiederholungen auslösen.

### MIDI-Time-Code

Der MIDI timecode (MTC) ist eine Umsetzung des SMPTE-Timecodes auf das MIDI-Format. Im Gegensatz zur MIDI-Clock ist der MTC eine reine Zeitinformation, eine Umrechnung auf Lied, Position innerhalb des Liedes und Abspieltempo muss durch die Software erfolgen.
Bei größeren Sprüngen der Position sendet der Master die absolute Position innerhalb einer SysEx-Message
* F0$_{16}$ SysEx Message Beginn
* 7F$_{16}$ Dieser Herstellercode zeigt an, dass es eine universelle Realtime Message ist
* 7F$_{16}$ Diese Kanalnummer zeigt eine Broadcast-Message an
* 01$_{16}$ bezeichnet die Message als MIDI-Timecode
* 01$_{16}$ zeigt eine volle, absolute timecode-message an
* hh setzt sich zusammen aus SMPTE-Rate und Stunden in der Form 0rrhhhhh$_2$
** hhhhh$_2$ Stunden von 0–23
** rr=00$_2$ 24 Bilder/s (Film)
** rr=01$_2$ 25 Bilder/s (PAL-Video)
** rr=10$_2$ 29,97 Bilder/s (drop frame timecode NTSC-Video)
** rr=11$_2$ 30 Bilder/s (non drop timecode NTSC-Video)
* mm Minuten von 00–59
* ss Sekunden 00–59
* ff Einzelbild 00-nn, abhängig von der Frame-Rate
* F7$_{16}$ SysEx Message Ende
Während des Abspielens werden nur Short-Messages gesendet
Das Byte xx ist in der Bit-Darstellung am besten verständlich
* 0000 000y$_2$ Frame Zähler low Nibble
* 0001 yyyy$_2$ Frame Zähler high Nibble
* 0010 00yy$_2$ Sekunden Zähler low Nibble
* 0011 yyyy$_2$ Sekunden Zähler high Nibble
* 0100 00yy$_2$ Minuten Zähler low Nibble
* 0101 yyyy$_2$ Minuten Zähler high Nibble
* 0110 0rry$_2$ Stunden Zähler low Nibble + Framerate s o.
* 0111 yyyy$_2$ Stunden Zähler high Nibble
Bei Rücklauf des Bandes kommen die Messages allerdings in umgekehrter Reihenfolge.

## Dateiformate

MIDI ist an sich ein Übertragungsformat, mit dem in angenäherter Echtzeit Befehle zwischen digitalen Musikinstrumenten ausgetauscht werden. Es hat sich aber sehr bald als sinnvoll erwiesen, solche Befehle auch in Dateien zu speichern. Für das Abspielen einer solchen MIDI-Datei gemäß den angegebenen Zeiten in den MIDI-Befehlen ist dann eine eigene Software nötig.
MIDI-Dateien können über die Echtzeit-MIDI-Befehle hinaus noch weitere Informationen enthalten, die mit sogenannten Meta-Events codiert werden. Das erste Byte eines Meta-Events ist immer FF, die folgenden Bytes enthalten spezifische Befehle und Daten. Einer der wichtigsten Meta-Events ist der Lyrics-Event FF 05, mit dem Liedtext in einer MIDI-Datei abgespeichert werden kann. Meta-Events werden beim Abspielen nicht an verbundene Instrumente gesendet, sie können aber von der abspielenden Software interpretiert werden. Ein typisches Beispiel ist die Anzeige des Liedtextes für Karaoke-Aufführungen.
Für das Speichern von MIDI-Befehlen in Standard-MIDI-Files (kurz: SMF) gibt es drei Dateiformate:
* SMF 0 – Beim Format 0 sind alle MIDI-Kanäle in einer Spur zusammengefasst. Dieses Format wird auch von Klingeltönen für Handys genutzt und kann mit gängigen Sequenzerprogrammen in das Format 1 konvertiert werden.
* SMF 1 – Im Format 1 hat jeder Kanal seine eigene Spur und optional einen eigenen Namen. Verschiedene Stimmen und Instrumente können so besser identifiziert werden.
* SMF 2 – Im Format 2 besteht jede Spur (Track) aus unabhängigen Einheiten. Im Gegensatz zu SMF 1 können also mehrere Spuren dieselbe MIDI-Kanal-Nummer haben.
Die standardisierte Dateiendung für MIDI-Dateien ist .mid. Daneben finden noch .kar Verwendung. Diese sogenannten Karaoke-Dateien enthalten zudem den gesamten Liedtext. Das Dateiformat der Noteninformationen ist jedoch exakt dasselbe wie bei .mid. Viele Programme erkennen Dateien mit der Endung .kar jedoch nicht als MIDI-Dateien, daher müssen diese Dateien in der Praxis oft umbenannt werden. Windows unterscheidet die Dateien, so dass erkennbar bleibt, dass es sich um eine Karaoke-Datei handelt. Die Datei kann trotzdem sowohl mit Karaoke-fähiger Software als auch mit normalen „Playern“ abgespielt werden. Microsoft benutzt im Weiteren die Endung .rmi für sogenannte RIFF-RMID-Dateien. Bei diesen ist eine reguläre MIDI-Datei in einen RIFF-Container verpackt. RIFF-RMID ist kein offizieller MMA- oder AMEI-MIDI-Standard. Für Dateien, die MIDI-SysEx-Daten enthalten, wird .syx verwendet. Meist sind das Presets für Sounds von Synthesizern oder gerätespezifische Kommandos.

## Alternative Übertragungswege
### USB und FireWire

Da MIDI im Wesentlichen ein Datenprotokoll zur Steuerung von elektronischen Musikinstrumenten darstellt, ist es prinzipiell unerheblich, über welche Hardware die Daten übertragen werden. Um eine kostengünstige, plattformübergreifende und vor allem schnelle Anbindung externer MIDI-Interfaces an einen Rechner zu erreichen, statten immer mehr Hersteller ihre Geräte neben den klassischen MIDI-Anschlüssen mit USB- oder FireWire-Anschluss (IEEE1394) aus. Dabei werden die MIDI-Befehle über USB bzw. FireWire getunnelt. Auf diese Art lassen sich mehrere virtuelle MIDI-Verbindungen realisieren, wodurch die Begrenzung auf 16 pro Verbindung praktisch keine Rolle mehr spielt. Diese Art von MIDI-Interfaces stellt die im Vergleich zum PC-Gameport deutlich zuverlässigere Variante zum Anschluss von MIDI-Geräten an den Rechner dar, da die verwendeten Treiber von den Herstellern dieser verhältnismäßig teuren Geräte zumeist auf Timinggenauigkeit hin optimiert werden. Für den professionellen Einsatz werden Interfaces mit vier bis acht einzeln adressierbaren Out-Ports verwendet, mit denen Timingprobleme deutlich vermindert werden können (vgl. auch folgender Absatz).
Beim Anschluss mehrerer gleicher Geräte (z. B. Keyboards) über USB werden die gleichlautenden Gerätebezeichnungen über eine Nummernvergabe differenziert. Bei Änderung der USB-Belegung wird diese Nummerierung neu durchgeführt, was zur Folge haben kann, dass die Geräte nicht mehr gefunden werden und einer Software z. B. neu zugeordnet werden müssen.
Das USB-MIDI-Protokoll erweitert das herkömmliche MIDI-Protokoll. Die MIDI-Signale werden immer in 32-Bit-Paketen übertragen. Das untere Nibble des ersten Bytes enthält die Code-Index-Nummer, die für die MIDI-Kommandos 8..E dem im MIDI-Statusbyte kodierten Befehl entspricht. Das obere Nibble bestimmt die Kabelnummer (0..15), die einem sogenannten „Jack“ entspricht, max. 16 pro USB-Endpoint. Über jeden Jack können gemäß MIDI-Standard jeweils wieder 16 Kanäle übertragen werden. Die folgenden drei Bytes entsprechen dem MIDI-Standard, längere MIDI-Kommandos wie SysEx werden durch Code-Index 4 eingeleitet und fortgesetzt (weitere 3 Bytes) und abschließend je nach Anzahl der Restbytes (1, 2, 3 Bytes) durch Code-Index 5..7 beendet.
Für USB-Geräte existiert eine USB-Geräteklasse. USB-MIDI-Geräte, die als USB class-compliant oder treiberlos beworben werden, benötigen keine Treiber des Geräteherstellers. Der stattdessen verwendete Standardtreiber des Betriebssystems hat unter Windows jedoch einen Fehler, durch den jede virtuelle MIDI-Verbindung von höchstens einer Anwendung gleichzeitig verwendet werden kann. Gerätespezifische Treiber haben diese Einschränkung üblicherweise nicht. Für UWP-Anwendungen stellt Microsoft eine alternative API bereit.

### Wireless MIDI

Dem Trend hin zur drahtlosen Datenübertragung folgend werden auch Geräte angeboten, mit denen sich MIDI-Daten per Funk übertragen lassen. Die Geräte benutzen in der Regel Übertragungsfrequenzen im ISM-Band und senden bei Übertragungsfehlern ein „ALL NOTES OFF“, um hängende Töne zu vermeiden. Laut Herstellerangaben haben diese Geräte eine Reichweite von 10 bis 80 Metern.

### Bluetooth LE MIDI

Für Bluetooth-Low-Energy existiert ein Profil zur Übertragung von MIDI.

### IP-basierte Netzwerke

Seit einiger Zeit gibt es eine Reihe von virtuellen Gerätetreibern, die es erlauben, MIDI-Daten über IP-basierte Netzwerke zu übermitteln. Während die meisten dieser Produkte auf proprietärer Basis die MIDI-Daten per TCP oder UDP über das Netzwerk übertragen, gibt es mittlerweile auch einen RFC für eine genormte Übertragung von MIDI-Daten über Netzwerke auf Basis des RTP-Protokolls: RFC 4695. Es gibt mehrere Open-Source-Implementierungen dieses Standards und auch das Apple-Netzwerk-MIDI von Mac OS X Tiger und iOS 4.2 basiert auf dieser Spezifikation. Es existiert auch ein Windows RTP-MIDI Treiber, welcher auf Windows XP bis Windows 7 (32-Bit und 64-Bit) läuft und kompatibel zur Apple-Implementation ist.

### Andere

Es gab Bemühungen, den von Yamaha entwickelten mLAN-Standard als Verknüpfung von MIDI- und Audiodaten auf der Basis von FireWire zu etablieren. Dies konnte sich jedoch nicht durchsetzen und wurde inzwischen eingestellt. Eine weitere Option ist die Übertragung von MIDI-Daten über S/PDIF-Schnittstellen sowie über Audiosignale.

## Kritik
### Vor- und Nachteile gegenüber digitaler Audioaufzeichnung

Bevor MIDI entstand, war digitale Audioaufzeichnung noch extrem teuer und damit wenigen Produktionen vorbehalten. Somit eröffnete das technisch nicht sehr aufwendige MIDI mit seiner enormen Leistungsfähigkeit mittels Aufzeichnung reiner Steuersignale Anfang der 1980er Jahre einer breiten Masse von Musikschaffenden plötzlich neue Horizonte. Dank MIDI können auch Amateurmusiker mit entsprechenden Kenntnissen komplexere musikalische Strukturen kreieren. Beispielsweise können Streicher und Bläser synthetisch imitiert werden, während man Schlagzeug, Gitarre und Gesang über Audiospuren einspielt.
MIDI-Signale enthalten lediglich Steuerdaten. Digitale „Audiosignale“ hingegen sind ein kontinuierlicher binärer Datenstrom, entstanden durch die sehr schnelle Abtastung (Digitalisierung) analoger Schwingungen einer Audioquelle (Mikrofon oder elektronisches Instrument). Sie haben eine konstant hohe Datenrate und können nach erfolgter Digital-Analog-Wandlung über ein Verstärker-Lautsprecher-System hörbar gemacht werden. MIDI-Daten fallen nur an, wenn z. B. Tasten auf einem Keyboard gedrückt oder losgelassen werden. So entstehen bei MIDI ungleich geringere Datenmengen. Aufgezeichnete MIDI-Signale können leicht im Nachhinein an einen anderen Klangerzeuger gesendet werden. Auch besteht die Möglichkeit, eingespielte MIDI-Daten im Nachhinein beliebig zu editieren, um etwa falsche Töne auf die richtige Tonhöhe oder Abspielposition zu bringen oder ihre Dynamik anzupassen. All diese Veränderungen der Originaleinspielung kosten im Vergleich zur Nachbearbeitung von digitalen Audioaufzeichnungen sehr wenig Rechenaufwand und sind mit allen heute verfügbaren Sequenzerprogrammen möglich.

### Latenz und Jitter

Da für das Auslösen eines Tons bis zu 3 Bytes übertragen werden müssen, was 0,960 ms in Anspruch nimmt, kann es bei mehreren Events, die eigentlich gleichzeitig gesendet werden müssen, zu Verzögerungen bei einigen Geräten kommen, die auch hörbar werden. Dabei spielt auch die zufällige Sortierung der Noten eine Rolle, welche die effektiv erklingenden Notenlängen im Geräte beeinflusst.
Eine deutlich hörbare, durch MIDI verursachte Verzögerung tritt in den folgenden Beispielszenarien auf:
* In Verbindung mit der Verwendung von System-Exclusive-Daten: Dieser Message-Typ belegt weit mehr als die typischen drei Bytes (1 Statusbyte und 2 Databytes).
* Intensive Verwendung von Pitch-Bending oder ähnlichen Controllern, z. B. Ausdrucks-Controllern
* Bei der Verkettung mehrerer Hardware-Klangerzeuger über MIDI-Out oder Software-gepufferte MIDI-Thru-Verbindungen: Hier entsteht jeweils eine weitere Verzögerung von mindestens einem Byte.
Bei Studioarbeit werden mehrere Gegenmaßnahmen ergriffen:
* Vermeidung der genannten Belastungen
* Verteilung der MIDI-Daten auf mehrere parallele Ausgänge eines oder mehrerer MIDI-Interfaces.
* Besonders zeitkritische Synchronisierungsdaten wie MTC oder MIDI-Clock werden auf eigenen MIDI-Verbindungen übertragen.
* „Vorziehen“ des MIDI-Signalflusses: Man spielt Teile der MIDI-Daten etwas vorgezogen ab.
* Nutzung von Funktionen im Sequenzer, um redundante MIDI-Daten auszufiltern.
Bei Live-Anwendungen sind diese Maßnahmen allerdings oft nicht möglich. Ein Masterkeyboard hat üblicherweise nur ein MIDI-Out, das heißt, alles, was dort an Noten und Controllern ausgelöst wird, muss über diese eine Schnittstelle übertragen werden.
Nur, wenn ausschließlich Notenwerte in schneller Folge übertragen werden und anstatt des expliziten Note-Off-Kommandos ein Note-On-Kommando mit Anschlagsdynamikwert 0 verwendet wird, kann in der Übertragung auf das Senden des Statusbytes verzichtet werden (Running Status). Damit sinkt die zu übertragende Datenmenge für diesen Block allerdings nur um 1/3.

### Zeitliche Auflösung

Neben der ungleichmäßigen Zeitverzögerung kommt es auch zu einer Quantisierung der MIDI-Zeiten: Die Präzision einer MIDI-Sequenz ist meistens auf 1/96 einer Viertelnote definiert (siehe MIDI Clock), in einigen Fällen können Sequenzer und Programme eine höhere Genauigkeit erreichen, realisiert sind heute durchaus Teilungen von 240 und 480. Bei der Verwendung von Plugins besteht je nach Anwendungsprogramm die Möglichkeit, die Quantisierung völlig aufzuheben und dann nachzuquantisieren. Entscheidend sind hier die PPQN (pulses per quarter note), die das Gerät verarbeiten kann. Das bedeutet daher auch, dass die kleinste reproduzierbare Timingschwankung mitunter vom Songtempo abhängig ist. In einem Lied mit 120 bpm im Vierteltakt beträgt dieser Wert z. B. 5,21 Millisekunden. Damit sind weiche Tempoänderungen bzw. bestimmte Spieltechniken, wie laid back oder pushed, nicht präzise einspielbar.

### Echtzeitfähigkeit von MIDI

Je nach verwendetem Protokoll und Anzahl der zu übermittelnden Daten ergeben sich unterschiedlich große Verzögerungszeiten: Die Übertragung von einer typischen MIDI-Information bestehend aus 3 Werten ist beim Standard-MIDI mit unter 1 ms immer noch schneller, als die typische Latenz, die am USB-Bus beobachtbar ist. Diese liegt im günstigsten Fall bei 1–2 ms, kann aber auch bis zu 50 ms betragen. Dabei spielt auch die Hardware der Chips und das Betriebssystem eine Rolle. Bei der Benutzung eines to-host-interface und serieller Schnittstelle, sind bei 230kbps sogar zwischen 10 und 30 Noten noch schneller übertragbar, als mit USB 1.0. Damit werden bei sofortiger Ausführung auch bei einem beidhändig gegriffenen Akkord alle Noten kurz genug hintereinander übertragen, was für eine subjektive Gleichzeitigkeit ausreicht. USB 2.0 und 3.0 bringen hier leider keine Verbesserungen, sondern haben sogar oft noch höhere Latenzen. Erst ab 30–100 Noteninformationen, wie sie bei einem Auftakt in einem stark instrumentierten Werk vorkommen, ist USB in Summe schneller, weil es die höhere Bandbreite aufweist, hätte allerdings in Abhängigkeit der Paketgrößen immer noch eine nicht reproduzierbare Latenz und damit Jitter. Daher ist USB weniger für das Live-Spiel und mehr für die Produktion von Musik aus der DAW heraus geeignet.

### Controller-Auflösung

Alle analogen und kontinuierlichen Aspekte wie die Anschlagdynamik, das Verhalten des Klangs während des Drückens (after touch) und nach dem Loslassen der Taste sowie die Echtzeitmodifikationen der Amplitude, der Frequenz etc. sind in den 128 Stufen des MIDI-Formats aufgelöst. Das schafft unweigerlich eine verfälschende Vergröberung des manuellen Spiels schon bei der Aufnahme und verhindert eine stufenlose Änderung, was vor allem bei der Lautstärke und dem Spieltempo problematisch ist. Zwar werden in vielen modernen Keyboards, Klangerzeugern und Synthesizern die ankommenden Controllerwerte geglättet und sanft auf neue Werte übergegangen, dennoch hat damit der Musiker nur eine eingeschränkte Kontrolle über den Klang.
Viele elektronische Instrumente verfügen bei der Tonerzeugung nur über begrenzte Abstufungen in Tonhöhe oder Lautstärke. Selbst bei der Steuerung von künstlichen Klangparametern bei Synthesizern, wie z. B. der Cutoff-Frequenz eines Filters, macht sich diese „Stufigkeit“ teilweise hörbar bemerkbar.
Auch Instrumente mit scheinbar festen Tonhöhen wie Flöten oder Klaviere besitzen eine gewisse Varianz in der Tonhöhe während des Spiels, die bei Blasinstrumenten vom Luftstrom und bei Saiteninstrumenten vom Anschlag und der Momentanlautstärke sowie allerlei Resonanzeffekten abhängt. Die während eines komplexen Tonverlaufes existierenden Schwankungen der Tonparameter Amplitude und Phase sind nur sehr grob von MIDI-Hard- und Software nachzubilden bzw. zu erzeugen. Bei anschlagsdynamischen Instrumenten macht sich dieses besonders bemerkbar (Bösendorfer 290SE). Auch Vibrato und Blue-Note-Technik kann nur begrenzt abgebildet werden.
Dieses Problem kann nur durch die Nutzung zweier aufeinander folgender MIDI-Controller umgangen werden, was den zeitlichen Rahmen weiter einschränkt. Ein anderes Beispiel für die Benutzung zweier verknüpfter Controller ist der Bank Select-Befehl (MIDI CC 0 und 32 des General-MIDI-Standards), der es erlaubt, bis zu 128 Bänken zu adressieren. Jede Bank kann wiederum Subbänke (max. 128) enthalten. Auf diese Weise können theoretisch 16384 Soundbänke, jede einzelne mit 128 Klängen, realisiert werden. Spezielle Klangbibliotheken bieten deshalb verschiedene Artikulationen und Spielweisen akustischer Instrumente an, um diesen Nachteil zu umgehen.

### Stimmungen und Skalen

Schwer wiegen die Einschränkungen musikalischer Art: MIDI wurde für die Steuerung von Synthesizern konzipiert, die Töne gemäß einer gleichstufigen Stimmung wiedergeben. Für andere Stimmungen oder Skalen, die nicht zwölfstufig sind, müssen die Notendaten entweder per Controller im Sequenzer künstlich modifiziert oder in den Endgeräten uminterpretiert werden. Viele hochwertige Keyboards verfügen inzwischen über eine entsprechende Einstellmöglichkeit. Allerdings ist innerhalb eines musikalischen Werks damit nur eine Stimmung nutzbar. Für komplexere Ansprüche an Stimmungen gibt es spezielle Software (sog. Mikrotuner), die eine MIDI-Schnittstelle (z. B. USB-MIDI-Adapter) und einen Rechner voraussetzt. Die erhöhte Latenz erschwert damit unter Umständen das präzise live-Zusammenspiel.

### Erweiterte Formate

Von Yamaha gibt es mit XG-MIDI eine Erweiterung, die genau wie Rolands GS-MIDI Verbesserungen in der Kompatibilität von Standard-MIDI-Files bringt, allerdings nicht über ein proprietäres System hinaus gedieh. Als Quasi-Standard durchgesetzt hat sich lediglich GM (General MIDI). Beide Standards nutzen das normale MIDI-System ohne Änderungen an der MIDI-Hardware oder dem Protokoll.

## MIDI 2.0

Um die Schwächen des ersten MIDI-Standards zu beheben, haben die im Branchenverband MMA organisierten Hersteller die Spezifikation für einen neuen MIDI-Standard erarbeitet. Er soll folgende Eckdaten aufweisen:
* Bidirektionale Kommunikation
* Geräte informieren sich via „Capability Inquiry“-Nachrichten gegenseitig über ihre Fähigkeiten und passen Konfiguration aneinander an
* Höhere Anschlagsdynamik mit 16 Bit
* Mehr CC-Controller-Typen: 128 CC-Controller, 16.384 vordefinierte Controller (vergleichbar RPN), 16.384 nutzerdefinierbare Controller (vergleichbar NRPN) – jeweils mit 32 Bit Auflösung
* 32-Bit-Auflösung für alle Controller: CC, Channel und Polyphonic Aftertouch, Pitch Bend
* Verbessertes Timing und Synchronisation
MIDI 2.0 ist abwärtskompatibel, d. h. herkömmliche MIDI-Geräte sollen weiter angebunden werden können, ohne allerdings die erweiterten Möglichkeiten von MIDI 2.0 zu nutzen. Daher soll die Hardware-Verbindung über DIN-Buchse bestehen bleiben. Neben der USB-Verbindungen über 2.0 wird auch die USB 3.x spezifiziert und das USB-MIDI-Protokoll erweitert.
Der neue Standard wurde von der MIDI Manufacturers Association auf der US-Musikmesse NAMM im Januar 2020 einstimmig verabschiedet.
Erste Geräte sollten 2020 den Markt erreichen; so stellte Roland auf der NAMM 2020 ein MIDI-2.0-fähiges Masterkeyboard vor.
In Zusammenarbeit mit der Association of Musical Electronics Industry (AMEI) und Microsoft wurde eine Open Source API für MIDI 2.0 unter die MIT-Lizenz erstellt, die für alle Betriebssysteme entsprechend den Lizenzbedingungen benutzt werden kann.
Im Juni 2023 wurde ein Update der MIDI 2.0 Spezifikation durchgeführt, die kleinere Ungereimtheiten der vorherigen Version beseitigten.
Der Linux-Kernel unterstützt MIDI 2.0 ab Kernel-Version 6.5.