backbutton   

Die MIDI-Steuerung    

Stichwortliste, alphabetisch
Gliederung

downup  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.

weiterdownup MIDI, die elektronischen Gegebenheiten

weiter 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.

weiter 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 MIDI Kabeln verbunden werden, um darüber Informationen auszutauschen.

weiter 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 (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.

weiter 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.

weiter Die MIDI Übertragung

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.

notizDas 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.

downup  Die MIDI Sprache

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.

(parcours) Wer es aber detaillierter wissen möchte, darf sich zu den

weiterdownup 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.

weiter Die MIDI-Nachrichten   MIDI messages
Channel
kanalbezogene
System Common
systembezogene
System Exclusive
gerätebezogene

MIDI-Kanal

  1. Note off
  2. Note on
  3. Poly Pressure
  4. Control Change
  5. Program Change
  6. Channel-Aftertouch
  7. Pitch Bend
  1. MIDI TimeCode
  2. Song Position Pointer
  3. Song Select
  4. Tune Request
  5. MIDI Clock
  6. Start
  7. Continue
  8. Stop
  9. Active Sensing
  10. System Reset
  1. Hersteller eigene
  2. Standard Sample Dump
  3. Machine Control

weiterdownup kanalbezogene Befehle und MIDI-Kanäle

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.
weiter 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.

weiterdownup Note an und Note aus (note on, note off)

Die wohl wichtigste Meldung heißt Note an MIDI, ist dreiteilig und enthält neben der Befehlskennung mit Kanal-Adresse (Statusbyte) noch Informationen über die Tastennummer (Notennummer) MIDI und die Anschlagsstärke (Velocity) MIDI. 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.
weiter 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.

weiter Nach Note an gibt es natürlich auch den Befehl Note aus MIDI. Dieser ist ebenso dreiteilig, denn auch hier wird die Tastennummer angegeben und zusätzlich die Loslaßgeschwindigkeit (release velocity) übertragen.

weiterdownup Aftertouch oder Pressure

weiterPoly(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.

weiterChannel 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.

downup 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.

downup 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.

weiterdownup 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.
weiter Bei den Controllern gibt es vier verschiedene Typen:

  1. Controller, die nur zwei Werte annehmen (an oder aus), wie z.B. das Dämpfungspedal
  2. Controller, die 128 Werte annehmen, also einen kontinuierlichen Regelbereich abdecken (continuous controller), z.B. Lautstärke (Volume)
  3. Controller für die sogenannten Channel Mode Messages (könnte man als Kanalbetriebsart Meldungen übersetzen)
  4. Controller, die mit einem zweiten Controller als Paar insgesamt 16384 (=128*128) Werte kodieren, z.B. Bank Select. Der eine Controller übernimmt dabei die 128er Schritte (Höchstwertiges Byte = MSB), der andere die Einer-Schritte dazwischen (niederwertigstes Byte = LSB).

weiterdownMIDI Controller (für Control Change) Nummer in Grün, dezimal
not continuous
Ein/Aus-Schalter  
continuous
kontinuierliche    
channel mode
Kanalbetriebsart
controller pair
paarweise
  • sustain pedal
    Dämpfungs- Pedal 64
  • portamento on/off
    Portamento an/aus 65
  • sostenuto
    Sostenuto Pedal 66

weiter

  • soft pedal
    noch ein Dämpfer 67
  • hold 2
    2tes Haltepedal 69


weiter











weiter

  • modulation wheel
    Modulations- Rad 1
  • breath cont.
    Blasdruck- Wandler 2
  • foot cont.
    Fußpedal 4
  • portamento time
    Portamento Zeit 5
  • data entry
    Dateneingabe6
  • main volume
    Gesamt- Lautstärke 7
  • balance
    Balance 8
  • pan
    Panorama 10
  • expression cont.
    Ausdrucks- Pedal 11
  • external effects depth Stärke des externen Effektes 91
  • chorus depth Stärke des Chorus -Effektes 93
  • data increment Wert- Erhöhung 96
  • data decrement Wert- Erniedrigung 97
  • weitere sind nicht standardmäßig festgelegt
  • reset all controllers alle controller auf die Ausgangs- Position zurück- setzen 121
  • local control off/on trennt oder verbindet die geräteeigene Klangerzeugung von der eingbauten Tastatur 122
  • all notes off Alle Noten aus 123
  • omni mode off verhindert das Empfangen von Befehlen ohne Kanaltrennung 124
  • omni mode on das Gerät empfängt alle Befehle ohne auf den eingestellten MIDI-Kanal zu achten 125
  • mono mode on and poly mode off
    der Klangerzeuger kann auf jedem MIDI-Kanal nur eine Note spielen 126
  • mono mode off and poly mode on
    der Klangerzeuger kann auf jedem Kanal mehrere Noten gleichzeitig spielen 127
  • bank select zwei controller wählen eine von maximal 16384 Klangspeicher Bänken aus, danach muß ein Program Change Befehl gesendet werden 0 und 32
  • 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
    es sind drei Parameter festgelegt, die hier gesteuert werden:
  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

weiter Wer mag findet hier die Channel Messages im Detail parcours

weiterdownup systembezogene Befehle (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.

System Common und System Real Time Messages
Befehle zur Synchronisation          Andere







  • 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.

weiterdownup 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.

Anfang   © T.Paul Fischer