Sonntag, 13. März 2016

MIDI Grundlagen Author D.Selzer-McKenzie

MIDI Grundlagen   Author D.Selzer-McKenzie
https://youtu.be/T7rUWO8HqVA
Grundlagen von MIDI
MIDI steht für Musical Instrument Digital Interface und ist eine Standardschnittstelle für den Austausch von Steuerdaten zwischen Musikinstrumenten und Computern. Die ursprüngliche Idee von MIDI war es, mit Hilfe weniger Steuerinformationen Klangerzeuger anzusteuern, und mit Hilfe weniger Kabel komplexe Aufbauten von Synthesizern zu kontrollieren. Als MIDI 1982 / 1983 entwickelt wurde, war die Computertechnik noch in den Kinderschuhen und man war froh, eine relativ schnelle und zuverlässige Steuerleitung realisieren zu können, mit deren Hilfe Klangerzeuger angesteuert werden konnten. Damals war es undenkbar, die Wellenform eines Klangs in brauchbarer Qualität über eine digitale Schnittstelle zu übertragen erst recht nicht in Echtzeit und mehrstimmig!
Man hat also die Klangerzeuger - seien sie nun analog oder digital - mit einer Schnittstelle ausgestattet, über die das Erzeugen von Tönen und Klangeigenschaften gesteuert werden konnte. Diese Schnittstelle nannte man MIDI und sie stellt bis heute den Standard für die Steuerung von Musikdaten dar.
Welche MIDI-Funktionen in einem Gerät realisiert worden sind, gibt die so genannte MIDI-Implemen-tierung an, die meist im Anhang der Bedienungsanleitung des Gerätes zu finden ist.
9.1.1 MIDI Hardware
Das MIDI-Interface verwendet einen 5-poligen 180° DIN-Stecker als Schnittstelle. Für alle Ein- und Ausgänge sind immer weibliche Buchsen an den Geräten. Die Kabel sind demzufolge stets männlich auf männlich, haben also an beiden Enden einen Stecker.
Die Datenübertragung über MIDI erfolgt seriell und asynchron mit einer Geschwindigkeit von 31,25 kbaud bzw. 31,25 kbIt und einer Toleranz von ±1%. Asynchron bedeutet, dass die gesendeten und die empfangenen Datenworte nicht zeitgleich beginnen müssen bzw. nicht den exakt gleichen Takt aufweisen müssen.
Ein MIDI-Byte wird mit 10 Bit übertragen (siehe Abbildung 9.1-1):
* Ein Start-Bit: Es hat immer den Logikpegel "Null" und entspricht einer Spannung von OV auf der Datenleitung. Dies hat einen Stromfluss über das MIDI-Kabel zur Folge, da als Referenzspannung nicht OV, sondern +5V verwendet werden.
* 8 Datenbits: Beginnend mit dem LSB (Least Signiflcant Bit) werden die acht Datenbits direkt auf die Leitung gegeben.
* Ein Stop-Bit : Es hat immer den Logikpegel "Eins" und entspricht einer Spannung von +5V. Diese Spannung hat keinen Stromfluss über die MIDI-Leitung zur Folge.
Um sowohl mit den Fachbegriffen, als auch mit den Zahlendarstellungen, die in den folgenden Kapiteln verwendet werden, zurechtzukommen, sei die Lektüre der Kapitel 7.1.1, sowie 7.2.1, 7.2.2 und 7.2.3 empfohlen.
In diesem Kapitel finden sich sehr viele englische Fachbegriffe, die vielleicht etwas abschreckend -wirken. Diese Begriffe existieren jedoch in Fach-.zeisen nur auf englisch, und ein Eindeutschen würde nicht nur den Sinn, sondern vor allem das Verständnis in Frage stellen.
Sollte man nun denken, die MIDI-Daten würden invertiert gesendet, da eine Null Stromfluss und eine Eins keinem Stromfluss über die Leitung entspricht, so sei gesagt, dass dies nicht stimmt Der Stromfluss in der MIDI-Leitung bringt eine Leuchtdiode in dem Optokoppler des Empfängers zum Leuchten. Diese wiederum leuchtet auf einen Fototransistor, der bei Lichteinfall durchschaltet und eine logische Null an seinem Ausgang erzeugt.
0 DO D1 D2 D3 D4 D5 D6 D7
Startbet LSB MSB Stopbit
Abb. 9.1-1: MIDI-Datenwort
665

MIDI
Abb. 9.1-2: Schaltbild des MIDI-Interfaces
Fließt kein Strom durch das MIDI-Kabel, leuchtet auch die Leuchtdiode nicht, der Transistor schaltet nicht durch, und an seinem Ausgang liegt eine logische Eins an. Man sieht, dass das Signal auf jeden Fall korrekt übertragen wird. Das Schaltbild der kompletten MIDI-Ein- und Ausgangssektion ist in Abbildung 9.1-2 zu sehen. Die dort gezeigten MIDI-In, MIDI-Thru und MIDI-Out Anschlüsse sind in Kapitel 9.1.1.1 bis 9.1.1.3 näher beschrieben.
Damit über eine MIDI Leitung keine Brummschleife (siehe Kapitel 4.20) entstehen kann, ist jede MIDI-Verbindung galvanisch getrennt. Dies wird durch zwei Vorschriften realisiert:
* Nur bei MIDI-Ausgängen ist das Gerätegehäuse an Anschluss 2 des Steckers angeschlossen. An Eingängen bleibt dieser Anschluss frei. Somit wird die Abschirmung eines MIDI-Kabels immer nur von den Ausgängen betrieben.
* Ein Eingang wird stets über einen Optokoppler realisiert. Dieser hat eine galvanische Tren-
666
nung des Signals zur Folge, da die Dateninfa mation nur über Licht übertragen wird.
Die verwendeten Optokoppler müssen bei eine Strom von 5mA sicher durchschalten, da die WE Verbindung als 5mA Stromschleife konzipiert wo den ist. Sie müssen weiterhin eine Schaltgeschwii digkeit von 21.is aufweisen. Diese Zeit ist als Mir mum anzusehen. Kürzere Schaltzeiten begünstige das Durchschleifen von mehreren Geräten üb MIDI-Thru.
MIDI-Kabel sind geschirmte "twisted pair" Kabe Der Schirm ist an beiden Seiten mit Anschluss 2 cl Steckers verbunden. Somit ist keine Richtung di Kabels vorgeschrieben. Das Gerät muss die Tre nung des Masseanschlusses beim Empfänger a entsprechenden MIDI-In durchführen.
Die Kabel sollten nicht länger als 15 Meter sei MIDI-Verbindungen stellen pseudosymmetriscl Verbindungen dar (siehe Kapitel 5.10.4), da sie d

MIDI

ßend einen neuen MIDI-Out Datenstrom. Dabei müssen Befehle, die eine höhere Priorität haben, auch bevorzugt auf den Ausgang geschrieben werden.
Ein Problem des MIDI-Mergers ist, dass die Gesamt-datenmenge am Ausgang zu hoch werden kann. Wenn ein sehr hohes Datenaufkommen an allen Eingängen vorherrscht, dann wird der Ausgang, der auch nur die selbe Datenmenge transportieren kann wie jeder einzelne Eingang, schnell überlastet. Eine gewisse Menge an Daten kann der interne Speicher des MIDI-Mergers noch zwischen-speichern und in Zeiten mit geringerem Datenaufkommen auf den Ausgang schreiben. Allerdings nützt dies langfristig gesehen auch nicht viel, da die Verzögerung der Datenworte sonst zu hoch würde.
Um die zu verarbeitende Datenmenge zu verringern können bei einem MIDI-Merger Filter für die verschiedenen Eingänge eingestellt werden. Mit Hilfe dieser Filter wird dann bestimmt, welche Befehle von welchem Eingang verarbeitet werden und welche nicht.
MIDI-Merging kann heute von fast allen Computerprogrammen durchgeführt werden, die MIDI beherrschen. Wichtig ist lediglich das Vorhandensein mehrerer Eingänge.
9.1.2 Datenformat
Es gibt zwei verschiedenen Arten von MIDI-Bytes, aus denen ein MIDI-Befehl zusammengesetzt wird. Diese werden durch das MSB (Most Significant Bit) des MIDI-Bytes unterschieden.
9.1.2.1 Statusbytes
Bei einem Statusbyte oder auch Nachrichtenbyte ist das MSB des MIDI-Bytes immer Eins. Das bedeutet, dass alle MIDI-Bytes mit einem Wert zwischen 80h und FFh Statusbytes sein müssen. Eine genaue Aufschlüsselung, wie diese 128 möglichen Statusbytes genutzt werden, ist in den folgenden Kapiteln zu finden.
9.1.2.2 Datenbytes
Ein Datenbyte liegt dann vor, wenn das MSB eines MIDI-Bytes Null ist. Dies wiederum hat zur Folge, dass ein Datenbyte alle Werte zwischen 00h und
668
7Fh annehmen kann. Es gibt also 128 Möglichkeit oder 128 Zustände, die das Datenbyte übertrag kann. Dies ist auch der Grund, warum viele MII Parameter nur in 128 Stufen aufgelöst werden.
Werden mehr als 128 Zustände benötigt, so mu die Information in zwei aufeinander folgend Datenbytes übertragen werden. Auf diese Wei können dann bereits 16384 verschiedene Zustäni dargestellt werden.
9.1.3 Nachrichtentypen
Unter einer MIDI-Nachricht versteht man die Kon bination aus Status- und Datenbytes.
Hierbei gibt es vier verschiedene Möglichkeiter wie eine MIDI-Nachricht (MIDI-Message) aufgebat sein kann. Diese sind in Abbildung 9.1-4 zu sehet Es gibt Nachrichten, die lediglich ein Statusbyt senden, welche die ein oder zwei Datenbytes hinte dem Statusbyte erfordern und die System Exclusiv Messages, die beliebig viele Datenbytes enthalte können. Das Ende der Datenbytes wird im letztere Fall durch eine End of Exclusive Nachricht abge schlossen.
Man unterscheidet weiterhin zwei grundlegend ver schiedene Arten von Nachrichten (Messages), di bei MIDI Anwendung finden:
* Channel Messages: Bei diesen wird eia; konkreter Kanal angegeben, auf dem die Nachricht gesendet wird. Somit ist es möglich einzelne Geräte individuell anzusprechen. Za den Channel Messages gehören die Charme Voice Messages und die Channel Mode Messer ges. Beide sind in Kapitel 9.2 genauer beschrieben.
* System Messages: Diese Nachrichten werden ohne Kanalinformation gesendet und könnee somit alle angeschlossenen Geräte bee-flussen. Man unterscheidet hierbei die S.st= Common Messages, die System Realtimer Messages und die System Exclusive Message Auch diese werden in Kapitel 9.2 genaue beschrieben.
Eine Besonderheit bei den Channel-Voice-Messa ee und Channel-Mode-Messages ist der so genan:ra Running-Status. Er besagt, dass gleichbleibene Statusbytes nicht erneut gesendet werden müsset wenn der Empfänger auf Running-Status geschahno....

Details
9.2 Details
In diesem Kapitel werden die einzelnen MIDI-Nach-richten oder MIDI-Befehle detailliert betrachtet. Es wird eine Auflistung über die verschiedenen Möglichkeiten der jeweiligen Nachrichtentypen geneben.
9.2.1 Channel Voice Messages
Mit Hilfe von Channel Voice Messages werden die meisten Informationen, die notwendig sind, über-ragen. Alle Channel Voice Messages beziehen sich auf einen bestimmten Kanal, auf dem sie gesendet werden und beeinflussen das Verhalten einer bestimmten Stimme eines Instrumentes oder eines bestimmten Parameters eines Empfängers.
1:e Kanalnummer wird in allen folgenden Status-ytes mit x angegeben. Die Tabelle 9.2-1 zeigt die Zuweisung von MIDI-Kanälen zu der Kanalnummer
9.2.1.1 Note-On
-bau: Statusbyte: 9xh
Datenbyte: Note Number Datenbyte: Velocity
Note Number gibt die Note in Halbtonschritten Dabei ist der Wert 60 (3Ch) dem mittleren C eordnet.
Kanalnummer
x
1
Oh
2
1h
3
2h
4
3h
5
4h
6
5h
7
6h
8
7h
9
8h
10
9h
11
Ah
12
Bh
13
Ch
14
Dh
15
Eh
16
Fh
Tab. 9.2-1: Zuweisung von MIDI-Kanälen
Die Velocity gibt die Lautstärke der zu spielenden Note an. Hierbei ist der Wert 64 (40h) einer mittleren Lautstärke zugewiesen (mezzoforte). Dieser Wert wird auch ausgegeben, wenn der MIDI-Sender keine Anschlagsdynamik hat.
Ein Note-On Befehl mit einer Velocity von 0 ist vom Empfänger als Note-Off Befehl zu interpretieren. Hierbei wird für den Note-Off Befehl die Velocity 64 (40h) angenommen.
Der Note-On Befehl ist der wohl wichtigste MIDI-Be-fehl, da er nicht nur zur Ansteuerung von Tönen eines Instrumentes verwendet wird, sondern auch für Faderautomationen (dort ist die Note Number der Mischpultkanal, und die Velocity entspricht der Faderstellung) oder auch für Lichtanlagen (Dort ist die Note Number der Scheinwerfer, und die Velocity dessen Helligkeit).
9.2.1.2 Note-Off
Aufbau: Statusbyte: 8xh
Datenbyte: Note Number Datenbyte: Release Velocity
Wie auch beim Note-On Befehl wird hier die Notennummer der abzuschaltenden Note angegeben, sowie eine Velocity. Die Velocity gibt bei anschlagdynamischen Instrumenten an, wie schnell die Note ausgeschaltet bzw. abgedämpft werden soll. Verfügt das Instrument über keine Anschlagsdynamik beim Abschalten einer Note, wird der Standardwert 64 (40h) ausgegeben.
9.2.1.3 Control Change
Aufbau: Statusbyte: Bxh
Datenbyte: Controller Number (0-119) Datenbyte: Controller Wert (0-127)
Die Controller Number 120d bis 127d (78h bis 7Fh) werden für die Channel Mode Messages verwendet und sind keine Control Change Parameter.
Mit Hilfe der Controller können beispielsweise Klänge eines Instrumentes verändert werden (Vibrato, Modulation, etc.) oder andere Parameter (Hallzeit, Faderposition, Pan, etc.).
Für viele Controller können ihre Auswirkungen frei zugewiesen werden. Die Tabelle 9.2-2 soll einen Anhaltspunkt geben, wofür sie gedacht sind.

671



Details
Je-s sind jeweils 16384 neue Controller möglich. %.a_.-aus ergeben sich insgesamt 32768 zusätzlich Itutzbare Controller, welche auch für aufwändi-e Setups ausreichen sollten.
;2_1A Program Change
4.1..fbau: Statusbyte: Cxh
Datenbyte: Program Number
  ieram Change Befehle werden verwendet, um - - anderen Klang bei einem Klangerzeuger anzu-
* Insgesamt sind 128 verschiedenen Anwahl-
Treglichkeiten gegeben, die meist beim Empfänger Befehls bestimmten Klängen zugewiesen wer-ale: können.
128 verschiedenen anwählbaren Klänge oft nicht mehr ausreichen, können zusätzlich Hilfe des Bank-Select-Controllers ( Bxh, OOh, - 128 verschiedenen Sound-Bänke umgeschaltet
am Change Befehle können auch verwendet
, um bei Drum-Sequencern ein neues Muster
einen neuen Rhythmus einzustellen. Weiter. essen sich damit Presets bei Effektgeräten auf-
1.5 Aftertouch
bt zwei Arten von Aftertouch, die unterschie-werden:
annel Pressure:
tz..±bau: Statusbyte: Dxh
Datenbyte: Aftertouch Wert
phonic Key Pressure:
au: Statusbyte: Axh
Datenbyte: Note Number Datenbyte: Aftertouch Wert
*
Veränderung des Luftdrucks bei Breath Controllern
Bei dem Channel Pressure Aftertouch wird durch den Aftertouch der gesamte Kanal beeinflusst. Bei dem Polyphonic Key Pressure Aftertouch kann jede Note einzeln beeinflusst werden.
Aftertouch wird beispielsweise verwendet, um einen Klang nachträglich in der Lautstärke oder im Panorama zu verändern oder ihm ein Vibrato etc. zu geben.
9.2.1.6 Pitch Bend Change
Aufbau: Statusbyte: Exh
Datenbyte: Pitch Value LSB
Datenbyte: Pitch Value MSB
Mit Hilfe des Pitch Bend Change Befehls kann die Tonhöhe eines Kanals verändert werden. Da das menschliche Gehör relativ gut geringste Tonhöhen-schwankungen wahrnehmen kann, ist der Wert, um den die Tonhöhe verändert werden kann, als 14-Bit Wert ausgeführt. Das heißt, nach dem Pitch Bend Befehl folgen zwei Datenbytes.
Soll die Tonhöhe nicht verändert werden, so müssen als Datenbytes die Werte 0, 64 (OOh, 40h) gesendet werden. Die größte Tonhöhenverringe-rung erreicht man mit den Werten 0, 0 (OOh, OOh). Die stärkste Tonhöhenanhebung mit den Werten 127, 127 (7Fh, 7Fh). Wie stark der Pitch Bend Befehl sich auf die Tonhöhe des Klangs auswirken soll, muss im Klangerzeuger eingestellt werden.
9.2.2 Channel Mode Messages
Die Channel Mode Messages sind Sonderformen der Control Change Befehle. Aus diesem Grund sieht auch der Aufbau einer Channel Mode Message genauso aus, wie der eines Control Change Befehls:

Aufbau: Statusbyte: Bxh
-ouch wird verwendet, um einen Klang nach
Datenbyte: Controller Number (120-127)
Spielen noch verändern zu können. Dies ge-
Datenbyte: Controller Wert (0-127)
-
durch unterschiedliche Aktionen, je nach-

- elches Eingabemedium verwendet wird:
Die Channel Mode Messages 124-127 führen immer
einen zusätzlichen All Note Off Befehl (siehe

Vor- oder Zurückbewegen einer Taste
Kapitel 9.2.2.4) aus.

Links- / Rechtsbewegung einer Taste

Stärkeres Drücken einer Taste über den Anschlag hinaus
673

MIDI
Abb. 9.2-1: Der typische Aufbau mit Keyboard+Synthesizer und Sequenzer erfordert "Local 0ff'
9.2.2.1 All Sound 0ff
Aufbau: Statusbyte: Bxh Datenbyte: 120 (78h) Datenbyte: 0
Mit diesem Befehl soll jeglicher Klangerzeuger auf dem Kanal abgeschaltet werden. Der Unterschied zu einem All Notes 0ff Befehl ist, dass auch bei MIDI gesteuerten Effektgeräten die Signalpuffer gelöscht werden und somit eventuell hängen gebliebene Delayfahnen abgeschaltet werden.
Dieser Befehl bewirkt ein Abschalten der Klangerzeuger nur auf dem angegebenen Kanal und wird bei Omni-On ignoriert.
9.2.2.2 Reset All Controllers
Aufbau: Statusbyte: Bxh Datenbyte: 121 (79h) Datenbyte: 0
Mit dem Reset All Controllers Befehl können alle Controller (siehe Kapitel 9.2.1.3) in ihren Ursprungszustand versetzt werden.
Dieser Befehl bewirkt nur einen Controller Reset auf dem angegebenen Kanal und wird bei Omni-On ignoriert.
9.2.2.3 Local Control
Aufbau: Statusbyte: Bxh Datenbyte: 122 (7Ah) Datenbyte: 0 oder 127
Mit Hilfe des Local Control Befehls kann der Klangerzeuger eines Instrumentes von der Eingabeeinheit getrennt werden. Es kann also bei einem Keyboard mit eingebautem Synthesizer die Klavia-
674
tur von dem Synthesizerbaustein getrennt wei-1., Es gibt zwei Zustände:
* Local Control Off: (auch kurz: Local 0ff) Das zweite Datenbyte wird als 0 (00h) überzi gen. Bei Local 0ff ist der Klangerzeuger - der Eingabeeinheit getrennt. Die Eingabe- - heit sendet nach wie vor MIDI Befehle _ -den MIDI-Out, der Klangerzeuger reagiert - wie vor auf MIDI-Befehle, die am Ni:1 ankommen.
Local 0ff wird angewandt, wenn beis7 weise bei einem Keyboard mit integre- - Klangerzeuger das Keyboard als Eingabe; und der Klangerzeuger als Ausgabegera - einen Sequenzer genutzt wird. Damit die .
                                    -ge des Keyboards nicht doppelt erzeuz. - den, wenn der Klangerzeuger des /RE'. mit dem Ausgang des Sequenzers ist, stellt man das Keyboard auf Lace._ _ (siehe Abbildung 9.2-1).
* Local Control On: (auch kurz: Local On) Das zweite Datenbyte wird als 127 (7Fh Lbe tragen. Bei Local On ist der Klangerzeuge ad der Eingabeeinheit verbunden. Beim Einsci-ten eines Gerätes steht dies auf Local On.
Local On/Off kann auch an den empfangemaat Geräten mit Hilfe von Tasten oder Menüs eingesurft werden. Es muss also nicht zwingend ein MEDiae fehl dafür verwandt werden.
9.2.2.4 All Notes 0ff
Aufbau: Statusbyte: Bxh Datenbyte: 123 (7Bh)
Datenbyte: 0
Der All Notes 0ff Befehl hat die Aufgabe. all Klänge, die über MIDI eingeschaltet worden seil wieder abzuschalten. Das heißt, dass bei erlas

MIDI

Die Platzhalter "nnn" im Datenbyte geben an, welche der Acht Teilinformationen gerade übermittelt wird. Die Platzhalter "dddd" geben die Daten an, die mit der jeweiligen Information übermittelt werden. Die Tabelle 9.2-4 zeigt den Aufbau dieser acht Dateninformationen und, wie sie zu einer kompletten Zeitinformation zusammen gesetzt werden.
Soll beispielsweise die Zeitinformation
21h:12m:47s:19f / 25fps
auf einer Basis von 25 Frames pro Sekunde codiert werden, so ergibt sich folgende Befehlsfolge:
Flh, 03h, Flh, 11h, Flh, 2Fh, Flh, 32h Flh, 4Ch, Flh, 50h, Flh, 65h, Fih, 73h
Der Timecode startet immer mit einer Fih, Oxh Nachricht zu Beginn eines Frames. Da er nur alle zwei Frames aktualisiert wird, werden bei 24 und 30fps nur geradzahlige Framenummern gesendet, bei 25fps dagegen sind es geradzahlige und un-geradzahlige, die jede Sekunde wechseln.
Der MIDI Timecode Quarter Frame wird nur ausgegeben, wenn ein Sequenzer oder ein anderes zeitbezogenes System läuft. Im Stop-Zustand wird er nicht erzeugt. Er benötigt knapp 8% der Bandbreite einer MIDI-Leitung.
Es gibt auch einen Full-Message-Timecode, der in einem Datenblock die gesamte Zeitinformation als System-Exclusiv-Realtime-Message überträgt. Näheres dazu ist in Kapitel 12.3 zu finden.
9.2.3.2 Song Position Pointer
Aufbau: Statusbyte: F2h
Datenbyte: LSB des Pointers
Datenbyte: MSB des Pointers
Der Song Position Pointer (SPP) gibt die Anzahl der MIDI-Takte an, die seit dem Drücken der Start Taste abgespielt worden sind. Ein MIDI-Takt entspricht 6 MIDI-Clocks (siehe Kapitel 9.2.4.1). Da die MIDI-Clock 24 mal pro Viertelnote gesendet wird, entspricht ein MIDI-Takt einer *-tel Note.
Der Song Position Pointer gibt also an, wie viele sechzehntel Noten seit dem Drücken der Start Taste abgespielt worden sind. Steht er beispielsweise auf
676
dem Wert 84, so entspricht dies 84 sechzehnt Noten. Bei einem Vier-Viertel Takt wäre dies Takt 5, Schlag 2, auf dem dann der SPP stehe würde.
Der Song Position Pointer wird benutzt, ui mehrere Geräte synchron miteinander laufen 2 lassen. Hierbei dient der SPP nur als grobe Posit onsangabe, während die MIDI-Clock die Verkopp lung der Geräte 6 mal genauer angibt (siehe Kapiti 9.2.4.1).
9.2.3.3 Song Select
Aufbau: Statusbyte: Fih
Datenbyte: Songnummer
Mit Hilfe dieses Befehls kann einer von 128 ve schiedenen Songs eines Sequenzers oder Drumpa tems eines Drumcomputers angewählt werden.
9.2.3.4 Tune Request Aufbau: Statusbyte: F6h
Dieser Befehl fordert einen analogen SynthesizE dazu auf, seine Oszillatoren zu stimmen. Da funktioniert natürlich nur, wenn der SynthesizE hardwaremäßig diese Funktion auch unterstütz was nur sehr selten der Fall ist.
9.2.3.5 EOX (End of Exclusive) Aufbau: Statusbyte: F7h
Diese Nachricht beendet eine System Exclush Übertragung. Nach dem Start mit der Nachricht FO (siehe Kapitel 9.2.5) können beliebig viele Dater bytes folgen. Nur System Realtime Messages (sieh folgendes Kapitel) sind innerhalb einer Systel Exclusive Message erlaubt. Das Ende der Überm gung wird durch die Nachricht EOX angezeigt.
9.2.4 System Realtime Messages
System Realtime Messages haben die Aufgabe, ein Information in Echtzeit zu übertragen. Sie könne daher an jeder beliebigen Stelle in den MIDI Dates strom eingefügt werden - beispielsweise auc zwischen zwei Datenbytes eines Note On Befehl Alle System Realtime Messages bestehen nur au einem Statusbyte. Sie haben Priorität bei der Übe tragung.
Details
- MIDI-Clock
_ Statusbyte: F8h
7.1ock wird 24 mal pro Viertelnote ge-
* stellt somit einen Takt der Übertragung ,nn auch während des Stillstands eines
gesendet werden, um die Empfänger den kommenden Takt vorzubereiten. Die
  wird unter anderem für den Song - Jinter benötigt.
11L2-4.2 Start
Statusbyte: FAh
kahl wird gesendet, wenn der Play Knopf 1-Gerätes gedrückt wird. Zusammen mit
'•  I",efehl wird der Song Position Pointer auf
ill gesetzt.
*113 Continue
Statusbyte: FBh
Befehl wird gesendet, wenn der Continue
    MIDI-Gerätes gedrückt wird. Der Song :inter wird nicht verändert. Die Wieder-ab dem Empfang der nächsten MIDI--ac.d.
92.&.4 Stop
_ Statusbyte: FCh
* -2111 wird gesendet, wenn der Stop Knopf -_,I-Gerätes gedrückt wird. Der Song
* ainter wird nicht verändert, es kann :h dem Stop-Befehl ein neuer SPP gesen-
> wenn eine neue Stelle angefahren Nach dem Senden des Stop-Befehls
* Triggi... noch alle eingeschalteten Noten ausge-iirudJe: werden und veränderte Controller zurückliege= werden.
31_2_4_5 Active Sensing Statusbyte: FEh
>este Befehl ist nicht bei allen MIDI Geräten imple-Wenn ein Sender Active Sensing so sollte er diesen Befehl alle 270ms ;edoch alle 300ms senden.
Ein Empfänger, der ebenfalls Active Sensing beherrscht, wird, wenn er das erste Mal diesen Befehl empfangen hat, alle 300ms auf einen neuen Active Sensing Befehl warten. Trifft nach spätestens 330ms kein weiterer Active Sensing Befehl ein, so geht der Empfänger davon aus, das die MIDI-Leitung unterbrochen worden ist (Kabel abgesteckt / defekt), und führt einen Reset seiner Klangerzeuger aus. Anschließend wartet er auf weitere Befehle.
9.2.4.6 System Reset Aufbau: Statusbyte: FFh
Dieser Befehl führt einen Reset auf den Einschaltzustand hin aus. Folgende Einstellungen werden vorgenommen:
* Omni On
* Poly On
* Local On
* All Notes Off
* Reset All Controllers
* Song Position Pointer auf Null setzen
* Stop (Wiedergabe anhalten)
* Running Status löschen
* Hardware resetten
9.2.5 System Exclusive Messages
Aufbau: Statusbyte: FOh Datenbyte(s): Device ID
Datenbytes
Statusbyte: F7h (EOX)
System Exclusive Messages (SysEx) haben die Aufgabe, MIDI Geräten eine speziell definierte Art der Kommunikation zu gestatten. Mit Hilfe dieser Nachricht können Speicherinhalte ausgetauscht oder Updates geladen werden. Es sind im Prinzip beliebige Arten der Kommunikation denkbar, da nur der Kommunikationsrahmen festgelegt ist:
Eine System Exclusive Message wird mit dem Statusbyte FOh eingeleitet. Als nächstes folgt ein Datenbyte mit einer Device ID. Diese gibt an, welches Gerät sich angesprochen fühlen soll.
Besteht die Device ID aus einem Wert zwischen Olh und 7Ch, so wird damit direkt ein bestimmter
677


MIDI

9.3 Der General-MIDI Standard
Wenn Note-On Befehle über eine MIDI-Leitung gesendet werden, so ist noch lange nicht klar, was diese Befehle beim Empfänger für einen Klang hervorrufen. Lediglich eine bestimmte Tonhöhe eines Klangs wird angegeben, nicht jedoch die Art des Klangs. Auf diese Weise ist es nahezu unmöglich eine MIDI-Datei zu kreieren, die einen vorhersagbaren "Sound" hat.
Um dieses Problem zu lösen, wurde der General-MIDI Standard eingeführt, der angibt, welche Klänge welchen Program Numbers zugewiesen sind, und was die verschiedenen Controller bewirken. Auf diese Weise können zum Beispiel vorhersagbare Klänge auf Computern und Handys erzeugt werden.
In diesem Kapitel soll die Definition eines General MIDI Systems kurz beschrieben werden.
9.3.1 Anforderungen
Die Anforderungen an ein General-MIDI Gerät sind folgende:
* Mindestens 24 frei zuweisbare Stimmen für Klänge und Schlagzeug oder
16 frei zuweisbare Stimmen für Klänge und 8 Stimmen für Schlagzeug
* 16 MIDI Kanäle
* Polyphonie auf allen Kanälen
* Verschiedene Instrumente auf verschiedenen Kanälen möglich
* Schlagzeug (siehe Kapitel 9.3.4) ist immer auf Kanal 10
* 128 verschiedene Klangvoreinstellungen (siehe Kapitel 9.3.3)
* 47 verschiedene Schlagzeugeinstellungen (siehe Kapitel 9.3.4)
* Master Volume Control
* MIDI-In Anschluss (Eventuell auch Out und Thru)
* Stereo Audio Ausgang
Dies sind Mindestanforderungen, die selbstverständlich übertroffen werden dürfen.
9.3.2 MIDI Implementierung
Die folgenden Befehle müssen implementiert sein:
9.3.2.1 Note-On / Note-Off
* Das mittlere C liegt bei dem Notenwert t (3Ch).
* Alle Stimmen sind anschlagdynamisch.
* Gleiche Noten können mit noch ungenutz---Stimmen mehrfach aufgerufen werden.
9.3.2.2 Controller Changes
Die folgenden Controller sind implementiert:

1
(Olh)
Modulation

7
(07h)
Volume

10
(0Ah)
Panorama

11
(0Bh)
Expression

64
(40h)
Sustain

121
(79h)
Reset all Controllers

123
(7Bh)
All Notes Off
Die folgenden Registered Parameter sind in-.:)e-mentiert:
* 0 (00h) Pitch Bend Sensitivity
* 1 (Olh) Fine Tuning
* 2 (02h) Coarse Tunig
9.3.2.3 Channel Messages
Zwei Channel Messages können verwendet W7::
* Channel Pressure (Aftertouch)
* Pitch Bend (Standard ±2 Halbtöne)
9.3.2.4 Grundeinstellungen
Es gelten folgende Grundeinstellungen:
* Bend steht auf 0 (00h)
* Volume steht auf 100 (64h)
* Die Controller stehen auf "normal"
9.3.2.5 System Nachrichten
Es können zwei System Exclusive Non- 713P
Messages gesendet werden:
Der General-MIDI Standard
* 3eneral MIDI System einschalten: 7Eh, 7Fh, 09h, 01h, F7h
* :sieneral MIDI System ausschalten: =')h, 7Eh, 7Fh, 09h, 02h, F7h
Es gibt keine Vorgabe, in welcher Art und Weise die unten beschriebenen Klänge erzeugt werden müssen. Dies ist vollständig dem Hersteller des General-MIDI Gerätes überlassen. Die Namen der Instrumente dienen hierbei als Anhaltspunkte für den resultierenden Klang.
ie gen gezeigten Befehlsfolgen wurde für die lence ID der Wert 7Fh eingesetzt, sodass alle inerGke angesprochen werden.
z 33 General-MIDI Program Numbers
-_elle 9.3-1 gibt die Programmnummern an, - :,,nen bestimme Klänge aufgerufen werden Diese gelten für alle Kanäle außer dem garmi :0. Letzterer ist für Schlagzeugklänge reser-.-- ,,:ehe Kapitel 9.3.4).
9.3.4 General-MIDI Percussion Map
Die Tabelle 9.3-2 gibt die Notennummern an, mit denen bestimme Schlagzeugklänge auf dem Kanal 10 aufgerufen werden können. Diese Klänge sind nur auf dem Kanal 10 verfügbar und nicht auf andere Kanäle übertragbar. Weiterhin können keine Klänge aus Tabelle 9.3-1 auf Kanal 10 wiedergegeben werden.


Klang
Nr.
Klang
Ne.
Klang
Nr.
Klang
kzustic Grand Piano
33
Acoustic Bass
65
Soprano Sax
97
FX 1 (rein)
3 ght Acoustic Piano
34
Electric Bass (finger)
66
Alto Sax
98
FX 2 (soun dtrack)
:.ectric Grand Piano
35
Electric Bass (pick)
67
Tenor Sax
99
FX 3 (crystal)
-:^kytonk Piano
36
Fretless Bass
68
Baritone Sax
100
FX 4 (atmosphere)
E ectric Piano 1
37
Step Bass 1
69
Oboe
101
FX 5 (brightness)
ectric Piano 2
38
Step Bass 2
70
English Horn
102
FX 6 (goblins)
-apsicord
39
Synth Bass 1
71
Bassoon
103
FX 7 (echoes)
: avi
40
Synth Bass 2
72
Clarinet
104
FX 8 (sci-fi)
:e:esta
41
Violin
73
Piccolo
105
Bitar
: zckenspiel
42
Viola
74
Flute
106
Banjo
v_sic Box
43
Cello
75
Recorder
107
Shamisen
.:r.,:aphone
44
Contrabass
76
Pan Flute
108
Koto
Marimba
45
Tremolo Strings
77
Blown Bottle
109
Kalimba

xytophone
46
Pizzicato Strings
78
Shakuhachi
110
Bag Pipe
-_cutar Belts
47
Orchestral Harp
79
Whistle
111
Fiddle
:_zimer
48
Timpani
80
Ocarina
112
Shanai
:-awbar Organ
49
String Ensemble 1
81
Lead 1 (square)
113
Tinkle Bell
::e-zussive Organ
50
String Ensemble 2
82
Lead 2 (sawtooth)
114
Agogo
,-::k Organ
51
Synth Strings 1
83
Lead 3 (calliope)
115
Steet Drums
:-...rch Organ
52
Synth Strings 2
84
Lead 4 (chiff)
116
Woodblock
,•eed Organ
53
ChoisAahs
85
Lead 5 (charang)
317
Taiko Drum
:::3rdion
54
Voice Oohs
86
Lead 6 (voice)
118
Melodic Tom
-e-monica
55
Synth Voice
87
Lead 7 (fifths)
119
Synth Drum
-a-go Accordion
56
Orchestra Hit
88
Lead 8 (bass.lead)
120
Reverse Cymbal
kzustic Guitar (nylon)
57
Trumpet
89
Pad 1 (new age)
121
Guitar Frei Noise
k:ustic Guitar (steel)
58
Trom bone
90
Pad 2 (new age)
122
Breath Noise
1 ectric Guitar (Jazz)
59
Tuba
91
Pad 3 (warm)
123
Saeshore
1 e clic Guitar (clean)
60
Muted Trumpet
92
Pad 4 (polysynth)
124
Bird Tweet
E. eztric Guitar (muted)
61
French Horn
93
Pad 5 (choir)
125
Telephone Ring
:'...erdriven Guitar
62
Brass Sectlon
94
Pad 6 (metallic)
126
Helicopter
:., stortion Guitar
63
Synth Brass 1
95
Pad 7 (halo)
127
Apptause
:_•car harmonics
64
Synth Brass 2
96
Pad 8 (sweep)
128
Gunshot
Tab. 9.3-1: General-MIDI Program Numbers
MIDI
Notennummer
Klang
Notennummer
Klang
Notennummer
Klang
35
Acoustic Bass Drum
51
Ride Cymbal 1
67
High Agogo
36
Bass Drum 1
52
Chinese Cymbal
68
Low Agogo
37
Side Stick
53
Ride Bell
69
Cabasa
38
Acoustic Snare
54
Tambourine
70
Maracas
39
Hand Clap
55
Splash Cymbal
71
Short Whistle
40
Electric Snare
56
Cowbell
72
Long Whistle
41
Low Floor Tom
57
Crash Cymbal 2
73
Short Guiro
42
Closed Hi-Hat
58
Vibraslap
74
Long Guiro
43
High Floor Tom
59
Ride Cymbal 2
75
Claves
44
Pedal Hi-Hat
60
High Bongo
76
High Wood Block
45
Low Tom
61
Low Bongo
77
Low Wood Block
46
Open Hi-Hat
62
Mute High Conga
78
Mute Cuica
47
Low-Mid Toni
63
Open High Conga
79
Open Cuica
48
High-Mid Tom
64
Low Conga
80
Mute Triangle
49
Crash Cymbal 1
65
High Timbale
81
Open Triangle
50
High Tom
66
Low Timbale

Tab. 9.3-2: General-MIDI Percussion Map
682
MIDI Anwendungen

meist ein Keyboard oder ein anderes MIDI-Eingabe-gerät. Neben Note-On/Off Befehlen können auch Controller und andere Parameter gespeichert werden.
Ein Sequenzer arbeitet auf mehreren Spuren, die meist den verschiedenen MIDI-Kanälen zugewiesen sind. Er ermöglicht auf den einzelnen Spuren eine grafische Darstellung der MIDI-Ereignisse und kann diese in den unterschiedlichsten Formaten darstellen. So können beispielsweise Note-On und Note-Off Befehle wie auf Notenpapier dargestellt werden. Der Sequenzer bestimmt die Position und die Länge der Note und platziert sie anschließend in die Notenzeilen. Weiterhin ist er in der Lage, die Noten auf vorgegebene Längen zu quantisieren, damit das Stück rhythmisch klingt, auch wenn man nicht so perfekt Keyboard spielen kann.
Controller werden grafisch dargestellt. Somit sind Lautstärkeverläufe und andere Controllerverläufe einfach zu betrachten und zu editieren.
Neben der Eingabe der MIDI-Ereignisse über ein externes Gerät können die MIDI-Befehle auch direkt am Computer editiert werden. Auf diese Weise kann man Noten genau an die richtige Position bringen oder die Länge bzw. den Notenwert korrigieren. Weiterhin können auch grafisch Lautstärkeverän-derungen, Panoramaeinstellungen und andere Controllerwerte editiert werden. Die Abbildung 9.4-1 zeigt einen typischen Editor eines MIDI-Sequenzers.

111110r Cell klebe- ;
Zeit 001.02:342 1-inge: 000 o


Abb. 9.4-1: MIDI Sequenzer

MIDI

In modernen Studioproduktionen werden echte Audiospuren und MIDI-Spuren gemischt verwendet, wobei die Klänge der MIDI-Spuren sehr einfach austauschbar werden, dadurch, dass nur Note- On und Note-Off Befehle gespeichert sind. Der Klang selbst hängt vom angeschlossenen Klangerzeuger oder Synthesizer ab. Viele Sequenzerprogramme sind daher in der Lage, sowohl Audiospuren als auch MIDI-Spuren gemischt zu verwalten, so dass komplette Arrangements mit einem Programm erstellt werden können.
Um bestimmte Parameter, wie beispielsweise Lautstärke oder Vibrato, realistischer editieren zu können, gibt es so genannte MIDI Hardware Controller (siehe nächstes Kapitel). Mit ihnen sind alle Varianten der Parametereingabe über Drehknöpfe, Fader, druckempfindliche Flächen oder Breath Controller gegeben, so, wie es auch bei echten Musikinstrumenten der Fall ist. So kann zum Beispiel das Anschwellen eines Klarinettentons von einem Klarinettisten sehr realistisch mit einem Midi Breath Controller editiert werden. Später wäre es dann jedoch kein Problem für den Toningenieur, diesen Klarinettenklang durch ein beliebiges anderes Instrument zu ersetzen.
Wie man sieht, bieten die Sequenzer vielfältige Möglichkeiten der Klangeingabe und Klangbearbeitung, ohne dass ein bestimmter Klang dabei vorgeschrieben ist.
9.4.2 MIDI Mischpulte
Mehr und mehr Aufgaben kann der Computer im Tonstudio übernehmen. Die Zeiten der großen Mischpulte sind vorbei, außer man hat noch eines von früher und kann sich die Stromkosten, den Service und den Stellplatz leisten. Mit immer größer werdender Rechenleistung ist es nur eine Frage der Zeit, bis wirklich alle Aufgaben im Tonstudio von einem Computer übernommen werden können.
Nun ist ein Computer zwar ziemlich universell konzipiert worden, die Ein- und Ausgabeschnittstellen sind jedoch eigentlich für Textverarbeitung und Bürotätigkeiten ausgelegt. Es fehlen die Bedienelemente, mit denen man schnell und gefühlvoll eine Lautstärke oder einen Klang regeln kann. Sollen alle Parameter, die ein Mischpult an seiner Bedienoberfläche zur Verfügung stellt, mit einer Maus eingestellt werden, so ist es eine Frage der Zeit, bis der Toningenieur die Geduld verliert
684
und sich in die Zeit der "greifbaren" Knöpfe zurückwünscht.
Ganz unmöglich wird es, wenn zwei Parameter gleichzeitig mit Hilfe der Maus am Bildschirm verändert werden sollen. Mit nur einem Mauszeiger kann das nicht funktionieren und man muss in der Praxis zuerst den einen Parameter automatisieren bevor man später die Änderung des zweiten darüberschreibt. Unter diesen Umständen leidet die Kreativität und die Experimentierfreudigkeit eines Toningenieurs ganz gewaltig. Die Arbeit wird sich auf die Standardtätigkeiten reduzieren, da alles andere zu aufwändig ist.
Hardware Controller sollen diesem Problem beikommen. Sie haben Fader, Drehknöpfe, Taster und alle möglichen anderen Eingabeelemente, mit deren Hilfe das Arbeiten wie an einem echten Mischpult möglich ist. Der große Unterschied zu einem Mischpult besteht darin, dass ein solche Controller nur Steuerinformationen senden und empfangen kann. Kein Audiosignal - weder -2:.• analoger noch in digitaler Form - geht durch dieser Controller hindurch.
Hardware Controller sind also spezielle Eingabegeräte, die ein möglichst gutes Mensch- Maschine-Interface für Audioanwendungen bereitstellen.
Oft werden solche Steuergeräte über MIDI-Leitungen mit dem Computer verbunrieh. Durch Note On oder Controller Befehle werden die Daten zwischen dem Gerät und dem Computer harr-und hergeschickt. Dabei ist es dem Hers eZie. überlassen, welche Befehle er für welche Paramener verwendet. Ist MIDI zu langsam für sehr kompiew Controlleranwendungen, wo ein Ixdros Datenaufkommen anfallen kann, so weicht man auf schnellere Schnittstellen aus. Diese können IS& IEEE1394 (Firewire) oder auch IEEE802.3 (EthennieH sein.
Soll nun eine bestimmte Software mit Hilfe meg Hardware Controllers gesteuert werden, so mos zunächst die Software eine Unterstützung ffir dem Funktionalität bieten. Dies bedeutet, dass man mir Hilfe von MIDI-Befehlen Einfluss auf Paramerst Software nehmen kann und, dass die eigemme» Werte bestimmter Softwareparameter als Mla-lb-ten gesendet werden. Nur wenn beides in die Software implementiert wurde, ist ein arbeimme leichternder Einsatz eines Controllers möglich..
MIDI Anwendungen
Abb. 9.4-2: Universeller MIDI Hardware Controller
e- :=-L-tware Controller wiederum muss die richti-Im WI= :-Befehle senden können, die das Compu-emrDcarnm erwartet. Weiterhin müssen auch ABECE--Dra-.en, die von der Computersoftware gesen-mwe werden, richtig umgesetzt bzw. angezeigt
. Es gibt viele Controller, die nur mit einer lesen=:en Art von Software zusammenarbeiten -
   ecxh meist sehr gut. So genannte Universal-:x=1:er können mit allen möglichen Program-teer --.**amen verwendet werden, jedoch ist meist -mar der volle Funktionsumfang implementiert
e terr. Es ist zu hoffen, dass es irgendwann einen .:Artirdi:er Standard geben wird, an den sich alle
  und Controllerhersteller halten. Damit
« ire •.::hergestellt, dass der volle Nutzen eines stIrne,,.. Controllers dem Benutzer zugute kommt.
    1-".9zildung 9.4-2 zeigt einen universellen MIDI idler--3raze Controller, der mit unterschiedlichen itähriceprogrammen genutzt werden kann.
tiker der Möglichkeit, mit einem Controller Misch-azult.----ktionen zu steuern, existieren auch ealez2.1controller, die ein möglichst naturgetreues Itanz:zaziieren von Klängen für einen MIDI-Sequen-ze• e=0.- glichen. Über diese Controller konnte man lorei=r in Kapitel 9.4.1 etwas erfahren.
9.4.3 MIDI Pad-Controller
Mit Hilfe von MIDI Pad-Controllem (siehe Abbildung 9.4-3) können Tastendrücke in MIDI-Be-fehle umgesetzt werden und somit verschiedenen Dinge angesteuert werden. Vom einfachen Aufrufen von Samples und Clips, bis hin zum Umschalten von Klängen und Szenen, können alle möglichen Ereignisse gesteuert werden. Auch Laufwerkstasten sowie eine rudimentäre Eingabe von Lautstärke bzw. Panorama ist meist möglich.
Die Tasten (Pads) sind in der Regel anschlagdynamisch konstruiert, so dass neben einem Note-On-Befehl auch eine Velocity in Abhängigkeit der Anschlagsstärke übermittelt werden kann. Auch Aftertouch ist bei vielen Controllern möglich.
          * • 11111 * ehe III e
Mei" 411111111101,'--
ir VI lt 'ab:.
f;-
1111IN BIM • cz
411111113411111111111111111111•-
1111111111111111 1111111111111111et%
II sr>
Abb. 9.4-3: Pad-Controller (C) Novation)
685


MIDI
Für eine bessere Kontrolle über den Pad-Controller sind die Pads mehrfarbig beleuchtbar. So kann der Anwender schnell sehen, was eine Taste gerade bewirkt und welche Tasten aktiv belegt sind.
Im Endeffekt kann ein Pad-Controller genau das, was die angeschlossene Software ihm ermöglicht. Diese wertet die Tasteneingaben aus und steuert die Beleuchtung an. Welche Möglichkeiten sich daraus ergeben, ist den Softwareentwicklern überlassen.
9.4.4 MIDI Plattenspieler
Auch in den DJ-Bereich ist MIDI eingezogen und so verfügen ein paar wenige Plattenspieler mittlerweile über MIDI-Ein- und/oder -Ausgänge.
Die Ausgänge sind normalerweise dazu gedach-_ Tasten auf dem Plattenspieler - ähnlich der Paf Controller - MIDI-Befehlen zuzuweisen und da  eine Software anzusteuern. So kann der U_ während er am Plattenspieler arbeitet gleichze:pg Ereignisse in einer Software steuern.
Die Eingänge dienen dazu die Geschwindigkeit des Plattenspielers über externe MIDI-Befehle zx. steuern. Auf diese Art und weise kann mit eL-Aer. externen Keyboard der Plattenspieler dazu gebracht werden in der richtigen Tonhöhe zu speieet.. Der Plattenspieler wird auf diese Art zum extener MIDI-Klangerzeuger. Je nachdem, welche Plane aufgelegt wird, können die erzeugten Klänge irar Flächensounds bis zu ganzen Musiktiteln reidez. Der Vorteil zu einem Sampler besteht darin. 'Ilea der DJ weiterhin in die Platte eingreifen, und samt weitere Kontrolle über den Klang nehmen kann_


686

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.