Die MIDI-Steuerung |
Stichwortliste, alphabetisch |
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.
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.
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 MIDI Kabeln verbunden werden, um darüber Informationen auszutauschen.
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 (in, englisch
für herein).
Damit noch ein weiterer Empfänger
die Befehle des Senders
erhalten kann gibt es noch die MIDI-THRU-Buchse (thru, amerikanisch für hindurch). 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.
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.
MIDI-Befehle
werden nacheinander (seriell) als Folge von Bits
über die MIDI
Kabell 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 auch deswegen bei MIDI
absolut 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.
MIDI-Befehle
werden als digitale
Signale übermittelt. Diese bestehen aus Bits, Nibbles und Bytes. Um einen ungefähren Überblick
über den Sprachumfang zu erhalten, ist das nicht so wichtig.
() Wer es aber detaillierter wissen möchte, darf sich zu den
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.
Die MIDI-Nachrichten MIDI messages | ||
---|---|---|
Channel kanalbezogene |
System Common systembezogene |
System Exclusive gerätebezogene |
|
|
Alle Befehle, die einer Klangerzeugung
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 Steuerkeyboard
oder einem Sequenzer
produziert.
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 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, 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.
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.
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, 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:
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.
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.