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.
| Time | Device | Ch | Message | Data 1 | Data 2 | Raw |
|---|---|---|---|---|---|---|
| Waiting for MIDI. Play a note or move a control on your device. | ||||||
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.
- Time — arrival time, taken from the browser's high-resolution timer, in minutes:seconds.milliseconds since the page loaded.
- Device — which input port the message came from. Useful when several controllers are connected at once.
- Ch — the MIDI channel, 1 to 16. Note that the wire format numbers channels 0 to 15; this table shows the 1-to-16 form that DAWs display, so the two can differ by one when you compare against a hex dump.
- Message — the decoded message type: Note On, Note Off, Control Change, Pitch Bend, Program Change, Channel or Poly Aftertouch, or a System message.
- Data 1 / Data 2 — the two data bytes, decoded for readability. For a note message Data 1 is the note number with its name and Data 2 is velocity. For Control Change, Data 1 is the CC number and Data 2 is its value. For Pitch Bend the two bytes are combined into a single 14-bit value, which is why bend shows one number from 0 to 16383 with 8192 as centre.
- Raw — the untouched bytes in hexadecimal, exactly as they arrived. This is the column to quote when you are reporting a bug or comparing against a device's MIDI implementation chart.
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.
- 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.
- 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.
- 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://localhostcounts as secure and any other plain-HTTP address does not. - 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.
- 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.
- 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.
- 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
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