Midi_ports_and_cable.jpg MIDI (engl.: musical instrument digital interface [ = „Digitale Schnittstelle für Musikinstrumente“) ist ein Datenübertragungs-Protokoll zum Zwecke der Übermittlung, Aufzeichnung und Wiedergabe von musikalischen Steuerinformationen zwischen digitalen Instrumenten oder mit einem PC. Das MIDI-Protokoll wird von vielen Soundkarten in modernen Rechnern unterstützt.
Das Protokoll wurde 1982 von der MIDI Manufacturous Association entwickelt und erstmals 1983 auf der Namm-Show in Anaheim, USA, vorgestellt. Überwacht wird der Standard von der IMA (International MIDI Association).
NoteNamesFrequenciesAndMidiNumbers.svg
Das MIDI-Protokoll stellt keine Klänge dar, sondern besteht aus Befehlen zur Ansteuerung von digitalen Instrumenten oder einer Soundkarte. Dazu werden Befehle übermittelt, wie beispielsweise "Note-on" ("Schalte Ton an") und "Velocity" ("Anschlagsstärke") und "Note-off" ("Schalte Ton aus"). Diese Anweisungen werden meist an einen Klangerzeuger (z.B. Synthesizer oder Soundkarte) geschickt, wodurch dann die entsprechenden Klänge erzeugt werden. Auch kann man auf einer Tastatur, die MIDI-Befehle sendet, spielen und die Tastaturbewegungen als MIDI-Befehle aufzeichnen.
Neben diesen elementaren Befehlen stellt MIDI weitere, teilweise sehr spezielle Befehle zur Verfügung, die beispielsweise dazu verwendet werden, andere Klänge zu laden oder geladene Klänge mittels Steuerdaten, wie sie von Schaltern, Knöpfen oder Drehreglern erzeugt werden können, zu beeinflussen. Ferner können Geräte über die Leitung sogenannte systemexklusive Meldungen, kurz SysEx, empfangen und übertragen, die es z.B. gestatten können, ein Backup des Speicherinhaltes eines Gerätes anzufertigen oder in ein Gerät ein neues Betriebssystem zu laden.
MIDI-Signale sind Steuerdaten. Audiosignale dagegen geben den direkten Verlauf des Schalldrucks (und damit des Klanges) wieder. Mit MIDI-Signalen können künstliche Klangerzeuger angespielt werden, die ihrerseits erst den Klang formen.
Nimmt man ein Musikstück als MIDI-Signale auf, erhält man Dateien, die verglichen mit der klassischen digitalen Aufzeichnung von Musik sehr klein sind. Bei der klassischen Musikaufzeichnung wird das Audiomaterial kontinuierlich in Binärdaten zerlegt und gespeichert. Dadurch entstehen enorme Datenmengen. MIDI hingegen speichert die Daten nicht kontinuierlich, sondern nur die zur Erzeugung des Klanges nötigen Steuerdaten.
Allerdings kann MIDI prinzipbedingt keine originalgetreue Wiedergabe des aufgenommenen Stückes gewährleisten, denn das klangliche Resultat wird durch das verwendete Klangmodul maßgeblich bestimmt. So ist es beispielsweise möglich, eine MIDI-Klavieraufnahme später mit einem Orgelklang abzuspielen. Insofern ist eine MIDI-Aufzeichnung am ehesten mit einem digitalen Notenblatt vergleichbar, das dem Instrumentalisten (in diesem Vergleich dem elektronischen Klangmodul) Informationen über die abzuspielenden Töne vermittelt, aber dem Klangmodul die Freiheit lässt, einen beliebigen Klang für die Wiedergabe zu verwenden.
MIDI-Dateien tragen typischerweise die Endung .MID im Dateinamen.
Seit ein paar Jahren bemüht sich der von Yamaha entwickelte mLan-Standard um eine Verknüpfung von MIDI- und Audiodaten auf der Basis von FireWire.
Das MIDI-Protokoll wurde ursprünglich für die gegenseitige Steuerung von digitalen Instrumenten wie Synthesizern, Samplern, Drumcomputern, Sound- und Audio-Karten, Effektgeräten (Hall, Echo, Equalizer usw.), sog. Controllern (wie Masterkeyboards, Drum-Pads, Fader-Boxen usw.) entwickelt, dann aber schnell für Personalcomputer adaptiert. Hardware-Sequenzer und Computer mit Sequenzerprogrammen (mittlerweile Audioproduktionssysteme) erlauben das Einspielen, Aufzeichnen, Bearbeiten und Ausgeben von MIDI-Daten.
Eine Pionierrolle auf diesem Gebiet spielte der Commodore C64, auf dem insbesondere die deutschen Softwareautoren Dr. Gerhard Lengeling und Karl Steinberg ihre ersten Sequenzer programmierten, die für die Namen C-LAB, Emagic und Steinberg stehen. Der kommerzielle Durchbruch für MIDI als Plattform für professionelle Musikproduktion ist eng mit dem Atari ST verbunden, da dieser standardmäßig mit einer MIDI-Schnittstelle ausgeliefert wurde. Die Entwicklung wichtiger MIDI-Programme wie Cubase (Steinberg) oder Notator (Lengeling) begann auf dem Atari ST.
Heutzutage sind auch andere Rechnerplattformen (oft die "Nicht-Windows-Systeme") für die Musiker, die mit MIDI arbeiten, eine gute Wahl. In erster Linie der Apple Macintosh, aber auch der Commodore Amiga, Pegasos mit dem MorphOS (als eines der jüngsten Mitglieder der Computerplattformen) und Standard-PCs mit alternativen Betriebssystemen (wie beispielsweise Linux) finden hierbei Verwendung.
Die heute meist verwendeten Sequenzerprogramme sind das bereits erwähnte Cubase von Steinberg, das - obwohl plattformübergreifend - mittlerweile vor allem auf PC-Rechnern Verbreitung findet, sein Pendant Logic, das inzwischen von Apple aufgekauft wurde und seitdem nur noch auf der Plattform Apple Macintosh zu Hause ist. Steinberg (einschließlich Cubase) wurde inzwischen von Yamaha aufgekauft. Daneben gibt es Rosegarden und MusE auf unixartigen Plattformen, und einige weitere Lösungen wie Cakewalk Sonar, Ableton Live oder auch Reason.
MIDI-In wird von einem Gerät zum Empfang verwendet. MIDI-Out wird zum Senden verwendet. MIDI-Thru schickt auf MIDI-In empfangene Signale weiter.
Physisch sind die Anschlüsse als fünfpolige DIN-Buchsen realisiert. In seltenen Ausnahmen (z.B. bei der MIDI-Interface-Karte Roland MPU-401 AT als ISA-Karte) verbauen die Hersteller aus Platzgründen auch 6-polige Mini-DIN-Buchsen. In solchen Fällen hilft ein Anschluss-Adapter, der baugleich zu einem Tastatur-Adapter "Mini-DIN-Stecker zu DIN-Buchse" (PS/2 auf AT) ist.
Will man mit einem Keyboard einen Synthesizer steuern, verbindet man die MIDI-Out-Buchse des Keyboards mit der MIDI-In-Buchse des Synthesizers.
Sollen mit einem Keyboard zwei Synthesizer (A und B) angesteuert werden, verbindet man MIDI-Out des Keyboards mit MIDI-In des Synthesizers A sowie die MIDI-Thru-Buchse des Synthesizers A mit MIDI-In des Synthesizers B.
Ein häufig anzutreffendes Szenario ist der Einsatz eines Computers mit entsprechender Software als Sequenzer sowie der Anschluss eines Keyboards oder elektronischen Pianos zum Einspielen der Noten und mehreren Synthesizern zur Klangerzeugung. Dabei wird üblicherweise das Keyboard mit MIDI-Out an MIDI-In des Computers angeschlossen, MIDI-Out des Computers mit den MIDI-In der Synthesizer, ggf. verkettet über MIDI-Thru.
Am PC kann man ein MIDI-Interface auch mithilfe des Gameports realisieren. Dazu wird auf diesen Port ein Adapterkabel gesteckt, das mit den beiden MIDI-Buchsen (In, Out) versehen ist. Der Gameport findet allerdings im professionellen Produktionsumfeld üblicherweise keine Verwendung, da die Treiber im Allgemeinen nicht timingfest sind.
Im Prinzip ist MIDI eine mit RS-232 vergleichbare Schnittstelle zur seriellen Datenübertragung. Die Übertragungsgeschwindigkeit beträgt 31250 Bits pro Sekunde. Jeder normierte MIDI-Befehl (mit Ausnahme systemexklusiver Daten, kurz SysEx genannt) trägt neben seiner Befehlskennung und den Befehlsdaten auch eine Kanalnummer. Die Kanalnummer ist 4 Bits groß, es lassen sich dadurch 2^4, also 16 Kanäle ansteuern. Je nach Software sind die Kanäle 0-15 oder 1-16 durchnummeriert, wobei die Nummerierung von 1-16 üblicher ist.
Da MIDI ein serielles Protokoll und die Datenrate der MIDI-Schnittstellen für heutige Verhältnisse recht gering ist, ergeben sich beim Abspielen vieler Noten häufig Timingprobleme, vor allem beim Einsatz von Sequenzerprogrammen. Schon das Anschlagen eines Akkords mit mehreren Noten kann zu hörbaren Verzögerungen führen, denn MIDI kann die Noten nie zeitgleich durch die Leitung schicken, sondern nur nacheinander. Im professionellen Bereich werden daher Rechner mit mehreren MIDI-Schnittstellen verwendet, um hohe Datenmengen parallel an die verschiedenen Tonerzeuger schicken zu können. Doch bereits eine geringe Anzahl von gleichzeitig übertragenen Realtime-Controllern kann immer noch zur hörbaren Überlastung des MIDI-Interface führen. Trotz dieser Einschränkungen und des hohen Alters erfreut sich MIDI nach wie vor großer Beliebtheit, da der Standard weit verbreitet, gut standardisiert und sehr zuverlässig ist. Eine Fortentwicklung wäre aus Anwendersicht jedoch durchaus wünschenswert. Von Yamaha gibt es mit XG-MIDI eine Erweiterung, die genau wie Rolands GS-MIDI zwar qualitative Verbesserungen bringt, allerdings nicht über ein proprietäres System hinaus gedieh. Als Quasi-Standard durchgesetzt hat sich lediglich GM (General MIDI).
Ein Gerät mit MIDI-Schnittstelle nennt man MIDI-Gerät. Dabei existieren verschiedenartige Geräte, die meist mit einer MIDI-Schnittstelle ausgestattet sind:
Siehe auch:
Immer häufiger anzutreffen ist der Einsatz von USB- oder Firewire-Geräten. Dabei werden die MIDI-Befehle über USB bzw. Firewire übertragen. Es lassen sich über USB oder Firewire mehrere virtuelle MIDI-Verbindungen realisieren, wodurch die begrenzte Zahl der Kanäle von 16 pro MIDI-Verbindung praktisch keine Rolle mehr spielt. Immer mehr Hersteller MIDI-fähiger Musikgeräte gehen angesichts der erwähnten Vorteile dazu über, ihre Geräte neben den klassischen MIDI-Schnittstellen auch mit USB- oder Firewire-Schnittstellen auszustatten.
MIDI verwendet kurze Bytefolgen, um Signale auszutauschen. Im Allgemeinen wird davon ausgegangen, dass das Signal von einem Signalgeber wie einem Keyboard an einen Klangerzeuger wie einen Synthesizer geschickt wird. Das Signal lässt sich aber auch mit einem Sequenzer als Musikstück aufzeichnen, bearbeiten und wiedergeben.
Die folgenden Tabellen erfordern ein Verständnis des Hexadezimalsystems. Ein Byte ist aus zwei Hexadezimalziffern (0..9 A..F) aufgebaut. Eine einzelne Hexadezimalziffer als Halbbyte wird auch Nibble genannt. Das Nibble n steht für die Kanalnummer (n = number), das Byte kk für die Note (k = key), das Byte vv für den Wert (v = value). Die Kanalnummer reicht von 0-15. In vielen Programmen wird bei der Darstellung der Kanalnummer die tatsächliche Kanalnummer um 1 erhöht dargestellt, also 1-16 statt 0-15.
Ein Statusbyte ist ein Byte, das einen Befehl im MIDI-Strom enthält. Auf einen Befehl folgt eine passende Anzahl Datenbytes. Um einen unterbrochenen Datenstrom jederzeit korrekt wieder aufzunehmen, fordert das MIDI-Protokoll die Fähigkeit, Statusbytes von Datenbytes zu unterscheiden. Dazu definiert MIDI, dass das erste Bit eines Statusbytes gesetzt (1) ist, das erste Bit eines Datenbytes dagegen ungesetzt (0). Daraus folgt, dass die Hexadezimaldarstellung von Statusbytes im Bereich 0x80 - 0xFF liegt, die von Datenbytes dagegen zwischen 0x00 - 0x7F. Einige Geräte halten sich nicht immer an diese Konvention. Für Datenbytes gilt meist, dass die Bytes 0x00 - 0x7F als Wertebereich von 0 bis 127 interpretiert werden.
Außerdem gilt für Statusbytes, dass das zweite Nibble immer n ist, was für den MIDI-Kanal steht, auf dem der Befehl ausgeführt wird.
Die Beispiele werden anhand von Tasten eines Tasteninstruments wie eines Keyboards erläutert, sind aber auf jedes MIDI-fähige Instrument übertragbar, z.B. auch eine MIDI-Gitarre.
Die Controller senden auf einem bestimmten Kanal mit einer bestimmten Controllernummer einen bestimmten Wert. Einfache Controller können Werte von 1 bis 128 annehmen, was jedoch bei Tonhöhenänderungen sehr schnell zu unschönen Treppenverläufen im Klang führt. Daher lassen sich die Controller 0-31 mit einem sogenannten LSB-Controller 32-63 koppeln, um so eine wesentlich höhere Auflösung zu erhalten. In der Praxis wird diese Technik jedoch selten angewandt, da eine Auflösung der Lautstärke beispielsweise in 128 Schritten fein genug erscheint.
Schalter wie beispielsweise das Haltepedal Nummer 64 können zwar theoretisch Werte von 1 - 128 senden, da ein Schalter allerdings nur zwei Werte annehmen kann, werden üblicherweise Werte von 1 bis 64 als »Aus« und Werte von 65 bis 128 als »An« interpretiert.
Verwendet man ein programmierbares Steuergerät, so sind Kenntnisse der Controllernummern und was diese üblicherweise steuern von großem Nutzen. Die wichtigsten Controller sind in der nachfolgenden Tabelle zusammengestellt. Das erste Byte eines Controllerbefehles lautet immer 0xBn, wobei n die Kanalnummer angibt. cc steht für die Controllerart (cc = continuous controller) und vv für den Wert, den der zu steuernde Klangparameter annehmen soll.
MIDI | MIDI | Musical Instrument Digital Interface | MIDI | رابط دیجیتالی سازهای موسیقی | MIDI | Musical Instrument Digital Interface | Musical Instrument Digital Interface | MIDI | MIDI | MIDI | Musical Instrument Digital Interface | MIDI | MIDI | MIDI | MIDI | MIDI | MIDI | MIDI | MIDI | MIDI | MIDI | MIDI
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Musical Instrument Digital Interface".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world