A zero-dependency, single-file web application that displays incoming MIDI messages in real time using the Web MIDI API.
Live scrolling log of all incoming MIDI messages with columns for time, device, type, channel, note/CC, value, and raw hex data. Decodes Note On/Off, CC, Program Change, Pitch Bend, Aftertouch, Channel Pressure, and System messages. Note On with velocity 0 is displayed as Note Off. Includes configurable filters for high-frequency messages like Timing Clock and Active Sensing.
Graphical visualizer for Note On events across channels 1–9 and 11–16. Sixteen horizontal channel lanes, each with a distinct color. Notes appear as animated bubbles positioned by pitch with size scaled by velocity, fading out after 2 seconds.
Dedicated display for MIDI channel 10 (General MIDI percussion). New drum hits appear at the top and scroll downward, showing the GM drum name, note name, MIDI note number, and a velocity bar. Covers the full General MIDI drum map (notes 27–87).
Visual metronome with adjustable BPM and time signature. Beat indicators light up in sequence, with accent on the downbeat.
Drum training mode to practice your timing. Hit the drums along with the beat and get scored on your accuracy.
Strike each drum or key to see velocity statistics including minimum, maximum, and average values. Useful for checking the dynamic range and consistency of your MIDI controller.
No build step, no server, no dependencies required. Devices are detected automatically — plug or unplug MIDI devices without refreshing.
The Web MIDI API is only available in Chromium-based browsers: