Deutsch

MIDI-Nachrichten Spickzettel: jeder Typ, jedes Statusbyte, jeder Bereich

InputConfig im Mac App Store ladenDiese App ist komplett kostenlos. Du musst kein Konto anlegen. Es gibt keine Abos, keine umständlichen Downloads, und nichts ist gesperrt. Optimiert für Apple Silicon.

Eine MIDI-1.0-Nachricht besteht aus einem Statusbyte, das sagt, was für eine Nachricht es ist, gefolgt von null, einem oder zwei Datenbytes. Es gibt sieben Kanalnachrichten, von Note Off bei 80 hex bis Pitch Bend bei E0, jede mit ihrem Kanal in der letzten Ziffer, und eine Reihe von Systemnachrichten von F0 bis FF, die gar keinen Kanal haben. Die Tabellen unten decken jede davon ab, mit den Bereichen, die jedes Datenbyte annimmt, und jede Zeile verlinkt die Seite hier, die diese Nachricht ausführlich erklärt.

Die Werte stammen aus der Übersicht der MIDI-1.0-Nachrichten und der Control-Change-Liste der MIDI Association, die ich am 27. Oktober 2026 gelesen habe. Ich entwickle InputConfig, eine kostenlose Mac-App, die MIDI liest und sendet, deshalb sagt eine Tabelle, welche dieser Nachrichten sie verarbeitet.

Schritte

  1. Lies das erste Byte der Nachricht in hex.
  2. Liegt es zwischen 80 und EF, nennt die erste Ziffer die Nachricht und die zweite Ziffer den Kanal, 0 für Kanal 1 bis F für Kanal 16.
  3. Liegt es zwischen F0 und FF, ist es eine Systemnachricht ohne Kanal, schlage sie also in der Systemtabelle nach.
  4. Lies die folgenden Datenbytes, jedes von 0 bis 127, mit der Kanaltabelle.
  5. Schlage bei einem Control Change die Controller-Nummer in der CC-Tabelle nach.

Ein Statusbyte von einem Datenbyte unterscheiden

Jedes Byte in MIDI 1.0 ist entweder ein Statusbyte oder ein Datenbyte, und das oberste Bit entscheidet, welches. In der Tabelle der MIDI Association beginnt jedes Statusbyte binär mit einer 1 und jedes Datenbyte mit einer 0.

  • Statusbytes. 80 bis FF hex, 128 bis 255. Sie beginnen eine Nachricht.
  • Datenbytes. 00 bis 7F hex, 0 bis 127. Deshalb hört fast jeder Wert in MIDI bei 127 auf.
  • Der Kanal. Bei einer Kanalnachricht ist die zweite hex-Ziffer der Kanal, 0 bis F, den Apps als Kanal 1 bis 16 zeigen. Also ist 90 Note On auf Kanal 1 und 9F Note On auf Kanal 16.
  • 14-Bit-Werte. Reichen 128 Stufen nicht, verbinden sich zwei Datenbytes: die feine Hälfte, das LSB, und die grobe Hälfte, das MSB. Zusammen laufen sie von 0 bis 16383, und Pitch Bend legt seine Mitte auf 8192, 2000 hex.

Ein Byte ab 128 beginnt eine Nachricht, und ein Byte unter 128 trägt einen Wert. MIDI-Kanäle und MSB und LSB gehen bei beidem weiter.

Die Kanalnachrichten lesen

Diese sieben tragen die Musik: Noten, Druck, Regler, Klangwechsel und das Pitch-Rad. Die Spalte Status ist hex, wobei die niedrige Ziffer vom Kanal bestimmt wird.

NachrichtStatus (hex)Datenbyte 1Datenbyte 2Mehr
Note Off80 bis 8FNotennummer, 0 bis 127Release-Velocity, 0 bis 127Notennummern
Note On90 bis 9FNotennummer, 0 bis 127Velocity, 0 bis 127 (0 wirkt wie Note Off)Velocity
Polyphoner TastendruckA0 bis AFNotennummer, 0 bis 127Druck, 0 bis 127Aftertouch
Control ChangeB0 bis BFController, 0 bis 119Wert, 0 bis 127CC-Liste
Program ChangeC0 bis CFProgramm, 0 bis 127KeinsProgrammwechsel
KanaldruckD0 bis DFDruck, 0 bis 127KeinsAftertouch
Pitch BendE0 bis EFFeine Hälfte (LSB), 0 bis 127Grobe Hälfte (MSB), 0 bis 127Pitch Bend

Ein Note On mit Velocity 0 zählt als Note Off, was auch die Arduino-Anleitung der MIDI Association nutzt, um eine Note zu beenden. Die Controller-Nummer bei Control Change hört bei 119 auf, weil 120 bis 127 von den Kanalmodus-Nachrichten unten belegt sind. Der Bereich von Pitch Bend in Halbtönen steht gar nicht in der Nachricht: Das legt der Empfänger fest, und die MIDI-Tabelle merkt an, dass er mit RPN 0 eingestellt werden kann. Program Change und Kanaldruck tragen ein Datenbyte, die anderen fünf tragen zwei.

Die Kanalmodus-Nachrichten kennen

Kanalmodus-Nachrichten nutzen das Statusbyte von Control Change, B0 bis BF, mit den Controller-Nummern 120 bis 127. Sie ändern, wie sich der Kanal verhält, nicht wie er klingt.

ControllerNameWas es tut
120All Sound OffSchaltet jede Stimme auf einmal stumm
121Reset All ControllersSetzt Controller auf ihren Standardzustand zurück
122Local Control0 ist aus, 127 ist an: ob die Tasten den eigenen Klang des Synthesizers spielen
123All Notes OffLöst jede gehaltene Note
124 und 125Omni Mode Off und OnOb das Gerät auf einem Kanal oder auf allen lauscht
126 und 127Mono Mode On und Poly Mode OnEine Note pro Kanal oder Akkorde

Die Liste der MIDI Association merkt an, dass 124 bis 127 auch alle Noten ausschalten. Ein Panic-Knopf ist meist CC 123 und CC 120, gesendet auf allen 16 Kanälen. MIDI-Panic listet die genauen Bytes auf.

Die Systemnachrichten lesen

Systemnachrichten beginnen mit F und tragen keinen Kanal, jedes Gerät am Kabel darf sie also lesen. F0 bis F7 sind allgemeine Systemnachrichten und F8 bis FF sind Echtzeitnachrichten, die einzigen, die mitten in einer SysEx-Nachricht erlaubt sind.

Status (hex)NachrichtDatenMehr
F0System ExclusiveHersteller-ID, dann beliebig viele Datenbytes, bis F7SysEx
F1MIDI Time Code Quarter FrameEin Byte: ein Stück des Timecodes
F2Song Position PointerZwei Bytes: eine 14-Bit-Zählung von Schlägen ab dem Anfang, wobei ein Schlag 6 Clocks sind
F3Song SelectEin Byte: welcher Song oder welche Sequenz
F6Tune RequestKeine. Bittet analoge Synthesizer, ihre Oszillatoren zu stimmen
F7End of ExclusiveKeine. Beendet eine SysEx-Nachricht
F8Timing ClockKeine. Wird 24 Mal pro Viertelnote gesendetMIDI-Clock
FA, FB, FCStart, Continue, StopKeineMIDI-Clock
FEActive SensingKeine. Optional, mindestens alle 300 ms, sobald ein Gerät damit beginnt
FFResetKeine. Setzt Empfänger auf ihren Zustand beim Einschalten zurück

F4, F5, F9 und FD sind nicht definiert. Clock, Start und Stop sind Systemnachrichten, sie tragen also nie einen Kanal. Zu SysEx-Dumps und den Apps, die sie senden, siehe die Seite SysEx-Librarian für den Mac.

Die wichtigen CC-Nummern nachschlagen

Viele der 120 Control-Change-Nummern sind undefiniert, aber einige haben im MIDI-Standard Namen, denen Synthesizer und Apps folgen. Diese stammen aus der Control-Change-Liste der MIDI Association.

CCNameMehr
0 und 32Bank Select, MSB und LSBMSB und LSB
1ModulationsradCC-Liste
2Breath Controller
4Foot Controller
6 und 38Data Entry, MSB und LSBNRPN und RPN
7Channel Volume
10Pan
11Expression
64Sustain-Pedal (Dämpferpedal): 0 bis 63 aus, 64 bis 127 anSustain-Pedal
65, 66, 67Portamento, Sostenuto und Soft Pedal, an oder aus
98 und 99NRPN-Nummer, LSB und MSBNRPN und RPN
100 und 101RPN-Nummer, LSB und MSBNRPN und RPN

Die Controller 32 bis 63 sind die feinen Hälften, die LSBs, der Controller 0 bis 31, und so wird aus Bank Select CC 0 plus CC 32. CC 64 ist ein Schalter, jeder Wert ab 64 heißt also, dass das Pedal unten ist. Die MIDI-CC-Liste führt jede Nummer auf.

Sehen, was InputConfig liest und sendet

InputConfig macht aus MIDI von einer Tastatur, einem Pad-Controller oder einer DAW Tasten, Klicks, die Lautstärke des Macs und mehr, und es sendet MIDI von einem Game-Controller oder einer Tastatur über einen virtuellen Port namens InputConfig. Hier ist die ehrliche Liste, Nachricht für Nachricht.

NachrichtAls Eingabe belegenAls Ausgabe senden
Note On und OffJa, als gehaltene TasteJa, mit der in der Zeile eingestellten Velocity
Control ChangeJa, als Schalter, Regler oder DrehungJa, ein fester Wert oder die Position eines Sticks oder Triggers
Pitch BendJa, Plus und Minus wie ein StickJa, von einer Stick-Achse oder einer Taste
AftertouchJaNein
Program ChangeJa, und er kann ein Preset aktivierenJa
Start, Continue, StopJaJa
Timing ClockNeinNein
System ExclusiveNeinNein
NRPN und RPNNeinNein, es sendet einzelne Nachrichten

Zwei Einzelheiten bringen Leute ins Stolpern. Tasten sind nicht anschlagdynamisch, also spielt jede MIDI-Note-Ausgabe mit der in ihrer Zeile eingestellten Velocity, von 1 bis 127, und ein Trigger auf CC 11 ist der Weg zu Dynamik. Und ein Regler im Modus Switch löst aus, sobald der Wert die Hälfte überschreitet, wodurch ein Sustain-Pedal zu einem Ein-Aus-Schalter wird.

Der Live Visualizer von InputConfig in der MIDI-Ansicht mit dem Preset MIDI: Knob Deck, mit einer Tastatur, Reglern und den letzten Nachrichten.
Figure 1. Der Live Visualizer benennt jeden Regler nach seiner CC-Nummer, sodass CC 7, 10, 64, 71 und 1 hier direkt aus der Tabelle oben abzulesen sind.
Der Editor von InputConfig mit Steuerkreuz-Zeilen, die jeweils einen Program Change senden, eine davon mit einem Bank Select davor.
Figure 2. CC 0 und Program Change arbeiten zusammen. Steuerkreuz oben sendet mit einem Druck erst Bank Select und dann einen Program Change.

Sendet ein Bedienelement eine Note, einen CC, Pitch Bend oder einen Program Change, kann InputConfig es belegen. MIDI zu Tastendruck und MIDI-Ausgabe behandeln die Einrichtung.

Wenn eine Nachricht nicht ist, was du erwartet hast

Die meisten Überraschungen kommen von der Zählweise, nicht von defekter Hardware. Steige diese Leiter hoch, mit dem kleinsten Schritt zuerst:

  1. Prüfe die Kanalzählung. Das Byte sagt 0 bis 15 und die App sagt 1 bis 16. Ein Gerät auf Kanal 10 sendet 99 für ein Note On.
  2. Prüfe die Programmzählung. Die Nachricht trägt 0 bis 127, und viele Klanglisten zeigen 1 bis 128, also wird Klang 1 als 0 gesendet.
  3. Prüfe auf ein verstecktes Note Off. Ein Note On mit Velocity 0 beendet die Note, ein Log voller Note Ons kann also trotzdem Tasten loslassen.
  4. Dekodiere die rohen Bytes. Füge sie in den MIDI-Nachrichten-Decoder ein oder sieh ihnen im MIDI-Tester beim Ankommen zu.

Ein Versatz um eins ist der häufigste MIDI-Fehler überhaupt.

Bei einer Nachricht tiefer einsteigen

Jede Seite hier nimmt eine Zeile der Tabellen und erklärt sie mit Beispielen. Bist du ganz neu dabei, beginne mit Was ist MIDI.

Die Kurzfassung

  • Erst der Status. Ein Byte ab 80 hex beginnt eine Nachricht, und die Bytes danach sind Werte von 0 bis 127.
  • Kanalnachrichten. 80 bis EF, mit dem Kanal in der letzten Ziffer.
  • Systemnachrichten. F0 bis FF, ohne Kanal: SysEx, Clock, Start, Stop und der Rest.
  • Große Zahlen. Zwei Datenbytes ergeben 0 bis 16383, wie bei Pitch Bend.

Lies die erste Ziffer des Statusbytes, und du weißt, was für eine Nachricht es ist.

Fragen

Wie viele MIDI-Nachrichtentypen gibt es?

MIDI 1.0 hat sieben Kanalnachrichten (Note Off, Note On, polyphoner Druck, Control Change, Program Change, Kanaldruck und Pitch Bend), die Kanalmodus-Nachrichten auf CC 120 bis 127 und die Systemnachrichten von F0 bis FF.

Was ist ein MIDI-Statusbyte?

Das erste Byte einer Nachricht, von 80 bis FF hex. Es sagt, was für eine Nachricht es ist, und bei Kanalnachrichten, auf welchem der 16 Kanäle sie liegt.

Was ist der Unterschied zwischen CC und NRPN?

Ein CC ist eine einzelne Nachricht mit einer Controller-Nummer und einem Wert von 0 bis 127. Ein NRPN wählt mit CC 99 und 98 einen Parameter und setzt ihn mit Data Entry auf CC 6 und 38, eine Änderung braucht also drei oder vier Nachrichten.

Welche MIDI-Nachrichten unterstützt InputConfig?

Es belegt Noten, Control Change, Pitch Bend, Aftertouch, Program Change sowie Start, Continue und Stop und sendet Noten, Control Change, Pitch Bend, Program Change und den Transport. Clock, SysEx und NRPN verarbeitet es nicht.

Ist die MIDI-Clock eine Kanalnachricht?

Nein. Timing Clock, F8, ist eine Systemnachricht in Echtzeit ohne Kanal, die 24 Mal pro Viertelnote gesendet wird.

Mehr auf Deutsch

Ausführliche Anleitungen, auf Englisch

Wer hier schreibt. Ryleigh Newman entwickelt InputConfig und steuert den eigenen Mac jeden Tag mit einem Controller, weil die Hände nicht gut mitmachen. Diese Seite ist aus dem Englischen übersetzt. Die wichtigsten Tasten und Menüs der App erscheinen auf Deutsch, wenn der Mac auf Deutsch eingestellt ist; diese Seite nennt sie so, mit dem englischen Namen in Klammern. Der Rest der App und der Website ist auf Englisch.

Diese Seite in anderen Sprachen: English, Español, Français, Italiano, 日本語, 한국어, Polski, Português, Русский, ไทย, 繁體中文, 简体中文

InputConfig im Mac App Store ladenKostenlos. macOS 14 oder neuer. Kein Konto, nichts verlässt deinen Mac. Open Source auf GitHub.