midi-spy · v1.0

MidiSpy Handbuch

MIDI-Monitor im Browser: jede eingehende MIDI-Nachricht als HEX und binär, mit Filtern pro Nachrichtentyp und Mute pro Port. Läuft lokal in Chrome oder Edge.

Erste Schritte

MidiSpy ist ein MIDI-Monitor, der in deinem Browser läuft. Er zeigt jede Nachricht, die deine MIDI-Geräte senden, Byte für Byte als HEX und binär. Das ganze Tool ist eine einzige HTML-Datei: keine Installation, kein Server, keine Internetverbindung.

Voraussetzungen

  • Google Chrome, Microsoft Edge oder Opera auf einem Desktop-Rechner. MidiSpy nutzt die Web MIDI API, die Safari und Firefox nicht anbieten.
  • Mindestens ein MIDI-Eingang, den dein Betriebssystem erkennt: ein USB-MIDI-Gerät, ein MIDI-Interface oder ein virtueller Port (IAC-Treiber auf macOS, loopMIDI auf Windows).

Installation

  1. Lade das ZIP von der MidiSpy-Download-Seite herunter und entpacke es.
  2. Öffne MidiSpy.html in Chrome oder Edge. Doppelklick auf die Datei, oder zieh sie in ein Browserfenster.
  3. Der Browser fragt nach der Erlaubnis, deine MIDI-Geräte zu verwenden. Klicke auf Zulassen.

Warum schreibt Chrome „steuern und neu programmieren”? MidiSpy fordert den MIDI-Zugriff mit SysEx an, weil der Browser sonst alle SysEx-Nachrichten ausblendet. Chrome formuliert diese Berechtigung sehr weit. MidiSpy hört nur zu und sendet kein einziges Byte an deine Geräte.

Erste Verwendung

  1. Schau in die Gruppe Ports in der Steuerleiste. Jeder MIDI-Eingang, den dein System kennt, erscheint dort mit einer Checkbox.
  2. Drück eine Taste oder dreh einen Regler an deinem Gerät. Oben im Log erscheint eine neue Zeile.
  3. Lies die Zeile von links nach rechts: Port-Name, die Nachricht als HEX, dieselbe Nachricht binär.

Das Log lesen

Jede MIDI-Nachricht ist eine Zeile. Die neueste Nachricht steht immer ganz oben.

Sub 37   HEX: 90 3C 64 | BIN: 10010000 00111100 01100100
ElementBedeutung
Port-TagName des MIDI-Eingangs, von dem die Nachricht kommt
HEXDie Bytes der Nachricht hexadezimal, pro Byte eingefärbt
BINDieselben Bytes binär, abgedunkelt

Farbcodierung

Die Farben gelten pro Byte, nicht pro Zeile.

FarbeGilt für
AmberDas Status-Byte einer Channel-Nachricht (erstes Byte)
CyanDie Daten-Bytes danach
ViolettJedes Byte einer System-Nachricht: SysEx, Clock, Start, Stop, Active Sensing

Im Beispiel oben ist 90 amber, 3C 64 ist cyan.

Das Status-Byte entschlüsseln

Die erste HEX-Ziffer des Status-Bytes ist der Nachrichtentyp, die zweite der Kanal. Die Kanal-Ziffer zählt ab null: 0 ist Kanal 1, F ist Kanal 16.

StatusNachrichtDaten-Bytes
8nNote OffNotennummer, Release-Velocity
9nNote OnNotennummer, Velocity
AnPolyphonic AftertouchNotennummer, Druck
BnControl ChangeController-Nummer, Wert
CnProgram ChangeProgrammnummer
DnChannel AftertouchDruck
EnPitch BendLSB, MSB

Beispiele

HEXBedeutung
90 3C 64Note On, Kanal 1, Note 60 (mittleres C), Velocity 100
80 3C 40Note Off, Kanal 1, Note 60
90 3C 00Note On mit Velocity 0. Viele Keyboards senden das anstelle eines Note Off.
B0 01 40CC 1 (Mod Wheel), Kanal 1, Wert 64
B2 07 64CC 7 (Volume), Kanal 3, Wert 100
C0 05Program Change, Kanal 1, Programm 5 (auf Geräten, die ab 1 zählen, als 6 angezeigt)
E0 00 40Pitch Bend, Kanal 1, Mittelstellung
F0 … F7SysEx-Nachricht, variable Länge
F8MIDI-Clock-Impuls
FA / FCStart / Stop

Den Hintergrund zu Bits und Status-Bytes findest du in MIDI-Nachrichten verstehen: Von Bits und Bytes zur Musik.


Filter

Die Checkboxen in der Gruppe Filter legen fest, welche Nachrichtentypen ins Log kommen.

CheckboxNachrichtentypStatus-ByteStandard
NoteNote On / Note Off80–9Fan
CCControl ChangeB0–BFan
ProgProgram ChangeC0–CFan
PitchPitch BendE0–EFan
SysExSystem ExclusiveF0an
ClockMIDI ClockF8aus

Ein Filter greift in dem Moment, in dem die Nachricht ankommt. Gefilterte Nachrichten werden verworfen, nicht ausgeblendet. Schaltest du den Filter wieder ein, kommen sie deshalb nicht zurück.

Clock ist aus gutem Grund standardmäßig aus. MIDI Clock sendet 24 Impulse pro Viertelnote. Bei 120 BPM sind das 48 Zeilen pro Sekunde, und alles andere ist nach rund drei Sekunden aus dem 150-Zeilen-Log verdrängt.

Aftertouch (An, Dn) und die System-Nachrichten neben SysEx und Clock (Start, Stop, Continue, Song Position, MTC, Active Sensing) haben in Version 1.0 keine Checkbox. Sie werden immer angezeigt.


Ports

Die Gruppe Ports listet jeden MIDI-Eingang mit einer Checkbox.

  • Angehakt: Nachrichten von diesem Port landen im Log.
  • Nicht angehakt: Der Port ist stumm, seine Nachrichten werden ignoriert.

Steckst du ein Gerät an oder ab, während MidiSpy offen ist, aktualisiert sich die Liste von selbst. Filter- und Port-Einstellungen werden nicht gespeichert: Nach dem Neuladen der Seite gelten wieder die Standardwerte.

Clear Log leert das Log. Die MIDI-Verbindung bleibt offen, das Monitoring läuft weiter.


Grenzen von Version 1.0

  • Das Log behält die 150 neuesten Zeilen. Ältere Zeilen fallen raus, damit der Browser auch bei viel MIDI-Verkehr schnell bleibt.
  • MidiSpy überwacht nur MIDI-Eingänge. Es gibt keinen MIDI-Ausgang und kein Thru.
  • Die Log-Zeilen haben keinen Zeitstempel.
  • Die Bytes werden roh angezeigt. MidiSpy übersetzt sie nicht in Notennamen oder Controller-Namen und interpretiert kein herstellerspezifisches SysEx.
  • Das Log lässt sich nicht exportieren. Markiere die Zeilen und kopiere sie, wenn du sie aufheben willst.

Datenschutz

MidiSpy stellt keine Netzwerk-Anfragen. Alle MIDI-Daten werden in deinem Browser-Tab verarbeitet und sind weg, sobald du ihn schließt oder neu lädst. Nichts wird gespeichert, nichts wird übertragen.


Hotkeys

MidiSpy hat keine Tastaturbefehle. Alle Bedienelemente liegen in der Steuerleiste.

BedienelementFunktion
Clear LogLog leeren. Das Monitoring läuft weiter.
Filter-CheckboxenEinen Nachrichtentyp anzeigen oder verwerfen
Ports-CheckboxenEinen einzelnen MIDI-Eingang abhören oder stummschalten

Glossar

Status-Byte Das erste Byte einer MIDI-Nachricht, immer 80 oder höher. Es benennt den Nachrichtentyp und bei Channel-Nachrichten den Kanal.

Daten-Byte Die Bytes nach dem Status-Byte, immer zwischen 00 und 7F (0–127). Ihre Bedeutung hängt vom Nachrichtentyp ab: Notennummer und Velocity, Controller-Nummer und Wert und so weiter.

Kanal MIDI adressiert 16 Kanäle pro Port. Die zweite HEX-Ziffer des Status-Bytes enthält den Kanal, gezählt ab null.

Control Change (CC) Der Nachrichtentyp für Regler, Fader, Pedale und Wheels. Das erste Daten-Byte ist die Controller-Nummer, das zweite ihr Wert.

SysEx System Exclusive: herstellerspezifische Daten beliebiger Länge, eingerahmt von F0 und F7. Wird für Patch-Dumps und Geräteeinstellungen verwendet.

MIDI Clock Ein Timing-Impuls (F8), den eine DAW oder ein Gerät als Tempo-Master 24-mal pro Viertelnote sendet.

Active Sensing Ein Keep-alive-Byte (FE), das manche Geräte im Leerlauf etwa dreimal pro Sekunde senden.

Web MIDI API Die Browser-Schnittstelle, über die eine Webseite auf die MIDI-Geräte deines Betriebssystems zugreift. Verfügbar in Chrome, Edge und Opera.

Virtueller Port Ein Software-MIDI-Port, der zwei Programme auf demselben Rechner verbindet, zum Beispiel der IAC-Treiber auf macOS.


Fehlerbehebung

Im Log steht „Error: MIDI access denied.” Der Browser hat den MIDI-Zugriff für die Seite blockiert. Klicke auf das Symbol ganz links in der Adressleiste, öffne die Website-Einstellungen, stell MIDI auf Zulassen und lade die Seite neu.

Die Seite bleibt leer: keine Ports, keine Fehlermeldung. Dein Browser hat keine Web MIDI API. Das ist bei Safari und Firefox so, und MidiSpy kann dort keine Meldung anzeigen. Öffne MidiSpy.html in Chrome oder Edge.

Mein Gerät steht nicht unter Ports. MidiSpy sieht genau das, was dein Betriebssystem sieht. Prüfe, ob das Gerät im Audio-MIDI-Setup (macOS) oder im Geräte-Manager (Windows) auftaucht. Wenn nicht, liegt es am Kabel, am Treiber oder an der Stromversorgung.

Der Port ist gelistet, aber es kommt nichts an. Prüfe, ob die Checkbox des Ports und der Filter für den Nachrichtentyp beide an sind. Auf Windows erlauben viele MIDI-Treiber nur ein Programm pro Port. Hält deine DAW den Port bereits, schließ die DAW oder gib den Port dort frei.

Das Log füllt sich ständig mit FE. Das ist Active Sensing. Version 1.0 hat dafür keinen Filter. Schalte den Port dieses Geräts stumm, oder deaktiviere Active Sensing am Gerät, falls es die Option gibt.

Ich will sehen, was meine DAW sendet. MidiSpy liest MIDI-Eingänge, die DAW braucht also einen Port, an den sie senden kann. Auf macOS öffnest du Audio-MIDI-Setup → MIDI-Studio → IAC-Treiber und aktivierst Gerät ist online. Auf Windows installierst du loopMIDI. Stell diesen Port in deiner DAW als MIDI-Ausgang einer Spur ein, dann erscheint er in MidiSpy unter Ports.


Credits

MidiSpy v1.0 Entwickelt von Palmetshofer Audio — palmetshofer-audio.com

MidiSpy ist kostenlos und wird ohne Gewährleistung bereitgestellt („as is”). Verwendung auf eigenes Risiko.