banner Software Merkmale
banner
Zum Beginn des Abschnittes Inhaltsverzeichnis
  Zum Beginn dieses Abschnittes Datenformat
Zum Beginn dieses Abschnittes Noten- und Klang-Zuordnung
Zum Beginn dieses Abschnittes Zahlensysteme
Zum Beginn des Abschnittes Berechnungstabelle
  Zum Beginn dieses Abschnittes MIDI Kanäle
  Zum Beginn des Abschnittes Entwicklung
Zum Beginn des Abschnittes MIDI in der Praxis
Zum Beginn des Abschnittes MIDI Sequenzer
Zum Beginn des Abschnittes MIDI Hardware
Zum Beginn des Abschnittes Klang-Zuordnung
Zum Beginn des Abschnittes Drum-Zuordnung
Zum Beginn des Abschnittes Noten-Zuordnung
Zum Beginn des Abschnittes Zahlensysteme
Zum Beginn des Abschnittes MIDI Nachrichten
Zum Beginn des Abschnittes Channel Messages
Zum Beginn des Abschnittes Controller Messages
Zum Beginn des Abschnittes System Messages
Zum Beginn des Abschnittes SysEx-Informationen
Zum Beginn des Abschnittes Manufacturer-IDs
Zum Beginn des Abschnittes MIDI Implementation V 3.0
line_274.gif (217 Byte) tab_s036.gif (46 Byte)
    
pkt_q14.gif (157 Byte) 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:

Bin Hex Status
1000nnnn 8nH Note Off
1001nnnn 9nH Note On
1010nnnn AnH Polyphonic Pressure
1011nnnn BnH Control Change
1100nnnn CnH Programm Change
1101nnnn DnH Channel Pressure
1110nnnn EnH Pitch Bending
1111nnnn FnH System Exclusive

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.

  Zum Beginn dieser Seite
line_274.gif (217 Byte) tab_s036.gif (46 Byte)
    
pkt_q14.gif (157 Byte) 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.
  Zum Beginn dieser Seite
line_274.gif (217 Byte) tab_s036.gif (46 Byte)
    
pkt_q14.gif (157 Byte) 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
DEZ HEX OCT BIN
0 0 A11 00000000
1 1 A12 00000001
2 2 A13 00000010
3 3 A14 00000011
4 4 A15 00000100
5 5 A16 00000101
6 6 A17 00000110
7 7 A18 00000111
8 8 A21 00001000
9 9 A22 00001001
10 A A23 00001010
11 B A24 00001011
12 C A25 00001100
13 D A26 00001101
14 E A27 00001110
15 F A28 00001111
16 10 A31 00010000
17 11 A32 00010001
18 12 A33 00010010
19 13 A34 00010011
20 14 A35 00010100
Zum Beginn dieser Seite
line_274.gif (217 Byte) tab_s036.gif (46 Byte)
    
pkt_q14.gif (157 Byte) 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.

 
Dez Hex Bin
0 0H 0000
1 1H 0001
2 2H 0010
3 3H 0011
4 4H 0100
5 5H 0101
6 6H 0110
7 7H 0111
8 8H 1000
9 9H 1001
10 AH 1010
11 BH 1011
12 CH 1100
13 DH 1101
14 EH 1110
15 FH 1111
Zum Beginn dieser Seite
E-Mail an musik-steiermarkZur Homepage von musik-steiermarkEine Ebene höherZurück in der selben EbeneVorwärts in der selben Ebene

Letzte Änderung am 19. Oktober 2005
Copyright © 1997-2005 musik-steiermark
Alle Rechte vorbehalten

Information über musik-steiermark