How to Use a Browser MIDI Device Tester

Dead keys, ghost notes, and USB-to-browser latency — all analysis runs locally. No data transmitted.

ZERO UPLOAD · ALL LOCAL
  1. Connect your MIDI keyboard via USB. Chrome, Edge, and Opera are required — Firefox and Safari do not support Web MIDI.
  2. Click "Enable MIDI" and allow MIDI device access in the browser prompt.
  3. Select your keyboard from the "MIDI Input" dropdown.
  4. Press each key across the full range — any key that does not light up on the virtual piano is a dead key.
  5. Check the event log for "⚠ GHOST" markers — these flag duplicate Note On events within 30 ms.
  6. Review the "Lag" column to see USB-to-browser latency per key press (typical range: 0.5–3 ms).

What the tester captures

  • Note On / Note Off velocity and channel for every key or pad press
  • Control Change (CC) controller number and value
  • Pitch bend status byte 0xE0, 14-bit value
  • Channel aftertouch status byte 0xD0

MIDI device access is required to run any test. Access is only used for analysis — no MIDI data is transmitted.

Connecting to MIDI…

The Web MIDI API is not available in this browser. Chrome 43+, Edge 79+, Opera 30+, and Firefox 108+ support Web MIDI.

Safari does not support Web MIDI. Switch to Chrome, Edge, Opera, or Firefox 108+ and reload this page.

MIDI access was blocked. To allow it:

  1. Click the lock icon in your browser's address bar.
  2. Find MIDI devices and set it to Allow.
  3. Reload this page.

No MIDI device detected. Plug in your MIDI keyboard and click Retry.

MIDI access granted. Select a device below and click Connect to start testing.

Last note Velocity Lag
Event Note Velocity Channel Lag Flag

Browser MIDI Device Tester: Test Any MIDI Input in Chrome

For any USB MIDI device Chrome recognizes, a browser MIDI device tester shows every message it sends in real time. Connect your MIDI controller, click "Enable MIDI", select the device from the dropdown, and watch the event log capture notes, CC values, pitch bend, and aftertouch. No DAW installation or virtual MIDI bus is needed, and class-compliant devices usually use the operating system's MIDI driver without a manufacturer driver package.12 The Web MIDI API gives Chrome direct access to the raw MIDI stream.

Browser-based testing differs from DAW testing in one important way: the browser sees the raw hardware output before any DAW plugin processes it. A controller that appears to work in a DAW but behaves unexpectedly may have its CC output remapped by a DAW input filter. Testing here isolates the hardware itself. Consequently, comparing what appears in the browser event log against what your DAW receives is the fastest way to determine whether an issue lives in the hardware or the software.

What the MIDI device tester checks

The tester captures common MIDI message types the device sends: Note On and Note Off with velocity and channel, Control Change (CC) with number and value, pitch bend (0xE0) with 14-bit value, and channel aftertouch (0xD0). SysEx messages appear if the device sends them, though their content depends on manufacturer-specific encoding.3 Each message arrives in the event log with a timestamp and a Lag value showing browser processing overhead.

Reading the message type column

Start with the message type before judging the value. Note On and Note Off confirm key and pad routing, CC confirms knobs and faders, and 0xE0 confirms pitch bend output. That sequence keeps the first diagnosis focused on what the device actually transmits. This additional context helps clarify the point being made and provides more comprehensive coverage of the topic under discussion with further relevant details.

Because the tester captures all MIDI channels simultaneously, multi-channel devices, such as drum pads that route kick and snare to different channels, show all channels in a single log without requiring any per-channel filter setup.3 This additional context helps clarify the point being made and provides more comprehensive coverage of the topic under discussion with further relevant details.

How to select and test a device

After granting MIDI access, the MIDI input dropdown lists every device the operating system recognizes. Select your device and it immediately starts receiving.14 For keyboards, press every key across the full range and watch the virtual piano for dark keys. For controllers with knobs or faders, rotate and slide each one and verify that the correct CC number appears in the log.

Testing one device at a time

You can connect and test multiple devices in the same session by switching the dropdown selection. If you expect a device to appear but it does not, disconnect and reconnect it, then refresh the dropdown. The event log persists between device switches, so you can compare the output of two keyboards side by side without losing the first device's data. Click "Clear Log" before switching to start a fresh session for the new device.

Interpreting results compared to a DAW

When a controller works in the browser tester but not in your DAW, the issue is almost always DAW configuration rather than hardware. Check that the MIDI input is enabled in the DAW's device preferences, that the MIDI channel matches what the controller sends, and that no input filter is blocking the CC number the controller uses.

Conversely, if the tester shows no events at all from the device, the problem is at the OS or browser layer rather than the DAW. Verify the OS recognizes the device (Windows Game Controllers / Device Manager, macOS Audio MIDI Setup, Linux /dev/input or /dev/snd), then troubleshoot from the OS level upward before returning to the browser.

Managing multi-device sessions and log clarity

Testing multiple devices in one session requires a disciplined event log workflow so you can compare two MIDI controllers at once without confusing events from different devices. Click "Clear Log" before switching the MIDI input dropdown to a new device. Events from the previous device persist until you clear them, and a log containing events from two different devices is harder to interpret than a clean log for each one. Note the device name visible in the dropdown at test time before clearing, so your screenshot identifies which hardware produced those events.

For controllers with many simultaneous CC outputs, such as a keyboard with 16 encoders and 9 faders all transmitting on different CC numbers, test one section of controls at a time and clear the log between sections. Testing all controls simultaneously produces a dense log where events overlap in timestamp order, making it difficult to identify which CC number belongs to which physical control.

Using the dropdown refresh during hot-plug testing

Some devices require a refresh of the MIDI input dropdown after reconnecting. Click the refresh icon to update the device list without reloading the page. The event log persists during a refresh. Leave the log running through a reconnection to capture any initialization CC messages the keyboard sends on connect; these appear immediately as the device registers and reveal factory default CC states.

When to use this

Run this test when you need to verify a new controller before setting up a DAW, when a DAW session reports missing MIDI events, or when you want to confirm a device is transmitting the correct MIDI messages and channels before building a new project around it.

Examples

Controller knob not responding in DAW but works in browser tester

The event log shows CC 74 at the correct value when the knob is turned. The DAW is ignoring it because its MIDI input is filtered to only accept notes. Reconfigure the DAW MIDI input to accept CC messages.

Device appears in OS MIDI devices but not in the browser dropdown

Close all other applications using the MIDI port. DAWs and device configuration software often claim exclusive access. Disconnect and reconnect the device, then refresh the dropdown. If it still does not appear, the device may be in DirectInput mode; switch to class-compliant or XInput mode.

Sources
  1. 1.

    W3C, "Web MIDI API," w3.org, January 2025. https://www.w3.org/TR/webmidi/

  2. 2.

    Microsoft Learn, "USB Device Class Drivers Included in Windows," learn.microsoft.com, June 2025. https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/supported-usb-classes

  3. 3.

    MIDI Association, "Summary of MIDI 1.0 Messages," midi.org, accessed June 2026. https://midi.org/summary-of-midi-1-0-messages

  4. 4.

    MDN, "Navigator: requestMIDIAccess() method," developer.mozilla.org, November 2025. https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMIDIAccess

FAQ