![]() |
Software Merkmale | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Inhaltsverzeichnis | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Datenformat | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Noten- und Klang-Zuordnung | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Zahlensysteme | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Berechnungstabelle | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MIDI Kanäle | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Entwicklung | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MIDI in der Praxis | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MIDI Sequenzer | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MIDI Hardware | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Klang-Zuordnung | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Drum-Zuordnung | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Noten-Zuordnung | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Zahlensysteme | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MIDI Nachrichten | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Channel Messages | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Controller Messages | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| System Messages | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SysEx-Informationen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Manufacturer-IDs | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MIDI Implementation V 3.0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Datenformat | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Aufbau |
Während sich die Hardware im Lauf der Jahre so gut wie gar nicht verändert hat, erwies sich die MIDI-Sprache als sehr flexibel und hat sich den waschenden Anforderungen kontinuierlich angepasst. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Der MIDI-Datenstrom ist in 10-Bit Worten organisiert, wobei das Start- und Stopp-Bit nur zur Synchronisation benötigt werden. Von Interesse sind eigentlich nur die dazwischen liegenden acht Daten-Bits und dabei wird grundsätzlich zwischen Statusbytes und Datenbytes unterschieden. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Statusbyte |
Das Statusbyte besteht aus zwei Hälften (Nibbles) mit je vier Bits und bestimmt entweder Befehlstyp und Adresse des Gerätes, für das die nachfolgenden Datenbytes bestimmt sind, oder es definiert Ereignisse, bei denen keine Datenbytes benötigt werden. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Mit vier Bits erhält man maximal 16 Möglichkeiten, verschiedene Geräte softwaregesteuert anzusprechen. Zur eindeutigen Identifikation hat das Most Significant Bit (MSB), die erste Stelle des 8-Bit Wortes, eines Statusbytes immer den Wert 1, de letzte Stelle eines Bytes bezeichnet man als Least Significant Bit (LSB). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Die Stellen werden nach Wertigkeit sortiert, um auseinander zu halten, von welcher Stelle innerhalb eines Bytes die Rede ist und man unterscheidet dabei die höherwertige Bits (die ersten vier Bits von links) und die niederwertige Bits (die ersten vier Bits von rechts). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ein Beispiel für ein Statusbyte: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
1 001 0001 (1 steht für Statusbyte, 001 für Note On und 0001 für Midikanal 1) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Die acht Statusbytes sind: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Der Buchstabe „n“ steht dabei für den betreffenden MIDI-Kanal und nachdem es bei System Exclusive-Daten keine MIDI-Kanäle gibt, ist Das Statusbyte für System Exclusive-Daten immer F0H bzw. 11110000. Weitere Bytes die mit FH beginnen und deren vier niederwertigere Bits höher als 0000 sind, haben im MIDI-System spezielle Aufgaben. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Datenbyte |
Datenbytes dienen der Übermittlung numerischer Werte eines Parameters, beispielsweise Notennummer, Anschlagstärke, oder Controller-Daten. Das Datenwort eines Datenbytes beginnt immer mit dem Wert 0 (MSB=0). Die verbleibenden sieben Bits für die Kodierung von Zahlenwerten ergeben 128 Möglichkeiten und somit einen möglichen Wertebereich von 0 bis 127. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Für den Fall, dass dies nicht ausreicht, erreicht man durch die Übertragung von zwei Datenbytes eine Erweiterung auf maximal 16384 Möglichkeiten. Der Hexadezimalwert eines Datenbytes kann also den Maximalwert 7FH nicht überschreiten da es sich ja sonst um ein Statusbyte handeln würde. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ein Beispiel für ein Datenbyte: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
0 0111100 (0 steht für Datenbyte und 0111100 für Notennummer 60, das eingestrichene C) gefolgt von |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
0 0010011 (0 steht wieder für Datenbyte und 0010011 für Velocity Wert 19) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MIDI Nachricht |
Eine MIDI-Nachricht besteht aus einem Statusbyte und gegebenenfalls maximal zwei Datenbytes. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ein Beispiel für eine Midinachricht: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
10010001 00111100 00010011 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
(wie in den obigen Beispielen: Note On Kanal 1, Notennummer 60 und Velocity 19) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Mehr zu diesem Thema erfahren Sie im Abschnitt MIDI-Nachrichten. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Running Status |
Zur Einsparung von Daten können in einem sogenannten Running-Status nach dem einmaligen Senden eines Statusbytes darauf nur noch Datenbytes folgen und erst wenn ein MIDI-Event anderen Typs gesendet wird, folgt wieder ein Statusbyte. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Mehr zu diesem Thema erfahren Sie im Abschnitt über den Aufbau von Systemnachrichten. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Noten- und Klang-Zuordnung | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Noten |
Zur richtigen Interpretation ist es wichtig zu wissen, dass im MIDI-System die einzelnen Noten der Reihenfolge nach durchnummeriert sind, wobei dem mittleren C die Notennummer 60, oder dem darüber liegenden G die Nummer 67 entspricht. Offenbar wird jedoch in der Praxis je nach Hersteller bzw. Anwendungsprogramm die Tonhöhe für das mittlere C unterschiedlich definiert, sodass der Bereich von 0-127 in dem einen Fall von C-1 bis G9 und im anderen Fall von C-2 bis G8 angegeben wird. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Tabelle | Die Zuordnung der Noten zu den Nummern ist in einer separaten Tabelle dargestellt. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Klänge |
Auch die Nummerierung der Instrumentenklänge und Schlaginstrumente, deren Reihenfolge jeweils im MIDI-Standard festgelegt ist, erfolgt fortlaufend und ebenso sind die verschiedenen Anschlagstärken durchnummeriert, wobei dem höchstmöglichen Anschlag der Wert 127 und dem geringsten Anschlag der Wert 0 (bedeutet auch gar keinen Anschlag und kann bedingt zum Abschalten der Note benutzt werden) entspricht. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Tabelle | Die Zuordnung der einzelnen Klänge gemäß GM-Standard ist in einer separaten Tabelle dargestellt. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Drums | Die Zuordnung der einzelnen Drum-Instrumente gemäß GM-Standard ist in einer separaten Tabelle dargestellt. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Zahlensysteme | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Darstellung |
Im Umgang mit MIDI-Daten werden je nach Anwendungsgebiet verschiedene Arten der Zahlendarstellung verwendet, wobei das verwendete Zahlensystem bei der Darstellung üblicherweise angegeben wird. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dezimal System |
Das Dezimalsystem ist allen vertraut, basiert auf der Zahlenreihe 0 bis 9 und wird meist zur einfachen Durchnummerierung beispielsweise von Klangprogrammen verwendet. Dabei sollte man allerdings beachten, dass mit dem Zählen teilweise bei 0 und teilweise bei 1 begonnen wird, sodass man sowohl Bereichsangaben von 0 bis 127, als auch von 1 bis 128 findet. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Oktal System |
Das Oktalsystem basierend auf der Zahlenreihe 1 bis 8 wird manchnmal ebenfalls zum Durchnummerierung der Program Changes verwendet, da sich damit die häufig anzutreffenden 64 oder 128 Speicherplätzen gut darstellen lassen. In diesem System zählt man für 64 Plätze von 11 12 13 14 15 16 17 18 21 22 23 24 25 usw. 78 81 82 83 84 85 86 87 bis 88 und setzt davor zur Einteilung in Gruppen typischerweise die Buchstaben A und B, falls mehr als 64 Werte benötigt werden. Die Plätze 1 bis 64 werden somit als A11 bis A88 und die Plätze 65 bis 128 als B11 bis B88 bezeichnet. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Hexadezimal System |
Das Hexadezimalsystem kommt für alle komplexeren MIDI-Anwendungen zur Anwendung, verwendet zusätzlich zu den Zahlen 0 bis 9 noch die Buchstaben A bis F und bietet den Vorteil, auf diese Weise mit jeder Stelle 16 verschiedene Werte darstellen zu können. In diesem System zählt man demnach beginnend mit 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 und so weiter, wobei hexadezimale Zahlen mit einem großen "H" hinter der Zahl (z.B. 7FH) gekennzeichnet werden. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Binär System |
Das Binärsystem, auch als Dual-System bezeichnet, kennt lediglich die Zahlen 0 und 1 und ist daher besonders für die Bezeichnung der logischen Zustände (Bit gesetzt oder nicht gesetzt) in computerbezogenen Anwendungen sehr gebräuchlich. Für die Darstellung benötigt man allerdings entsprechend viele Stellen und die Leerstellen werden dafür oftmals mit Nullen aufgefüllt, um die im System verfügbaren Stellen (bei MIDI sind es acht Stellen) zu veranschaulichen. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Tabelle |
Eine Darstellung der bei MIDI üblichen 128 Werte finden Sie auf einer separaten Tabelle |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hier haben wir die ersten 20 Zahlenwerte in den einzelnen Zahlensystemen gegenübergestellt: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Text |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MIDI Kanäle | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 16 Kanäle |
Insgesamt stehen 16 separate MIDI-Kanäle zur Verfügung, von denen der Kanal 10 als Schlagzeugspur definiert wurde. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Letzte Änderung am 19. Oktober 2005 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||