Chris Collins

Tools · music

MIDI monitor, controller and step sequencer

Watch every message on your MIDI ports decoded (notes, controllers, programs, pitch bend, clock and BPM, MTC, SysEx with the maker's name and identity replies), play a keyboard with wheels and assignable sliders, send raw bytes and SysEx files, and program a 16-step drum or melodic sequencer — with a built-in synth when there's no device.

Added

How to use it

A MIDI toolbox for the bench: plug in a keyboard, a synth, a drum machine or a USB-MIDI interface and see exactly what it sends, then send things back. It talks to your devices through Web MIDI, straight from the page. Without a device — or in a browser without Web MIDI — the keyboard and the sequencer play a small synth and drum kit built from Web Audio, so you can still try everything.

How to use it

  1. Press Connect MIDI and allow access. Every input and output appears with a tick box: inputs are monitored, and what you play goes to the ticked outputs and, if Built-in synth is ticked, to the synth as well. Plug a device in or pull it out and the lists update by themselves.

  2. Allow SysEx asks the browser again, this time for System Exclusive. You only need it to send or receive SysEx (patch dumps, identity requests, firmware-style messages); the browser asks separately because SysEx can change a device’s settings.

  3. Panic sends All Sound Off, All Notes Off and Reset All Controllers on all 16 channels — for the stuck note that every MIDI session eventually has.

Monitor

Each message gets a line: the time, the port, the channel, the raw bytes and what they mean — note names (middle C is C4 here; switch to C3 for Yamaha and Ableton numbering), controller names (CC 7 Volume, CC 64 Sustain Pedal, CC 74 Cutoff…), program changes with their General MIDI instrument, drum names on channel 10, pitch bend as a signed value with its size in cents, aftertouch, song position as bar, beat and 16th, and MTC quarter frames, which are put back together into a time code. SysEx shows the maker from its manufacturer ID and spells out the Universal messages: an identity reply gives the maker, family, model and firmware version. A running clock shows its tempo.

Filter by channel, hide the 24-a-beat clock and active sensing, pause, switch between time since the first message and the time of day, and copy or export the log. Record SysEx dump collects every SysEx that comes in (start it, then trigger the dump on the device) and Save .syx writes them to a file.

Keyboard and controls

Play the keyboard with the mouse or a finger (slide across it for a glissando), or with the computer keys A W S E D F T G Y H U J K O L P ; — Z and X move an octave, C and V change the velocity. Notes that come in from a device light up green. Choose the channel, send a program change from the GM list with an optional bank, move the pitch-bend wheel (it springs back to the middle) and the mod wheel, and use eight sliders that you can point at any controller. Raw bytes sends hex you type (running status is allowed: 90 3C 64 3E 64 is two notes), and the SysEx box sends hex or a .syx file; Identity request asks the device to say what it is.

Step sequencer

Sixteen steps by eight rows. Drums puts every row on channel 10 with General MIDI drum sounds (kick, snare, hats, clap, toms, crash); Melodic fills the rows from a scale and root note. Each row has its own note and channel (under Rows), each step its own velocity: click to turn a step on, or switch to Velocity and click to step through four levels or roll the mouse wheel over it. Set the tempo, swing (50 % is straight, 66 % a triplet shuffle), the pattern’s length and the gate (how long each note sounds).

Notes are sent ahead of time with timestamps — the page looks 100 ms ahead every 25 ms — so the timing comes from the browser’s MIDI scheduler, not from the page’s event loop. Send MIDI clock sends 24 clocks a beat with Start and Stop, so a drum machine or DAW can follow. Follow MIDI clock does the opposite: Start, Stop, Continue and Song Position from an input drive the sequencer, six clocks a step, and Arm plays on the next clock when the other end never sends Start.

Patterns are saved by name in this browser; the share link carries the current one.

Browser support

Web MIDI works in Chrome, Edge and Opera on Mac, Windows, Linux, ChromeOS and Android. Firefox has it too, but asks you to allow it for the site first. Safari and every browser on iPhone and iPad don’t have Web MIDI: there the tool says so and the keyboard and sequencer play the built-in synth. The sequencer keeps time while its tab is in front; browsers slow background tabs' timers, so keep it visible while it plays.

Privacy

Everything happens in the page. MIDI goes between the browser and your devices; nothing is sent to this site or anywhere else. Port choices, slider assignments and saved patterns stay in this browser’s storage, and a share link carries only the sequencer pattern.

Runs entirely in your browser; nothing you type leaves this page.