How to use it
- Connect your MIDI keyboard, usually with a USB cable.
- Click Request MIDI access and allow it.
- Press keys, move the wheels and press the pedal.
- Watch the keyboard, the meters and the message log.
What the test shows
After you allow MIDI access you get a live view of everything your controller sends:
- Inputs: each connected MIDI input with its name, manufacturer, state and port status. The list updates automatically when you plug a device in or out.
- Keys: pressed keys light up on an on-screen keyboard, shaded by how hard you hit them.
- Velocity: the last note's velocity (1–127) with a meter, plus the highest velocity so far.
- Counters: total key presses, how many different keys you've pressed, and how many are held right now.
- Controls: sustain pedal up or down, mod wheel position and pitch bend value.
- Message log: the last 200 messages, decoded into plain English with the channel number and the raw bytes in hex.
How to check every key
Choose the keyboard size that matches your instrument: 25, 37, 49, 61, 76 or 88 keys. Then play every key from bottom to top. The different keys counter should reach the number of keys on your keyboard. If a key never lights up, or a note shows up that you didn't press, that key or its contact strip may need cleaning or repair.
To check velocity, play one key softly, then hard. A healthy keyboard sends a wide range, typically from below 20 to over 110. If every press reads about the same, check the velocity curve setting on the keyboard itself. Notes pressed outside the visible range are listed below the keyboard so nothing gets missed.
Reading the message log
Each line shows the time, the MIDI channel, the message type and its details:
| Message | What it means |
|---|---|
| Note On / Note Off | A key was pressed or released, with the note name and velocity |
| Control Change (CC) | A knob, slider, wheel or pedal moved. CC 1 is the mod wheel, CC 64 the sustain pedal, CC 7 volume |
| Pitch Bend | The pitch wheel moved; 0 is the center |
| Program Change | A preset or sound was selected |
| Aftertouch | Pressure applied after the key was pressed |
| Timing Clock | Tempo sync, 24 per quarter note |
Timing Clock and Active Sensing messages can flood the log, so they're hidden by default; uncheck the option to see them. When a clock is received, the test also estimates its tempo in BPM. Pause freezes the log, Clear resets everything, and Sound lets you hear the notes.
Browser support and troubleshooting
The test uses the Web MIDI API, which works in desktop Chrome, Edge, Opera and Firefox, and in Chrome on Android. Safari and every browser on iPhone and iPad don't support Web MIDI.
If nothing shows up:
- Make sure the page is opened over https and you allowed MIDI access (check the icon next to the address bar).
- Close other programs that use the keyboard, such as a DAW; on Windows, some drivers allow only one app at a time.
- Try another USB cable or port, and avoid unpowered hubs.
- Bluetooth MIDI devices must be paired in your operating system first.
Everything runs in your browser; no MIDI data is sent anywhere. To actually play music with your controller, try the online piano.
Frequently asked questions
How do I test if my MIDI keyboard is working?
Connect it, click Request MIDI access, and play. Each key should light up on the screen and appear in the message log as Note On and Note Off.
Why doesn't my browser detect my MIDI keyboard?
Web MIDI only works in Chrome, Edge, Opera and Firefox on desktop and Chrome on Android. Also check that no other program is using the device and that you allowed access.
Can I test the sustain pedal and pitch wheel?
Yes. The sustain pedal shows as down or up (CC 64), the mod wheel as CC 1, and pitch bend as a value from −8192 to +8191.
What is a good velocity range?
Most keyboards send values from around 10 to 127. If soft and hard presses give nearly the same number, adjust the velocity curve in your keyboard's settings.
Does it work on iPhone or iPad?
No. iOS browsers don't support Web MIDI. Use a computer or an Android phone with Chrome.
Last updated: November 12, 2026