Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions Musical Instrument Digital Interface - Wikipedia

Musical Instrument Digital Interface

aus Wikipedia, der freien Enzyklopädie

Dieser Artikel behandelt das Datenübertragungs-Protokoll MIDI. Für die französische Landschaft Midi siehe den Artikel Midi-Pyrénées.
MIDI-Schnittstelle
MIDI-Schnittstelle

MIDI [ˈmɪdɪ] (engl.: musical instrument digital interface [ˈmjuːzɪkl̩ ˈɪnstɹəmənt ˈdɪdʒɪtl̩ ˈɪntɚfeɪs] = „Digitale Schnittstelle für Musikinstrumente“) ist ein Datenübertragungs-Protokoll zum Zwecke der Übermittlung, Aufzeichnung und Wiedergabe von musikalischen Steuerinformationen zwischen Instrumenten oder mit einem PC. Das MIDI-Protokoll wird von vielen Soundkarten in modernen Rechnern unterstützt.

Inhaltsverzeichnis

[Bearbeiten] Geschichte

Das Protokoll wurde 1981 von Dave Smith für die Audio Engineering Society entwickelt und von der MIDI Manufacturers Association erstmals 1983 auf der Namm-Show in Anaheim, USA, vorgestellt. Überwacht wird der Standard von der IMA (International MIDI Association).

[Bearbeiten] Funktionsweise

Notennamen und MIDI-Notennummern
Notennamen und MIDI-Notennummern

Das MIDI-Protokoll stellt keine Klänge dar, sondern besteht aus Befehlen zur Ansteuerung von 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.

Die meisten modernen Klangerzeuger (Synthesizer, Expander u. a.) haben einen internen SysEx-Befehlssatz, mit dem man alle internen Klangerzeugungs-Mechanismen bis ins kleinste Detail steuern oder beeinflussen kann. Sehr viele moderne Synthesizer haben bereits eine ganze Reihe von digitalen Effekten integriert, die man sonst mit separaten externen Effekt-Geräten erzeugen müsste. So können z. B. in der Hall-Effekt Sektion Klangräume über SysEx-Befehle sehr genau konstruiert werden, und präzise festgelegt werden, wo genau in dem Raum ein Instrument platziert ist.

[Bearbeiten] Unterschiede zwischen MIDI- und Audioaufzeichnung

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.

Für die Übertragung an oder von nicht digitalen Instrumenten (analoge Synthesizer, E-Gitarren) gibt es Konverter.

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.

[Bearbeiten] Einsatzbereiche

Das MIDI-Protokoll wurde ursprünglich für die gegenseitige Steuerung von Synthesizern entwickelt, dann aber schnell für Samplern, Drumcomputern, Sound- und Audiokarten, Effektgeräten (Hall, Echo, Equalizer usw.), sog. Controllern (wie Masterkeyboards, Drum-Pads, Fader-Boxen usw.) und Computer adaptiert. Hardware-Sequenzer und Computer mit Sequenzerprogrammen (mittlerweile Digital Audio Workstations) erlauben das Einspielen, Aufzeichnen, Bearbeiten und Ausgeben von MIDI-Daten. Als der Speicher in Mobiltelefonen noch sehr knapp war, benutzte man das MIDI-Format für Klingeltöne.

[Bearbeiten] Rechnersysteme

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.

[Bearbeiten] Dateiformate

MIDI-Dateien gibt es in den Formaten SMF 0, SMF 1 und SMF 2.

Beim Format 0 sind alle MIDI-Kanäle in einer Spur zusammengefaßt, auch als Mixdown bezeichnet. Dieses Format wird heutzutage noch von Klingeltönen für Handys genutzt und kann mit gängigen Sequenzerprogrammen in das Format 1 konvertiert werden.

Beim Format 1 hat jeder Kanal seine eigene Spur und einen eigenen Namen. Verschiedenen Stimmen und Instrumente können so besser identifiziert werden. Ältere MIDI-Geräte können dieses Format öfter nicht verarbeiten.

Das Format 2, das eher selten anzutreffen ist, geht noch einen Schritt weiter. Hier werden einzelne Pattern (Teile einer Spur) auf separaten Spuren gespeichert.

[Bearbeiten] MIDI-Anschlüsse

Es existieren drei verschiedene MIDI-Anschlüsse, MIDI-In, MIDI-Out und MIDI-Thru. Diese Dreierkombination heißt Midi-Trio.

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.

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

MIDI arbeitet nach dem Master-Slave Prinzip. Will man mit einem Keyboard einen Synthesizer steuern, verbindet man die MIDI-Out-Buchse des Keyboards (Master) mit der MIDI-In-Buchse des Synthesizers (Slave). Sollen mit einem Keyboard (Master) zwei Synthesizer (Slave A und B) angesteuert werden, verbindet man MIDI-Out des Keyboards mit MIDI-In des Synthesizers (Slave A) sowie die MIDI-Thru-Buchse des Synthesizers (Slave A) mit MIDI-In des Synthesizers (Slave 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 MIDI-Out des Keyboards mit MIDI-In des Computers verbunden, 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.

[Bearbeiten] Technik

Standard MIDI-Interface
Standard MIDI-Interface

Im Prinzip ist MIDI eine mit RS-232 vergleichbare Schnittstelle zur seriellen Datenübertragung. Die Übertragungsgeschwindigkeit beträgt 31250 Bits pro Sekunde.

Im Unterschied zu Computer-Schnittstellen wird bei MIDI die Logik über Strom und nicht über Spannung gesteuert. Wie schon erläutert, werden bei der MIDI-Steckverbindung (5-polig DIN – früher Diodenbuchse/-stecker) die Pins 4 und 5 als Datenleitung benutzt. Dabei liegt Pin 4 über einen 220 Ohm Widerstand an +5V, und Pin 5 ist der geschaltete Pin.

Wird Pin 5 auf Masse geschaltet (0V) fließt der Strom über die Leitung = 1. Wird Pin 5 nicht geschaltet (+5V) fließt kein Strom über die Leitung = 0.

In normaler TTL-Logik ist Masse = 0 und +5V = 1. Daraus ergibt sich, dass MIDI eine gegenüber der TTL-Logik negative Logik hat.

Um mit einem Computer, der der TTL-Logik folgt, über MIDI zu kommunizieren, muss ein „Signal-Konverter“ zwischengeschaltet werden. Diesen nennt man MIDI-Interface. Jede Datenübertragungs-Schnittstelle des Computers kann mit einem geeigneten MIDI-Interface für die MIDI-Übertragung genutzt werden.

Lange Zeit war die übliche Vorgehensweise, die MIDI-Signale, die am Gameport entsprechender Soundkarten verfügbar waren, über einen Adapter (siehe Bild) auf die Standard-MIDI-Schnittstelle umzusetzen. Softwareseitig war die Hardware meist MPU-401-kompatibel.

Vorher waren auch MIDI-Interfaces für die serielle (COM) und parallele (Druckerport) Schnittstelle im Gebrauch. Inzwischen gibt es MIDI-Interfaces auch für USB, FireWire (mLAN) und LAN.

Das jeweilige MIDI-Interface passt das Signal auch den Spannungsverhältnissen für den jeweiligen Port an; z. B. arbeitet der COM-Port mit −12 V als 0 und +12 V als 1.

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 24, 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. Jeder Kanal steuert einen speziellen Klang (Instrument), in der MIDI-Sprache „Programm“ genannt.

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

[Bearbeiten] MIDI-Geräte

Ein Gerät mit MIDI-Schnittstelle nennt man MIDI-Gerät. Dabei existieren verschiedenartige Geräte, die meist mit einer MIDI-Schnittstelle ausgestattet sind:

  • Expander: Ein Expander ist ein externer Klangerzeuger, meist ein Synthesizer, ohne eigene Tastatur.
  • Synthesizer bzw. Keyboard: Die meisten Synthesizer verfügen über eine MIDI-Schnittstelle, um Tasten- und Reglerbewegungen zu Aufzeichnungszwecken übertragen zu können.
  • Masterkeyboard: Ein Masterkeyboard enthält meist keine eigene Klangerzeugung sondern dient ausschließlich der Steuerung von Expandern, Softwaresynthesizern oder zur Aufzeichnung der Tastenbewegung.
  • Workstation: Eine Kombination aus Synthesizer, Masterkeyboard und Sequenzer wird als Workstation bezeichnet.
  • Sequenzer: Der Sequenzer dient der Aufzeichnung der MIDI-Daten und dem Arrangement eines Musikstückes. MIDI-Sequenzer erlauben das Programmieren, die Aufzeichnung sowie die Wiedergabe von aufgezeichneten oder programmierten MIDI-Informationen (Notenwerte, Anschlagsstärke sowie weiteren Steuerungsbefehlen wie z. B. Modulation). Softwaresequenzer mit MIDI-Unterstützung haben sich auf dem Markt durchgesetzt, da sie über die Standardfunktionen (Programmieren, Aufzeichnen, Abspielen) hinaus auch weitere Bearbeitungsmöglichkeiten in grafischer Form bieten (nachträgliches Editieren, Quantisierung usw.), wobei sie heutzutage nicht nur MIDI-, sondern auch Audiomaterial verarbeiten können. Diese Kombination aus Audio- und MIDI-Bearbeitung nennt man DAW (Digital Audio Workstation). Für den Live-Einsatz erfreuen sich auch die in Keyboards oder Groove-Boxes integrierten Sequenzer großer Beliebtheit.
  • MIDI-Interface für PC (MPU-401): Hierbei handelte es sich ursprünglich um eine 8-Bit-ISA-Steckkarte des Herstellers Roland. Viele für MS-DOS-PCs erhältliche Computerspiele zwischen 1988 und 1995 unterstützten diese MIDI-Schnittstelle zur Ansteuerung von Klangerzeugern wie z. B. der internen Roland Lapc-1 oder dem externen MT-32. Andere Hersteller wie bspw. Creative Labs unterstützten den MPU-401-Modus nur eingeschränkt im so genannten Dumb-Mode (UART), während der Intelligent-Mode, der genaues Timing durch Hardwareunterstützung garantierte, nur von Rolands eigenen Produkten beherrscht wurde.
  • MIDI-Interface für PC (Gameport): Der Gameport-MIDI-Adapter erweitert den Gameport einer Soundkarte um ein MIDI-Interface mit meist einem MIDI-In, einem MIDI-Out und einem MIDI-Thru. Es gibt auch MIDI-Interfaces für den Gameport ohne MIDI-Thru oder mit mehreren MIDI-Out-Kanälen. Letzteres bietet den Vorteil, dass die bei der Reihenschaltung von Geräten über MIDI-Thru/MIDI-In entstehende Latenz vermieden werden kann, falls die Thru-Funktion nicht über eine hardwareseitige Kopplung der In- mit der Thru-Buchse erreicht wird (Soft Thru). Bei diesen MIDI-Interfaces handelt es sich um synchrone Interfaces, d. h. auf allen MIDI-Out-Kanälen liegt dasselbe MIDI-Signal an. Die Zahl der Kanäle bleibt dann auf 16 beschränkt. Im professionellen Produktionsumfeld werden Gameport-MIDI-Adapter nicht eingesetzt, weil die zugrunde liegenden Treiber im Allgemeinen nicht timingstabil sind.
  • MIDI-Interface für USB oder FireWire (IEEE1394): Da MIDI im Wesentlichen ein Datenprotokoll zur Steuerung von elektronischen Musikinstrumenten darstellt, ist es in diesem Zusammenhang prinzipiell unerheblich, über welche Hardware die Daten übertragen werden. Um eine kostengünstige, plattformübergreifende und vor allem schnelle Anbindung externer MIDI-Interfaces an den Rechner zu erreichen, verfügen heute viele MIDI-Adapter über einen USB- oder FireWire-Anschluss, über den dieser die über die Out-Ports zu verteilenden Daten erhält. Diese Art von MIDI-Interfaces stellt die im Vergleich zum PC-Gameport deutlich zuverlässigere Variante zum Anschluss von MIDI-Geräten an den Rechner dar, da die verwendeten Treiber von den Herstellern dieser verhältnismäßig teuren Geräte zumeist auf Timinggenauigkeit hin optimiert werden. Für den professionellen Einsatz werden Interfaces mit 4 bis 8 einzeln adressierbaren Out-Ports verwendet, die so dass Timingprobleme deutlich vermindert werden können (vgl. auch folgender Absatz).
  • MIDI-Interface für Atari ST: Der Atari ST verfügt über eine eingebaute MIDI-Schnittstelle. Eine Nachrüstung ist nicht notwendig.
  • MIDI-Interface für Amiga: Beim Commodore Amiga sind die meisten MIDI-Interfaces Adapter für die serielle Schnittstelle mit einem MIDI-In, einem MIDI-Thru und meist drei MIDI-Out. Es gibt sowohl synchrone als auch asynchrone MIDI-Interfaces. Bei einem asynchronen MIDI-Interface sind die verschiedenen MIDI-Out-Schnittstellen unabhängig voneinander ansteuerbar. Bei drei MIDI-Out-Schnittstellen gibt es also 48 MIDI-Kanäle (3×16).
  • MIDI über USB oder FireWire: MIDI lässt sich über USB oder FireWire tunneln. Dabei kommen im Gegensatz zum MIDI-Interface für USB keine MIDI-Kabel mehr zum Einsatz.
  • Effektgeräte: Zahlreiche Effektgeräte lassen sich über MIDI fernsteuern.
  • Musikinstrumente: Für viele Musikinstrumente existieren Abnehmer zur Erzeugung von MIDI-Signalen (z. B. Guitar-to-MIDI-Converter)

Siehe auch: Audio Stream Input/Output (ASIO), Sequenzer (Musik), Synthesizer, Sampler, Soundkarte, SoundFont

[Bearbeiten] MIDI über USB/FireWire

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.

Erwähnenswert ist es, dass sich das USB-MIDI-Protokoll vom herkömmlichen MIDI-Protokoll unterscheidet. Nachzulesen in der „Universal Serial Bus Device Class Definition for MIDI Devices“ (englisch) im Kapitel 4: USB-MIDI Event Packets. Die dort genannten „Jacks“, max. 16 pro USB-Endpoint, haben jeweils wieder 16 Kanäle.

[Bearbeiten] MIDI über Netzwerk

Seit einiger Zeit gibt es eine Reihe von virtuellen MIDI-Gerätetreibern, die es erlauben, MIDI-Daten über IP-basierende Netzwerke zu übermitteln. Während die meisten dieser Produkte auf proprietärer Basis die MIDI-Daten per TCP oder UDP über das Netzwerk übertragen, gibt es mittlerweile auch einen RFC für eine genormte Übertragung von MIDI-Daten über Netzwerke auf Basis des RTP-Protokolls: RFC 4695. Es gibt mehrere Open-Source-Implementierungen dieses Standards und auch das Apple-Netzwerk-MIDI der OS-X Betriebssystemversion „Tiger“ basiert auf dieser Spezifikation.

[Bearbeiten] Funktionsweise des MIDI-Protokolls

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.

[Bearbeiten] Die übertragenen Bytes

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.

Kommt statt eines erwarteten Statusbyte ein Datenbyte, dann gilt das letzte Statusbyte als wiederholt und das aktuelle Datenbyte zählt zu dessen Daten.

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.

[Bearbeiten] Statusbytes

Das Statusbyte ist immer das erste übertragene Byte einer zusammengehörigen MIDI-Nachricht. Das erste Bit des Statusbytes ist immer 1 (gesetzt).

Statusbytes
Bytes (hexadezimal) Folgebytes Status Erläuterung
0x8n kk vv Note, Release velocity Note Off Beendet das Spielen der angegebenen Note, hat also die Bedeutung des Loslassens einer Taste. Wurde die Note vorher gar nicht gespielt, wird dieses Signal einfach ignoriert.
0x9n kk vv Note, Anschlagsdynamik Note On Beginnt das Spielen einer Note. Zusätzlich wird die Anschlagsdynamik angegeben, die der Druckstärke auf die Taste in 128 Schritten von 0 (praktisch gar nicht) bis 127 (sehr stark) entspricht.
0xAn kk vv Note, Dynamic Polyphonic Aftertouch Beschreibt das Ändern des Tastendrucks während die Taste bereits gedrückt ist, für jede Taste einzeln.
0xBn cc vv Controller, Wert Control Change Ändert den Zustand eines Controllers (siehe nächster Abschnitt) (cc = Controller)
0xCn pp Programmnummer Program Change Legt das für den angegebenen Kanal zu spielende Instrument fest (pp = Program Number)
0xDn vv Wert Monophonic Aftertouch Beschreibt das Ändern des Tastendrucks während die Tasten bereits gedrückt sind, für alle Tasten gemeinsam.
0xEn vv [vv] Wert1, Wert2 (optional) Pitch Bending Einstellung des Pitchbend-Rades, je nach Gerät mit 7, 8 oder 14 Bit (128, 256 oder 16536 verschiedene mögliche Werte).
0xFn xx... Geräteabhängig System Message Steuermeldungen, häufig gerätespezifisch, Länge ebenfalls gerätespezifisch (xx = Datenbytes)

[Bearbeiten] Controller

Für jemanden, der MIDI einsetzen möchte, sind die meisten MIDI-Nachrichten und ihr Aufbau von vergleichsweise geringem Interesse. Große Bedeutung haben jedoch die Controller, da sich mit ihnen auf einfache Art und Weise gerätespezifische Klangparameter des aktuellen Instruments steuern lassen.

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.

Wichtige MIDI-Controller
Byte (hexadezimal) Dezimal Typ Erläuterung
0xBn 00 vv 0 Bank select MSB gefolgt von Bank select LSB Controller 32
0xBn 01 vv 1 Modulation MSB Stellung des Modulationsrades
0xBn 02 vv 2 Breath Controller Blasregler
0xBn 04 vv 4 Foot Controller MSB Stellung des Fußpedals
0xBn 05 vv 5 Portamento Time MSB Dauer des übergangslosen Gleitens zwischen zwei Tonhöhen
0xBn 06 vv 6 Data Byte Datenbyte für einen RPN-/NRPN-Controller
0xBn 07 vv 7 Main volume Gesamtlautstärke
0xBn 08 vv 8 Balance Verstärkung des rechten bzw. linken Lautsprechersignals (nur Stereo)
0xBn 0A vv 10 Panorama Stereopositionierung im Raum (links … mittig … rechts)
0xBn 0B vv 11 Expression Ausdrucksstärke des Klangs
12 Effect Control 1 Effekt 1 steuern
13 Effect Control 2 Effekt 2 steuern
14–15 Undefined Undefiniert bzw. frei verwendbar
16–19 General Purpose Controllers 1–4 Frei belegbare Controller
20–31 Undefined Undefiniert bzw. frei verwendbar
32 Bank select LSB gefolgt von Programmnummer-Befehl: Cn xx (n – MIDI kanal; xx – Nummer)

Das „Bank select MSB/LSB/Programmnummer“ wird verschieden genutzt. z. B. YAMAHA bei XG

für die Auswahl einer Tonebank: MSB(Ctrl.0) = 0 LSB(Ctrl.32) = Banknummer

für die Auswahl eines Drumsets: MSB(Ctrl.0) = Drumset LSB(Ctrl.32) = 0

63 LSB for Controllers 0–31 (rarely implemented) Dienen eigentlich dazu, die Controller 0–31 feiner auflösen zu können, wird aber kaum verwendet
64 Hold 1 Haltepedal
65 Portamento Portamento ein- und ausschalten
66 Sostenuto Während des Drückens des Pedals bereits gespielte Noten werden gehalten, neu hinzukommende nicht
67 Soft Pedal
68 Legato Footswitch
69 Hold 2 2. Haltepedal
70 Sound Controller 1 (Sound Variation) Klangsteuerung 1, meist Klangvariation
71 Sound Controller 2 (Harmonic Content) Klangsteuerung 2, meist Teiltonhaltigkeit
72 Sound Controller 3 (Release Time) Klangsteuerung 3, meist Ausschwingzeit
73 Sound Controller 4 (Attack Time) Klangsteuerung 4, meist Einschwingzeit
74 Sound Controller 5 (Brightness) Klangsteuerung 5, meist Helligkeit
75–79 Sound Controller 6–10 Klangsteuerung 6–10, keine Vorschlagswerte
80–83 General Purpose 5–8 Frei verfügbare Controller 5–8
84 Portamento Control Kontrolle des Portamento
85–90 Undefined Undefiniert bzw. frei verwendbar
91 Effects 1 Depth Effekttiefe 1, früher Intensität eines externen Effektes
92 Effects 2 Depth Effekttiefe 2, früher Tremolointensität
93 Effects 3 Depth Effekttiefe 3, früher Chorusintensität
94 Effects 4 Depth Effekttiefe 4, früher Detuneinstensität
95 Effects 5 Depth Effekttiefe 5, früher Phaserintensität
96 Data Increment Wert erhöhen
97 Data Decrement Wert erniedrigen
0xBn 62 vv 98 NRPN LSB Niederwertiges Byte eines NRPN-Controllers
0xBn 63 vv 99 NRPN MSB Höherwertiges Byte eines NRPN-Controllers
0xBn 64 vv 100 RPN LSB Niederwertiges Byte eines RPN-Controllers
0xBn 65 vv 101 RPN MSB Höherwertiges Byte eines RPN-Controllers
102–120 Undefined Undefiniert bzw. frei verwendbar
0xBn 78 vv all sounds off Klangerzeugung sofort einstellen (vv hat keine Bedeutung)
0xBn 79 vv 121 Controller Reset Setzt alle Controller auf ihre Ursprungswerte
0xBn 7A vv 122 Local Control on/off Koppelt die Tastatur vom internen Klangerzeuger eines Gerätes ab; die interne Klangerzeugung kann weiterhin von außen über MIDI angesteuert werden, während die Tastatur weiterhin über den MIDI-Ausgang Daten sendet, aber eben nicht mehr an die interne Klangerzeugung
0xBn 7B vv 123 all notes off Spielen einstellen – sämtliche Noten werden ausgeschaltet, die Klänge durchlaufen jedoch noch ihre Release-Zeit (d. h. sie klingen ab) (vv hat keine Bedeutung)
0xBn 7C vv 124 omni off Das Gerät soll nur auf programmierte Kanäle reagieren (vv haben keine Bedeutung)
0xBn 7D vv 125 omni on Das Gerät soll auf allen Kanälen gleich reagieren (vv hat keine Bedeutung)
0xBn 7E vv 126 mono on / poly off Das Gerät soll nur mit einer begrenzten Anzahl Stimmen spielen (vv = Stimmenzahl, üblich ist 1 – viele Geräte ignorieren vv und stellen auf 1-stimmig)
0xBn 7F vv 127 poly on / mono off Das Gerät soll mit maximaler Anzahl an Stimmen spielen

MSB engl. : Most Significant Byte = höchtstwertiges/höherwertiges Byte

LSB engl. : Least Significant Byte = niederwertigstes/niederwertiges Byte

Lückenhaft Dieser Artikel oder Abschnitt weist folgende Lücken auf:
  • Tabelle sollte vollständiger sein
  • Funktionsweise der RPN/NRPN-Controller erläutern
  • Tabellen mit den wichtigsten RPN- und NRPN-Controllern
  • es fehlt eine Kritik an MIDI, das längst technisch überholt ist und sich nicht weiterentwickelt

Hilf Wikipedia, indem du die fehlenden Informationen recherchierst und einfügst!

[Bearbeiten] Kritik

Die Geschwindigkeit der original MIDI-Schnittstelle mag technisch überholt sein, die Integration von MIDI in USB und damit die Steuerung von virtuellen Synthesizern über ein USB <-> MIDI Keyboard erfreut sich jedoch steigender Beliebtheit.

[Bearbeiten] Weblinks

[Bearbeiten] Informationen zum Thema MIDI

[Bearbeiten] MIDI-Sequenzer

[Bearbeiten] Sonstige

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu