ByteScope

MIDI Tester & Monitor

Plug in a MIDI keyboard or controller and see every note, knob and pedal in real time.

Talks to your MIDI devices locally — nothing leaves your browser.

Connection

Your browser will ask for permission to see MIDI devices. This only happens once per site — after you allow it, every input and output already connected shows up below, and new ones appear the moment you plug them in.

Browser support

The Web MIDI API is a Chromium feature. Firefox and Safari cannot open this tool's device picker at all — this isn't a bug in the page, it's a missing browser API.

FeatureChromeEdgeFirefoxSafari
Basic MIDI in/out (Web MIDI API)Firefox and Safari have never shipped requestMIDIAccess and have no public plan to.
SysEx accessSame permission prompt as basic access, with an extra warning — see the SysEx panel below.
Hot-plug detection (statechange)
Android (Chrome for Android)Works over USB OTG with a class-compliant MIDI device; Edge for Android is Chromium-based but untested here.

Detected in this browser

  • navigator.requestMIDIAccess

On an unsupported browser?

About this tool

This tool connects to any MIDI keyboard, drum pad or controller through the Web MIDI API and decodes every message it sends in real time: raw hex bytes next to a plain-language readout, so you can see exactly what a Note On, Control Change or pitch bend actually looks like on the wire. Nothing is uploaded — the browser talks to your device directly.

Every message type is covered: Note On/Off with velocity, Control Change with a full controller-name table, Program Change, channel and polyphonic aftertouch, 14-bit pitch bend, and the system common/realtime messages a sequencer or drum machine sends for clock sync. A visual keyboard lights up as you play, with velocity shown as color depth, and a controller panel turns incoming CC values into live sliders.

Verify a controller before you buy it — or after a repair

Switch to verification mode, pick your keyboard's size (25/49/61/76/88 keys), and play across the whole range: each key checks itself off the moment it sends a Note On, so a dead key shows up immediately as a gap. The same idea applies to knobs and sliders — sweep each one and the tool tracks whether it actually reached both 0 and 127, catching a control that's stuck or has a narrower range than it should.

SysEx, MIDI file playback, latency and routing

Beyond the monitor, the tool can capture and save a device's SysEx dump for backup, send a SysEx patch back (paste hex or upload a .syx file), load a Standard MIDI File and stream it to an output with tempo control, measure round-trip latency through a loopback or MIDI-thru connection, and forward one input to one output with an optional channel remap.

Frequently asked questions

Do I need to install anything?

No — everything runs through the Web MIDI API built into Chrome and Edge. Firefox and Safari don't implement Web MIDI, so this tool can't open a device picker there; see the support matrix on this page for exactly what each browser supports.

Why does the browser ask for permission twice?

Plain MIDI access (notes, CC, clock) is one permission prompt. SysEx is a separate, stronger permission — a SysEx dump can contain a full patch/settings backup and on some gear can rewrite firmware-level settings, so Chrome asks again only when you turn on the SysEx panel.

Is my MIDI data uploaded anywhere?

No. The Web MIDI API talks directly between your browser and the device; this page never sends what you play, record or load to a server. The message log and any SysEx dumps you save stay in your browser.

Is MIDI note 60 middle C, or C3, or C4?

This tool uses the common convention where MIDI note 60 is C4 (middle C) — the same numbering most DAWs and synth manuals use. A handful of older Roland manuals number middle C as C3 instead; if a patch name looks one octave off from what you expect, that's usually why.

Do the MIDI file player and latency test need real hardware?

Yes. The file player needs an output device to send to, and the latency test needs a loopback — MIDI OUT wired back to MIDI IN, a MIDI-thru box, or a synth with local thru enabled. The monitor, keyboard and controller panel work with any MIDI input the moment it's plugged in, no loopback required.