Wikipedia · einfach zusammengefasst · Stand
MIDI
Musical Instrument Digital Interface (englisch für „digitale Schnittstelle für Musikinstrumente“), kurz MIDI, ist ein Industriestandard für den Austausch …
Inhalt6 Abschnitte
Grundidee und Funktionsweise
MIDI steht für „Musical Instrument Digital Interface“ und ist ein Industriestandard zum Austausch musikalischer Steuerinformationen zwischen elektronischen Instrumenten und anderen Geräten. Der Standard legt sowohl die notwendige Hardware als auch das Kommunikationsprotokoll fest. MIDI 1.0 wurde im August 1982 eingeführt.
MIDI überträgt keine Audiosignale, sondern Befehle. Wird beispielsweise eine Taste gedrückt, sendet ein Keyboard Informationen über Tonhöhe und Anschlagstärke. Ein Klangerzeuger empfängt unter anderem Note-on („Taste für Note x wurde gedrückt“) und Note-off („Taste für Note x wurde losgelassen“). Der Klang selbst wird im Empfänger erzeugt. Ein vollständiger Spielbefehl kann aus drei Bytes bestehen: Note ein auf MIDI-Kanal 1, Note C3 und Anschlagstärke 103. Der Ton erklingt, bis ein Note-off-Befehl eintrifft. Der gewünschte Klang kann vorher am Klangerzeuger oder durch weitere MIDI-Befehle eingestellt werden.
Ursprünglich sollte eine Tastatur mehrere Synthesizer verschiedener Hersteller steuern. Dadurch konnten etwa Streicher- und Bläserklänge übereinandergelegt oder verschiedene Tastaturbereiche unterschiedlichen Klangerzeugern zugewiesen werden. MIDI trennte damit die Tastatur von der Klangerzeugung. Später wurde der Standard auch für Expandermodule, Sampler, Drumcomputer, Effektgeräte, Mischpulte, Recorder, Computer, Controller und Lichtsteuerungen eingesetzt. Die Audiosignale müssen weiterhin über eigene Leitungen, etwa zu einem Mischpult, geführt werden.
Computer und Sequenzer können MIDI-Daten aufnehmen, speichern, anzeigen, verändern und wieder an Instrumente senden. Typische Darstellungen sind der Listeneditor, der Piano-Roll-Editor mit Klaviertastatur und Zeitverlauf sowie der Noteneditor. So lassen sich falsche Töne korrigieren, Abläufe variieren und Klänge auch nach der Aufnahme austauschen.
Übertragung, Anschlüsse und Geräte
MIDI verwendet ein unidirektionales serielles Protokoll ohne Datenflusskontrolle. Die Übertragungsgeschwindigkeit beträgt 31250 Bit/s, also exakt 32 µs pro Bit. Ein Byte besteht aus 8 Datenbits sowie einem Start- und einem Stoppbit. Ein Datensatz aus 30 Bits benötigt 960 µs. Technisch ähnelt dies dem PC-UART-Protokoll, allerdings ohne Parity-Bit. Statt einer pegelgesteuerten Schnittstelle verwendet MIDI eine 5-mA-Stromschleife. Ein Optokoppler sorgt für galvanische Trennung und hilft, Masseschleifen zu vermeiden.
Klassische MIDI-Anschlüsse sind fünfpolige DIN-Buchsen (DIN 5/180°). Für die Signalisierung werden Pin 4 und Pin 5 genutzt; Pin 2 ist bei MIDI-Out und MIDI-Thru für die Masse- beziehungsweise Kabelabschirmung vorgesehen. Bei +5 V werden gemäß Spezifikation 220-Ohm-Widerstände eingesetzt. Ein fließender Strom entspricht der logischen „0“, kein Strom der logischen „1“ und dem Ruhezustand. Nach einer späteren Erweiterung sind auch 3,3-V-Ausgänge möglich; dann werden 33 Ohm an Pin 4 und 10 Ohm an Pin 5 eingesetzt. Am 26. Juli 2018 wurde die Spezifikation außerdem auf 2,5-mm- und 3,5-mm-Klinkenstecker erweitert. In bestimmten Systemen kommen auch 6-polige Mini-DIN-Buchsen vor.
MIDI-In empfängt Daten, MIDI-Out sendet Daten und MIDI-Thru leitet am MIDI-In empfangene Signale unverändert weiter. Typisch ist das Master-Slave-Prinzip: Der Master, etwa ein Keyboard, sendet vom MIDI-Out zum MIDI-In eines Slaves, etwa eines Synthesizers. Mehrere Geräte können über MIDI-Thru verkettet werden. Dabei summieren sich Verzögerungen; eine sternförmige Verkabelung über eine MIDI-Patchbay kann Timingprobleme vermindern.
Ein MIDI-Interface dient am Computer als Signal-Konverter. Es übersetzt Spannungspegel und stellt die galvanische Entkopplung her. Historisch gab es Interfaces für serielle und parallele Schnittstellen, später USB, FireWire und LAN. Der Atari ST wurde wichtig, weil er standardmäßig eine MIDI-Schnittstelle besaß; Programme wie Cubase und Notator begannen dort. Auf dem Commodore Amiga gab es unter anderem erweiterbare Sequenzerlösungen und Interfaces mit bis zu drei MIDI-Outs, also 48 MIDI-Kanälen (3×16). Auf dem IBM-PC war die Roland MPU-401 bedeutend. Ihr Intelligent-Mode bot Hardwareunterstützung für genaues Timing, während andere Hersteller den sogenannten Dumb-Mode (UART) oft nur eingeschränkt unterstützten.
Ein Masterkeyboard erzeugt MIDI-Noten, besitzt aber keine eigene Klangerzeugung. Reine MIDI-Controller verwenden Knöpfe, Fader und Drehregler. Pad-Controller erzeugen häufig anschlagdynamische Signale für Percussion oder Samples. Es gibt auch Guitar-to-MIDI-Converter, Piano-Aufsetzer, Blaswandler, MIDI-Geigen, MIDI-Gitarren und MIDI-Schlagzeuge. Akustische Schwingungen werden dabei aufgenommen und in Tonhöhen sowie Controllerwerte umgerechnet.
Klangerzeuger und Sequenzer
Ein Expander ist ein externer Klangerzeuger ohne eigene Tastatur. Er empfängt Noten ausschließlich per MIDI und kann je nach Ausstattung auch Parameteränderungen zurücksenden. Expandermodule erweitern Keyboards und Synthesizer platzsparend. Ihre Klangerzeugung lässt sich in zwei Grundklassen einteilen.
Samplebasierte Klangerzeugermodule spielen gespeicherte Klangaufnahmen, sogenannte Multisamples, ab. ROM-Klangerzeuger beziehungsweise ROMpler und Sampleplayer stellen viele Grundklänge zur Verfügung und waren häufig mindestens 16-stimmig sowie mit mindestens 6 Klangfarben (Timbres) ausgestattet. Durch Multitimbralität können verschiedene Klänge auf unterschiedlichen MIDI-Kanälen gespielt werden. Beispiele sind Roland U-110, Roland U-220 und Korg M1r. Ein Sampler nimmt dagegen Klänge auf, lädt meist Samples aus einer Sound-Library und kann eigene Multisamples, Loops, Drum-Loops und One-Shot-Effekte erstellen. Ein bekanntes Beispiel ist die Akai-S-Serie. Die Samplertechnik prägte unter anderem Hip-Hop, Filmmusik und den Live-Einsatz.
Samplebasierte Synthesizermodule verbinden Samples mit unterschiedlichen Syntheseverfahren. Rolands LA-Synthese trennt Transienten und Flächenklänge und bearbeitet sie mit digitalen Filtern. Yamaha integrierte Samples in die FM-Synthese. Korgs Wavestation konnte Samples rhythmisch abspielen. Beim Wavetable-Verfahren von Waldorf und Ensoniq werden einzelne Samplezyklen durchlaufen. Kurzweils VAST-Synthese verwendet aufwändige DSP-Funktionen zur starken Ummodulierung von Samples.
Synthesizermodule mit generischer Klangerzeugung erzeugen Klänge rein synthetisch. Dazu gehören analoge Synthese mit analogen Oszillatoren und Filtern, analog-digital kombinierte Verfahren, FM-Synthese, additive Synthese und virtuelle Synthese. Virtuelle Verfahren simulieren akustische, mechanische, elektrische oder elektronische Eigenschaften von Instrumenten, etwa bei virtuellen Flügeln, Gitarren, Bässen, Streich- und Blasinstrumenten sowie Orgeln und E-Pianos.
Viele Expander besitzen Regler, Fader und Schalter, die MIDI-Signale senden. Dadurch können beispielsweise Filterverläufe im Sequenzer aufgezeichnet werden. Ein Gerät kann deshalb je nach Situation Sender, Empfänger oder beides sein. Expandermodule werden meist in genormter 19-Zoll-Bauweise hergestellt.
Hardwaresequenzer zeichnen MIDI-Daten auf, arrangieren Musikstücke und spielen Notenwerte, Anschlagsstärke sowie Steuerbefehle wie Modulation ab. In Keyboards und Groove-Boxes integrierte Sequenzer eignen sich auch für den Live-Einsatz. Die Verbindung aus Klangerzeuger, Masterkeyboard und Hardwaresequenzer heißt Workstation. Softwaresequenzer bieten zusätzlich grafisches Editieren und Quantisierung und verarbeiten heute meist auch Audio. Die Kombination aus MIDI- und Audiobearbeitung wird als DAW (Digital Audio Workstation) bezeichnet.
MIDI-Nachrichten und Steuerung
MIDI-Befehle enthalten meist eine Kanalnummer. Sie ist 4 Bit groß, sodass 2^4 = 16 Kanäle möglich sind. Ein angeschlossenes Instrument reagiert nur auf seinen eingestellten Kanal; über eine Verbindung lassen sich daher bis zu 16 verschiedene Instrumente steuern.
Das Protokoll unterscheidet Statusbytes und Datenbytes. Datenbytes beginnen mit 0 und können Werte von 0 bis 127 darstellen. Statusbytes beginnen mit 1; drei weitere Bits codieren einen von acht Befehlen und vier Bits den Kanal von 0 bis 15. Statusbytes liegen im Bereich 80₁₆ bis FF₁₆, Datenbytes zwischen 00₁₆ und 7F₁₆. Programme zeigen Kanäle häufig als 1 bis 16 an.
Zu den Nachrichtentypen gehören Note On/Off, polyphoner und monophoner beziehungsweise Channel Aftertouch, Control Change, Program Change, Pitchbend und System Exclusive. Note On enthält Statusbyte, Tonhöhe und Anschlagstärke. Note Off beendet eine Note. Program Change wählt ein Instrument oder Klangprogramm. Pitch Bend verwendet zwei Datenbytes als 14-Bit-Wert von 0 bis 16383; 8192 bedeutet unveränderte Tonhöhe.
Beim Running Status kann bei mehreren gleichen Befehlen das wiederholte Statusbyte entfallen. Dadurch sinkt die Datenmenge um etwa ein Drittel. Ein Note-On-Befehl mit Anschlagstärke 0 gilt als Note-Off-Befehl, damit Note-On und Note-Off denselben Running Status verwenden können.
Continuous Controller (CC) übertragen Spielhilfen und Klangparameter. Wichtige Beispiele sind Modulation CC001, Breath Controller CC002, Main Volume CC007, Panorama CC010, Expression CC011, Haltepedal CC064 und Local Control on/off CC122. Einfache Controllerwerte reichen von 0 bis 127. Controller 0–31 können mit LSB-Controllern 32–63 gekoppelt werden und dadurch 14 Bit Auflösung erreichen, werden aber selten genutzt. Bei Schaltern gelten meist 0–63 als „aus“ und 64–127 als „ein“.
RPN (Registered Parameter Number) und NRPN (Non Registered Parameter Number) erweitern den Controllerbereich. Sie können Parameterindizes von 0 bis 16383 ansprechen. Dazu werden MSB und LSB gesetzt; anschließend überträgt Data Entry den Wert oder Data Increment beziehungsweise Data Decrement erhöht oder vermindert ihn. Systemexklusive Meldungen (SysEx) sind hersteller- und gerätespezifisch. Sie beginnen mit F0₁₆ und enden mit F7₁₆. Dazwischen stehen eine eindeutige Herstellerkennung und beliebig viele Datenbytes mit Werten von 00₁₆ bis 7F₁₆. SysEx kann etwa Gerätespeicher sichern oder Modellinformationen übertragen.
MPE (MIDI Polyphonic Expression) wurde 2017 als abwärtskompatible Erweiterung definiert. Jede Note erhält einen eigenen MIDI-Kanal und kann dadurch innerhalb eines Akkords unabhängig moduliert werden. Geräte wie Roli Seaboard und Linnstrument werten neben Anschlagsdynamik und Aftertouch Fingerbewegungen auf der X- und Y-Achse aus.
Synchronisation, Dateien und Übertragungswege
Zur Synchronisation mehrerer MIDI- oder Audiogeräte gibt es MIDI-Clock (MC) und MIDI-Time-Code (MTC). In einem Verbund gibt es genau einen Master; die übrigen Geräte sind Slaves. MIDI-Clock bezieht sich auf das musikalische Tempo und verwendet Ticks. F8₁₆ wird während des Abspielens 24-mal je Viertelnote gesendet. Weitere Nachrichten sind F2₁₆ für die Notenposition, F3₁₆ für die Liedauswahl, FA₁₆ für Start, FB₁₆ für Fortsetzen und FC₁₆ für Stopp. Der Song Position Pointer übermittelt die Position jede Sechzehntelnote und ist auf maximal 1024 Takte beschränkt. MTC ist dagegen eine absolute Zeitinformation und eignet sich zur Synchronisation von DAWs, Hardware-Sequenzern, Drumcomputern, Bandmaschinen, Harddiskrecordern und Mischpulten. Er setzt den SMPTE-Timecode in das MIDI-Format um. Unterstützte Bildraten sind 24, 25, 29,97 und 30 Bilder pro Sekunde.
MIDI-Befehle können in Standard-MIDI-Files (SMF) gespeichert werden. Die übliche Dateiendung ist .mid beziehungsweise .midi; außerdem kommen .kar, .rmi und für SysEx-Daten .syx vor. Eine MIDI-Datei ist keine Audioaufnahme: Zum Abspielen der Befehle wird Software benötigt. Meta-Events beginnen mit FF und werden nicht an Instrumente gesendet. Das Lyrics-Event FF 05 kann Liedtexte für Karaoke speichern. SMF 0 fasst alle Kanäle in einer Spur zusammen, SMF 1 ordnet Kanäle eigenen Spuren zu und SMF 2 besteht aus unabhängigen Spureinheiten, wobei mehrere Spuren dieselbe MIDI-Kanalnummer verwenden können. .kar-Dateien enthalten zusätzlich den Liedtext; .rmi-Dateien verpacken MIDI in einen RIFF-Container und sind kein offizieller MMA- oder AMEI-MIDI-Standard.
MIDI-Daten können über USB und FireWire getunnelt werden. Dadurch sind mehrere virtuelle Verbindungen möglich; die Begrenzung auf 16 Kanäle pro Verbindung spielt praktisch eine geringere Rolle. USB-MIDI überträgt 32-Bit-Pakete. Drahtlose Systeme verwenden meist das ISM-Band, senden bei Übertragungsfehlern „ALL NOTES OFF“ und geben Reichweiten von 10 bis 80 Metern an. Für Bluetooth Low Energy existiert ein MIDI-Profil. Über IP-Netzwerke gibt es proprietäre TCP- oder UDP-Lösungen sowie den standardisierten RTP-Ansatz nach RFC 4695. Der mLAN-Standard für MIDI und Audio über FireWire konnte sich nicht durchsetzen und wurde eingestellt.
Grenzen und MIDI 2.0
MIDI benötigt im Vergleich zur digitalen Audioaufzeichnung sehr geringe Datenmengen und erlaubt nachträgliches Editieren von Tonhöhe, Position, Dynamik, Klang und Arrangement. Grenzen entstehen durch Latenz, Jitter und die begrenzte Auflösung. Die Übertragung eines typischen Drei-Byte-Befehls dauert 0,960 ms. Bei vielen gleichzeitigen Ereignissen, SysEx-Daten, intensivem Pitch-Bending oder verketteten Geräten können hörbare Verzögerungen entstehen. Gegenmaßnahmen sind mehrere parallele Ausgänge, eigene Leitungen für MIDI-Clock oder MTC, das Vorziehen von MIDI-Daten und das Herausfiltern redundanter Daten.
MIDI-Zeiten sind häufig auf 1/96 einer Viertelnote quantisiert; manche Programme und Sequenzer erreichen Teilungen von 240 oder 480. Bei 120 bpm beträgt die kleinste reproduzierbare Zeiteinheit im Vierteltakt 5,21 Millisekunden. Dadurch sind weiche Tempoänderungen sowie Spielweisen wie „laid back“ oder „pushed“ nur begrenzt präzise abbildbar. Controllerwerte besitzen meist 128 Stufen. Das kann bei Lautstärke, Tonhöhe, Filterbewegungen, Vibrato und Blue-Note-Technik zu hörbarer Stufigkeit führen. Für andere Stimmungen und Skalen als die gleichstufige, zwölfstufige Stimmung sind zusätzliche Bearbeitung, Gerätefunktionen oder Mikrotuner nötig; innerhalb eines Werks ist damit oft nur eine Stimmung nutzbar.
MIDI 2.0 wurde am 17. Januar 2020 auf der NAMM erstmals veröffentlicht und von der MIDI Manufacturers Association im Januar 2020 einstimmig verabschiedet. Vorgesehen sind bidirektionale Kommunikation, Capability-Inquiry-Nachrichten zur automatischen Anpassung von Geräten, 16-Bit-Anschlagsdynamik, 32-Bit-Auflösung für Controller, Channel- und polyphonen Aftertouch sowie Pitch Bend, außerdem 128 CC-Controller, 16.384 vordefinierte und 16.384 nutzerdefinierbare Controller sowie verbessertes Timing und bessere Synchronisation.
MIDI 2.0 ist abwärtskompatibel. Herkömmliche MIDI-Geräte und DIN-Buchsen sollen weiter genutzt werden können, allerdings ohne die erweiterten Möglichkeiten. Neben USB 2.0 wird auch USB 3.x berücksichtigt. Gemeinsam mit der Association of Musical Electronics Industry und Microsoft wurde eine Open-Source-API unter der MIT-Lizenz entwickelt. Im Juni 2023 wurde die MIDI-2.0-Spezifikation aktualisiert; der Linux-Kernel unterstützt MIDI 2.0 ab Version 6.5.