Tools / Web MIDI Monitor

MIDI monitor online

Plug in a controller and see every MIDI message it sends, decoded live in your browser — notes, CC, pitch bend, program change, with channel, data bytes and raw hex. Nothing is installed and nothing leaves your machine.

Checking browser support… If this message stays here, JavaScript is disabled.

What a MIDI monitor is

A MIDI monitor is a diagnostic tool that shows you the raw message stream travelling from a controller into your computer. It does not make sound. Its entire job is to answer one question that is otherwise surprisingly hard to answer: is this device actually sending what I think it is sending?

That question comes up constantly. A knob does nothing in your DAW, and you cannot tell whether the knob is dead, the cable is dead, the DAW is filtering the channel, or the plugin is simply not listening to that CC number. A monitor collapses that guesswork into a single observation. If messages appear here, the hardware and the connection are fine and the problem is downstream in your DAW or plugin. If nothing appears, the problem is upstream and you can stop rebuilding your session template.

This one runs entirely in the browser on the Web MIDI API. There is no server, no upload and no account: the message stream is read by JavaScript on this page and rendered into the table above. Nothing is transmitted anywhere.

Reading the output

Each row is one MIDI message. The columns follow the structure of the message itself.

One decoding detail is worth knowing because it confuses people regularly: a Note On message with velocity 0 is a Note Off. The MIDI specification permits this so that a stream of notes can use running status, and most keyboards do exactly that. This monitor labels those messages as Note Off and marks them, rather than pretending they are notes that never end.

Clock and Active Sensing are hidden by default. Active Sensing repeats roughly every 300 milliseconds whenever a device supports it, and MIDI Clock arrives 24 times per quarter note while a transport is running. Left visible they bury everything you actually wanted to see. Uncheck the box if you are specifically debugging timing or a device that appears to be dropping its connection.

Troubleshooting: my device does not appear

Work through these in order — the list is roughly ordered by how often each one turns out to be the cause.

  1. Use a browser that implements Web MIDI. Chrome, Edge, Opera and other Chromium-based browsers support it. Safari and every browser on iOS do not, so this page will tell you so rather than appearing broken. Firefox support has historically required explicit permission and has varied by version.
  2. Allow the permission prompt. The browser asks before granting MIDI access. If you dismissed it, reload the page, or clear the site permission in your browser's site settings and try again.
  3. Check the page is on HTTPS. The Web MIDI API is restricted to secure contexts. This page is served over HTTPS, so this only bites if you are running a copy locally — in which case http://localhost counts as secure and any other plain-HTTP address does not.
  4. Close whatever else is holding the port. On Windows in particular, class-compliant MIDI ports are frequently exclusive: if your DAW is open and has the device claimed, the browser cannot also open it. Quit the DAW and reload.
  5. Confirm the device is a MIDI device to the operating system. On macOS, open Audio MIDI Setup and show the MIDI Studio window. On Windows, check Device Manager. If the OS cannot see it, no browser will.
  6. Try a different cable or port. A large share of "dead" USB MIDI devices are charge-only cables. This sounds trivial and is nonetheless a common cause.
  7. For Bluetooth MIDI, pair through the right place. BLE MIDI devices generally do not appear in the normal system Bluetooth list. On macOS you connect them in Audio MIDI Setup's Bluetooth panel; on Windows you use the Bluetooth MIDI settings. Once the OS has them, this page will list them.

If your device appears in the list but no messages arrive when you play, the port is open and the device is silent. Check that you are moving a control that actually transmits, that the device is not in a local-only mode, and that it is not set to a channel your filter is excluding — set the channel filter back to "All channels" to be sure.

Checking a NueCtrl connection

This monitor is a quick way to confirm that NueCtrl on your iPhone is actually reaching your computer before you go looking for problems in your DAW. Connect the phone by Bluetooth, Wi-Fi (RTP-MIDI) or USB as usual, open this page in Chrome or Edge on the computer, and the phone should appear in the MIDI inputs list. Tilt the device: you should see a stream of Control Change messages with the CC number you have assigned to that fader.

If the messages arrive here, the connection is healthy end to end and anything still not working is a mapping problem inside your DAW or plugin — usually the wrong MIDI channel, or a plugin parameter that was never learned to that CC. If nothing arrives, the problem is in the connection itself, and the MIDI connection setup guide walks through each of the three transports. To look up what a particular CC number is supposed to control, use the MIDI CC chart.

Frequently asked questions

Does this MIDI monitor work on Safari or iPhone?
No. Safari and all browsers on iOS do not implement the Web MIDI API, so no web page can read MIDI input there. Use Chrome, Edge or another Chromium-based browser on desktop. This page detects the situation and tells you rather than silently failing.
Is my MIDI data sent to a server?
No. The Web MIDI API delivers messages to JavaScript running on this page, and this page renders them into the table. There is no upload, no account and no storage — reloading the page discards everything.
Why does my keyboard send Note On with velocity 0 instead of Note Off?
The MIDI specification allows a Note On with velocity 0 to mean Note Off, which lets a device use running status and send fewer bytes. It is completely normal. This monitor decodes those messages as Note Off so the log matches what is actually happening.
Why is the channel number different from my DAW?
MIDI encodes channels as 0 to 15 in the status byte, while DAWs and hardware almost always display them as 1 to 16. This monitor shows the 1-to-16 form, so if you decode the raw hex by hand you will find it one lower.
Can I use this to test a Bluetooth MIDI controller?
Yes, provided the operating system has already paired it. BLE MIDI devices usually pair through a dedicated panel rather than the normal Bluetooth list — Audio MIDI Setup on macOS, the Bluetooth MIDI settings on Windows. Once the OS lists the device, it will appear here too.

Turn your iPhone into the controller you are testing

NueCtrl maps motion — tilt and rotation — to MIDI CC in real time, over Bluetooth, Wi-Fi (RTP-MIDI) or USB, into any MIDI-compatible DAW. Save your fader layouts as presets and play your dynamics instead of drawing them.

Download on the App Store