Free tool · runs in your browser

Pianola — MIDI Player & Visualizer

Drop a MIDI file and watch it play with Synthesia-style falling notes and a built-in synth. Plug in a MIDI keyboard to play along, or route the song to a hardware synth.

🔒 100% private — your files never leave your device

Play any MIDI file, right here

No file handy? Load the built-in demo and press play. Nothing is uploaded.

0:00 0:00
1.00×
75
Loading the built-in demo…

MIDI keyboard (input)

Connect a MIDI keyboard and play the built-in synth. Or click the on-screen piano below.

Hardware synth (output)

Send the song's notes to a connected MIDI device — a hardware synth, a DAW, or anything that listens on MIDI.

How it works

When you drop a MIDI file in, Pianola reads the raw bytes and parses the Standard MIDI File format directly in JavaScript — the header, every track chunk, the variable-length timing, the tempo map, and each note-on and note-off event. It pairs the events into notes, converts ticks to seconds through the tempo changes, and lays them out as a falling-notes piano roll on a canvas. A small Web Audio synth then plays each note on schedule, polyphonically, with a touch of reverb. None of this needs a server, so the file never leaves your device and the player works offline.

How can a browser tab read a MIDI keyboard?

Modern Chromium browsers (Chrome, Edge, Opera) implement the Web MIDI API. With your permission, a web page can list the MIDI devices plugged into your computer and receive their messages in real time. Pianola uses this to let you play the built-in synth from a real keyboard, with the keys lighting up as you play, and to send a song's notes back out to a hardware synth or a DAW. The messages are tiny — three bytes per note — and they go straight between the page and your device. Safari and Firefox do not expose Web MIDI yet, so on those browsers the file player and the on-screen piano still work; the hardware panel just lets you know.

Things to try

Load the demo and slow the tempo down to half speed to read the falling notes. Click the on-screen piano, or tap your computer's keyboard rows to play. If you have a MIDI keyboard, plug it in, tick "Record what I play," improvise for a bit, and save it as a real .mid file you can open in any DAW. Or tick "Route playback to this device" to drive your own synth with the demo.

Is my MIDI file uploaded anywhere?

No. The file is read and played entirely in your browser. It never touches a server, which is why it is instant, private, and works offline.

Can I connect a real MIDI keyboard?

Yes, in Chrome, Edge, or Opera. The Web MIDI API lets the page see your connected devices so you can play along or route playback to hardware. Safari and Firefox can still use the file player and the on-screen piano.

Why does it sound synthesized rather than like a grand piano?

Notes are generated live with oscillators instead of streamed samples, so there is nothing to download and it stays instant. You can route the notes to your own software or hardware instrument over MIDI for any sound you like.

What file types does it open?

Standard MIDI Files — .mid and .midi, format 0 and format 1. It reads tempo changes and multiple tracks.

Is it really free?

Yes. No sign-up, no limits, no watermark.

I build tools like this every day.

Senior full-stack engineer, available for senior or contract work, fully remote. See the rest of the lab or get in touch.