No Login Data Private Local Save

Web MIDI Monitor - Online View Raw MIDI Messages

8
0
0
0

Web MIDI Monitor

No device connected

View raw MIDI messages in real-time from your connected MIDI devices.

Total 0 Notes 0 CC 0 Sys 0

Waiting for MIDI messages...

Connect a MIDI device and start playing to see raw messages here.

Note On Note Off Control Change Program Change Pitch Bend Aftertouch System — Message type legend

Frequently Asked Questions

MIDI (Musical Instrument Digital Interface) is a technical standard that allows electronic musical instruments, computers, and other devices to communicate. Instead of transmitting audio, MIDI sends event messages—digital instructions like "play note C4 at velocity 100" or "change to program 42." Each MIDI message consists of a status byte (identifying the message type and channel) followed by one or two data bytes. This monitor displays those raw hexadecimal bytes in real-time.

The Web MIDI API is a browser-based interface that allows web applications to interact with MIDI devices connected to your computer. It provides JavaScript access to enumerate MIDI ports, send and receive MIDI messages, and handle device connections/disconnections. The API is supported in Google Chrome, Microsoft Edge, and Opera (version 43+), and partially in Firefox. It requires a secure context (HTTPS or localhost) to function.

This tool works best on Google Chrome 43+ and Microsoft Edge 79+ on desktop (Windows, macOS, Linux). Opera also supports Web MIDI. Firefox has partial support (may require enabling a flag). Safari and mobile browsers (iOS, Android) currently do not support the Web MIDI API. For the best experience, use Chrome or Edge on a desktop computer with your MIDI device connected via USB or a MIDI interface.

  1. Connect your MIDI keyboard, controller, or interface to your computer via USB (or traditional MIDI DIN cable through an interface).
  2. Ensure the device is powered on and recognized by your operating system.
  3. Click the Refresh button (sync icon) on this page to scan for available devices.
  4. Select your device from the dropdown menu.
  5. Click Connect. Once connected, the status indicator turns green.
  6. Play notes, turn knobs, or send any MIDI data—messages will appear instantly in the log.

Each MIDI message starts with a status byte (value 0x80–0xFF), followed by 0–2 data bytes (0x00–0x7F):

  • 0x90 3C 64 = Note On, Channel 1, Note C4 (60), Velocity 100
  • 0x80 3C 40 = Note Off, Channel 1, Note C4, Release velocity 64
  • 0xB0 07 7F = CC Volume (controller 7), Channel 1, Value 127
  • 0xE0 00 40 = Pitch Bend, Channel 1, centered (value 8192)

The high nibble (first hex digit) of the status byte indicates message type; the low nibble (0–F) is the MIDI channel (displayed as 1–16).

TypeStatus Byte RangeData BytesDescription
Note On0x90–0x9F2Note number (0–127), Velocity (1–127; 0 = Note Off)
Note Off0x80–0x8F2Note number, Release velocity
Control Change0xB0–0xBF2Controller number (0–127), Value (0–127)
Program Change0xC0–0xCF1Program/patch number (0–127)
Pitch Bend0xE0–0xEF2LSB + MSB → 14-bit value (0–16383, center=8192)
Channel Aftertouch0xD0–0xDF1Pressure value (0–127)
Poly Aftertouch0xA0–0xAF2Note number, Pressure value
System Messages0xF0–0xFFVariesClock, Start/Stop, SysEx, Active Sensing, etc.

SysEx (System Exclusive) messages are manufacturer-specific MIDI messages used for device configuration, firmware updates, patch dumps, and proprietary communication. They start with 0xF0 and end with 0xF7, with variable-length data in between. Due to security concerns (potential for device manipulation), browsers require explicit user permission to receive SysEx messages. Check the "Allow SysEx" box before connecting if you need to monitor these messages. Note that some browsers may still block SysEx even with the flag enabled.

Common reasons your MIDI device may not appear:

  • Not plugged in — Check USB connection and power.
  • Driver issues — Some devices need manufacturer drivers installed.
  • Device in use — Another application (DAW, synth) may have exclusive access. Close other MIDI apps.
  • Browser permission — Ensure you've granted MIDI access when prompted by the browser.
  • Non-secure context — Web MIDI requires HTTPS or localhost. If using HTTP, try http://localhost.
  • Unsupported browser — Switch to Chrome or Edge on desktop.
  • Try clicking the Refresh button and reconnecting the device physically.

Click the Export Log button to download the current message log as a .txt file. The export includes timestamps, message types, MIDI channels, raw hexadecimal bytes, and human-readable descriptions—perfect for debugging, documentation, or sharing with collaborators. The log captures up to 500 messages in the browser; older messages are automatically trimmed.

MIDI Channels: A single MIDI cable can carry 16 independent channels (1–16). Each channel can control a different instrument or sound. The channel is encoded in the low nibble of the status byte (bits 0–3). For example, 0x90 = Note On Channel 1, 0x91 = Note On Channel 2, etc.

Running Status: To reduce data overhead, MIDI allows omitting the status byte when consecutive messages share the same type and channel. The Web MIDI API typically reconstructs full messages, so you'll always see complete status bytes in this monitor—no need to track running status manually.