MIDI
Was ist MIDI? Die MIDI Schnittstelle, Master
und Slave, MIDI-Anschlüsse, MIDI Port, Die MIDI Übertragung, Die MIDI-Befehle,
kanalbezogene Befehle und MIDI-Kanäle, Note an und Note aus (note on, note
off), Poly(phonic key)-Pressure, Channel Aftertouch, Pitch Bend
(Tonhöhenbeugung), Klangprogramm Wechsel (Program Change), Control Change,
gerätebezogene Befehle (System Exclusive)
Was ist MIDI?
MIDI ist die Abkürzung für Musik Instrument Digital Interface,
was soviel heißt, wie digitale Schnittstelle für Musikinstrumente. MIDI
ist ein internationaler Standard, der die Kommunikation zwischen elektronischen
Musikinstrumenten mittels digitaler Signale ermöglicht. Dabei umfaßt dieser
Standard, genannt die MIDI-Norm, sowohl die elektronischen
Gegebenheiten, als auch die sprachlichen Regelungen der Steuerbefehle.
Die MIDI Schnittstelle
Damit alle Geräte sich untereinander verständigen können, ist es nicht
unbedingt nötig, daß die interne Steuerung in gleicher Weise funktioniert, die
Befehle müssen lediglich an einer Stelle übersetzt und genormt übergeben und
empfangen werden. Das ist die Aufgabe der MIDI-Schnittstelle (englisch:
MIDI-Interface). Wenn ein Gerät MIDI-fähig ist, heißt das nichts weiter,
als daß es eine solche MIDI-Schnittstelle besitzt. Fast alle modernen
Synthesizer haben eine MIDI-Schnittstelle eingebaut, im Gegensatz zu den
meisten Computern, die nachträglich mit einer speziell für sie angepaßten
MIDI-Schnittstelle MIDI-fähig gemacht werden müssen.
Master und Slave
Beim Zusammenspielen verschiedener Musikinstrumente und Geräte müssen die
Signale fehlerlos übertragen werden, was durch MIDI ermöglicht wird. Dafür ist
es nicht erforderlich, die Arbeitsweise von MIDI bis in die letzten technischen
Einzelheiten zu verstehen. Wichtig ist, daß MIDI-Befehle nur in einer
Richtung und nacheinander (seriell) über ein spezielles Kabel übertragen
werden. Es gibt also immer einen Sender und einen Empfänger von
MIDI-Befehlen. Anders augedrückt, sendet immer ein Meister (Master)
MIDI-Daten zu einem Sklaven (Slave). Ein MIDI-System besteht immer aus
mindestens zwei Geräten, die mit runden, 5-poligen Kabeln (sog. DIN-Kabel)
verbunden werden, um darüber Informationen auszutauschen.
MIDI-Anschlüsse, IN OUT THRU
Wenn ein Gerät Befehle senden will, so werden diese an der MIDI-OUT-Buchse
zur Verfügung gestellt (out, englisch für hinaus). MIDI-OUT des Sendegerätes
wird stets mit dem MIDI-IN des Empfangsgerätes verbunden.
Ein Gerät, das Daten empfangen will, nimmt diese immer an der MIDI-IN-Buchse
entgegen.
Damit noch ein weiterer Empfänger die Befehle des Senders erhalten kann gibt es
noch die MIDI-THRU-Buchse. An den MIDI-THRU Anschluß werden die gleichen
Daten weitergereicht, die an der MIDI-IN Buchse ankommen. Dabei kommt es zu
einer kleinen zeitlichen Verzögerung (5ms). Von der MIDI-THRU Buchse
werden Daten gesendet.
Ein MIDI-Kabel wird auf einer Seite immer entweder mit einer MIDI-OUT-
oder einer MIDI-THRU-Buchse und an der anderen an eine MIDI-IN Buchse
angeschlossen.
MIDI Port
In der MIDI-Norm gibt es nur 16 verschiedene Adressen (MIDI-Kanäle) für
MIDI-Befehle, die über ein Kabel geschickt werden können. Will man weitere
Geräte mit unterschiedlichen Befehlen versorgen, so muß es mindestens eine
weitere MIDI-OUT Buchse geben, die unabhängig von anderen MIDI-OUT Buchsen
Befehle verschicken kann. Es gibt auch Synthesizer, die auf mehr als 16
MIDI-Kanälen Daten empfangen und verarbeiten können, diese brauchen zusätzliche
MIDI-IN-Buchsen.
Jeder einzelne unabhängige MIDI-Anschluß heißt MIDI-Port.
Man darf hier nicht die Anzahl der MIDI-OUT-Buchsen mit der Zahl der MIDI-Ports
verwechseln, denn es gibt durchaus auch Geräte, die auf mehreren
MIDI-OUT-Buchsen genau die gleichen Befehle senden, diese sind dann nicht
unabhängig.
Die MIDI Übertragung
MIDI-Befehle werden nacheinander (seriell) als Folge von Bits über die
MIDI-Kabel gesendet. Die Folge darf nicht unterbrochen werden, sonst sind die
Informationen unvollständig.
Das bei Heimwerkern beliebte Y-Kabel, das mehrere Ausgänge mit einem Eingang
oder umgekehrt verbindet, ist deswegen bei MIDI unzulässig. Für diese Zwecke
gibt es die sogenannten MIDI-THRU-Boxen und die MIDI-Merger.
Die MIDI-Schnittstelle arbeitet mit einer Baudrate von 31,25kHz, d.h. es werden
31250 MIDI-Bytes pro Sekunde übertragen. Das hört sich ziemlich schnell an,
aber es gibt Situationen, da steht eine zwei- bis dreistellige Anzahl von Bytes
an einer MIDI-Leitung Schlange. Das kann zu einer Staubildung...und damit zu
hörbaren Verzögerungen kommen.
Die MIDI-Befehle
MIDI-Befehle werden auch als MIDI-Nachricht bzw. MIDI-Meldung (englisch:
message) oder Ereignis (englisch: event) bezeichnet, auch MIDI-Daten,
MIDI-Anweisung und MIDI-Signal sind gebräuchlich.
Alle MIDI-Befehle werden von einem Master an den oder die Slaves
gesendet. Der Emfänger (Slave) kann dabei nur die Befehle ausführen, die er
kennt. D.h. wenn beim Slave eine Funktion nicht eingebaut ist, werden
MIDI-Befehle dafür ignoriert. Hat andersherum der Slave Funktionen, die der
Master nicht kennt, so können diese auch nicht angesteuert werden.
Es gibt drei verschiedene Grundtypen von MIDI-Befehlen.
M I D I - N A C H R I C H T E N (MIDI messages) |
|
Channel Messages |
System Common Messages |
|
|
kanalbezogene Befehle und MIDI-Kanäle
Alle Befehle, die einem Klangerzeuger mitteilen, wann, wie und welcher Klang
produziert werden soll, sind kanalbezogene MIDI-Befehle. Ein MIDI-Kanal ist so
etwas wie eine Adresse, an die ein Befehl gezielt gerichtet wird. MIDI-Kanäle
wurden geschaffen, damit nicht alle Klangerzeuger gleichzeitig loslegen, wenn
ein MIDI-Befehl z.B. "Note an" heißt.
Ein solcher Befehl ist an einen MIDI-Kanal gerichtet und nur diejenigen
Klangerzeuger, die auf diesen Kanal eingestellt sind, dürfen diesen ausführen.
Anders ausgedrückt: Sendekanal des Master und Empfangskanal des Slave müssen
übereinstimmen.
Es gibt genau 16 verschiedene MIDI-Kanäle, die mit einem MIDI-Port (d.h. über
ein MIDI-Kabel) adressiert werden können. Weil Befehle dieser Gruppe immer nur
für einen Kanal gelten, nennt man sie kanalbezogene Befehle.
Alle kanalbezogenen Befehle bestehen immer aus einer Befehlskennung mit
kodierter Adresse (MIDI-Kanal) und einem oder zwei angehängten Datenteilen
(Statusbyte & Datenbytes).
Die kanalbezogenen Meldungen werden in der Regel von einem MIDI-Keyboard oder
einem Sequenzer produziert.
Note an und Note aus (note on, note off)
Die wohl wichtigste Meldung heißt Note an, ist dreiteilig und enthält
neben der Befehlskennung mit Kanal-Adresse (Statusbyte) noch
Informationen über die Tastennummer (Notennummer) und die
Anschlagsstärke (Velocity). Die Velocity muß größer Null sein. Das macht
auch Sinn, denn ganz ohne Anschlag kann man keine Taste drücken. Der Befehl
Note an mit einer Velocity von Null heißt demzufolge bei einigen Synthesizern
Note aus.
Bei MIDI gibt es keine Noten im herkömmlichen Sinn, denn eine Note enthält auch
die Klang-Dauer. MIDI hat stattdessen eine Noten- bzw. Tastennummer
und zwei Befehle: Note an und Note aus. Der Befehl "Note aus" muß
hier die gleiche Tastennummer haben, mit der die Note-an-Meldung den Klang
startet, sonst wird der Klang nicht beendet. Ein Befehl Note an, der nicht mit
Note aus beendet wird, ist als Notenhänger gefürchtet. Der mit MIDI
mögliche Notenumfang beträgt 128 Halbtonschritte von C-2 bis G8.
Nach "Note an" gibt es natürlich auch den Befehl Note aus.
Dieser ist ebenso dreiteilig, denn auch hier wird die Tastennummer angegeben
und zusätzlich die Loslaßgeschwindigkeit (release velocity) übertragen.
Poly(phonic key)-Pressure
Poly Pressure, auch "Polyphoner Aftertouch" genannt, der zusätzliche
Druck auf jeweils eine bereits angeschlagene Taste, wird auch als dreiteilige
Meldung ausgeführt. Der zweite Teil beinhaltet die Tastennummer, der dritte
enthält die Stärke des Druckes.
Channel Aftertouch
Channel Aftertouch, der zusätzliche Druck auf irgendeine Taste der Tastatur
wird als zweiteilige Meldung gesendet. Da diese Meldung für den gesamten
MIDI-Kanal gilt, entfällt die Kodierung der Tastennummer und es wird neben der
Befehlskennung nur die Druckstärke übertragen.
Pitch Bend (Tonhöhenbeugung)
Die Tonhöhenbeugung verändert die Tonhöhe (pitch) fließend nach unten oder oben
(tiefere oder höhere Frequenz). Dabei werden alle Klänge verändert, die gerade
auf demselben MIDI-Kanal erklingen. Dieser Befehl ist dreiteilig, d.h. er hat
zwei angehängte Datenteile, in denen der Grad der Beugung mitgeteilt wird. Das
ist nötig, weil die Veränderung sonst nicht fein genug abgestuft werden könnte.
In der Regel erzeugt ein Pitchbend-Rad diese Meldung.
Klangprogramm Wechsel (Program Change)
Program Change, der Wechsel zu einem anderen Klangspeicherplatz (program), wird
zweiteilig gesendet, wobei im zweiten Teil einer von 128 Speicherplätzen
angegeben wird. Hat ein Gerät mehrere Klangspeicherbänke, so wird bei Program
Change nur auf ein anderes Programm der aktuellen Klangspeicherbank gewechselt.
Soll gleichzeitig die Speicherbank gewechselt werden, muß ein sogenannter Bank
Select Befehl gesendet werden.
Control Change
Control Change, der gezielte Eingriff in den Klangverlauf mittels Spielhilfen
(Controller), wird dreiteilig übertragen. Im zweiten Teil wird angegeben, um
welchen Controller es sich handelt. Die Spielhilfen werden anhand einer
sogenannten Controller-Nummer unterschieden. Der dritte Teil übermittelt
den Wert der Spielhilfe.
Bei den Controllern gibt es vier verschiedene Typen:
M I D I C O N T R O L L E R |
||
Ein/Aus-Schalter |
kontinuierliche Controller |
|
· sustain pedal · portamento on/off · sostenuto · soft pedal · hold 2 |
· modulation wheel · breath cont. · foot cont. · portamento time · data entry · main volume · balance · pan · expression cont. · external effects depth · chorus depth · data increment · data decrement |
|
Kanalbetriebsart |
Controller-Paare (2 Byte) |
|
· reset all controllers · local control off/on · all notes off · omni mode off · omni mode on · mono mode on and poly mode off · mono mode off and poly mode on |
· bank select · non-registered parameter das
Controllerpaar wählt einen Parameter aus, der dann mit data- entry,
-increment oder -decrement geändert werden kann. Welcher Parameter das ist,
bleibt dem Hersteller überlassen. 98 und 99 · registered parameter 1.
pitch bend sensitivity maximale Tonhöhen Beugung des Pitchbend-Rades
100=0 und 101=0 2.
fine tuning Feinstimmung im Bereich +/- 1 Halbton 100=1 und 101=0 3.
coarse tuning Grobstimmung im Bereich +63/-64 Halbtöne 100=2 und 101=0 |
|
System Common Messages
Alle Befehle, die auf das komplette System wirken, sind systembezogene
Befehle. Dazu gehört z.B. die Geschwindigkeit des aktuellen Musikstückes
oder die Aufforderung, die Oszillatoren zu stimmen. Der MIDI-Kanal spielt bei
diesen Meldungen keine Rolle.
Einige Befehle dieser Gruppe werden als sogenannte System-Echtzeit-Meldungen
(system realtime messages) bezeichnet. Da in der Literatur die Unterscheidung
zwischen System Common und System Realtime nicht einheitlich ist, fasse ich
alle auf das ganze MIDI-System bezogenen Befehle in dieser Gruppe zusammen.
S Y S T E M C O M M O N U N D |
|
Befehle zur Synchronisation |
Andere Befehle |
· MTC=MIDI Time Code, acht MTC Nachrichten
kodieren die aktuelle Position mit Stunde, Minute, Sekunde und Frame (=Bild).
· MIDI-Clock, wird 24 mal pro Viertelnote
gesendet. · Song Position Pointer, Positionsangabe des
aktuellen Musikstückes als Anzahl der verstrichenen 1/16 Noten. Zwei
Datenbytes kodieren dabei 128*128=16384 Werte, somit können maximal 1024
4/4-Takte adressiert werden. · (Song oder Sequenzer) Start, Start vom
Anfang · (Song oder Sequenzer) Stop · (Song oder Sequenzer) Continue, Start von
der aktuellen Position |
· Song Select, Auswahl eines von 128
gespeicherten Songs · Tune Request, fordert alle Oszillatoren auf
sich zu stimmen (das ist manchmal erforderlich, da manche analoge
Oszillatoren nicht ganz stimmstabil sind) · Active Sensing, diese Aktiv-Meldung
benutzen einige Geräte, um zu zeigen, daß die MIDI Verbindung noch
funktioniert. Einmal gesendet muß die Meldung ca. alle 1/4 Sekunden erfolgen,
sonst beendet der Empfänger seine Wiedergabe. · System Reset, bewirkt das Zurücksetzen
aller angeschlossenen Geräte auf einen Grundzustand. |
gerätebezogene Befehle (System Exclusive)
Da alle modernen Synthesizer intern irgendwelche Daten speichen können und der
Wunsch nach Datenaustausch bestand, hat man die Systemexklusiv-Befehle
eingeführt. Das ist der Bereich, in dem jeder Hersteller sein eigenes Süppchen
kochen darf. Exklusiv-Befehle gelten zunächst einmal nur für jeweils ein
Produkt einer Firma und können auch nur von einem Gerät gleicher Bauart
verstanden werden. Natürlich können diese Daten auch mit einem Computer
manipuliert werden, das erledigen sogenannte Editier-Programme. Obwohl die
Systemexklusiv-Daten gerätebezogene Nachrichten sind, haben sich die Hersteller
in mehreren Fällen auf eine herstellerübergreifende und geräteunabhängige Norm
geeinigt, z.B. Standard-Sample-Dump und MIDI-Machine-Control.