MIDI file viewer and player
Drop a .mid file here to play it and to see what it holds: its tracks, tempo, time and key signature, a piano roll, and every event written out as text. The file is read in this page and never leaves your computer.
Or drop one anywhere in this box.
Open a file
- You: Choose a .mid file, or drop one onto the box. Try a sample loads a short scale if you have no file to hand.
- The page: Reads the file on your computer and lays it out: a summary, a Play button, a row for every track, a piano roll and the full event list.
- Check: The first line shows the file's name and size.
Nothing is uploaded: the page reads the file where it is.
Play the file
Press Play and the page performs the file, with a line moving across the piano roll. Pause holds your place, Stop goes back to the start, and a click on the piano roll jumps to that moment. Every note uses one plain tone, and channel 10 uses simple drum sounds. It plays the notes and the timing, which is enough to check that a file is the song you think it is. For the real instruments, open the file in a music app such as GarageBand.
Read the summary
- Format. 0 is one track holding every channel. 1 is several tracks that play together. 2, which is rare, is a set of separate patterns.
- Resolution. How many ticks a quarter note is divided into. Every time in the file is counted in ticks.
- Tempo. Written as a tempo event. A file with none plays at 120 BPM.
- Time and key signature. Shown when the file states them. They are labels for people and notation, and they do not change how the notes sound.
- Estimated key. A guess worked out from which pitches sound for longest, for files that state no key or state the wrong one. Drums are left out.
- Length, notes and channels. How long the file runs, how many notes it holds and their range, and which of the 16 channels are used.
If a file plays at the wrong speed somewhere, the tempo line is the first place to look.
Read the event list
| Column | Meaning |
|---|---|
| Time | Minutes and seconds from the start, worked out from the tempo |
| Tick | The same moment in the file's own units |
| Track | Which track the event is in |
| ch | The MIDI channel, 1 to 16. Tempo and other file-wide events have none |
| Event | What happens: a note on or off, a controller value, a program change, a tempo, a name |
Notes only hides everything except note on and note off, and the track menu narrows the list to one track. Each line is one event, in the order a player would perform them.
Know what a MIDI file holds
A MIDI file is a list of instructions with a time on each one. It says play this note this hard on this channel, then let it go. It holds no audio, which is why the same file sounds like a grand piano on one device and a toy on another. A MIDI file is sheet music for machines, not a recording. The Program Change events tell a player which sound to use, and the General MIDI instrument list says which number is which instrument. On channel 10 the notes are drums, and the GM drum map names them.
Turn a MIDI file into text or CSV
Copy all as text puts the summary and every event on the clipboard, and Download as .txt saves the same thing as a file. Download as .csv gives one row for each event, with the time, tick, track, channel, event type, number and value in columns, ready for a spreadsheet or a script. Text is easier to search, to compare between two versions of a song, and to paste into a message when you are asking why a file misbehaves. One event to a line makes two versions of a file easy to compare.
See live MIDI the same way
A file is MIDI that was written down. To watch MIDI as it happens, the MIDI tester lists every message a keyboard or controller sends, and the MIDI message decoder reads raw bytes. InputConfig, the free Mac app I make, sits on the live side: it turns notes, knobs and pedals from a MIDI device into keyboard shortcuts, and sends MIDI from a game controller. The messages in a file and the messages from a keyboard are the same messages.
Questions
What is inside a MIDI file?
Instructions, not sound: which notes to play, when, how hard and on which channel, plus tempo, time signature, track names and controller moves. This viewer lists all of them.
Can I play a MIDI file online here?
Yes. Open the file and press Play. The page plays every note with a plain built-in tone and simple drum sounds, so you hear the notes and the rhythm, not the instruments the file asks for.
Is my MIDI file uploaded?
No. The file is read by the page on your own computer and is never sent anywhere.
How do I convert a MIDI file to text?
Open it here, then press Copy all as text or Download as .txt. Each line is one event with its time, track, channel and meaning.
How do I convert a MIDI file to CSV?
Open it here and press Download as .csv. Each row is one event: time in seconds, tick, track, channel, event type, number and value.
How do I find the key and tempo of a MIDI file?
Open it here. The summary shows the tempo and key signature written in the file, and a key estimated from the notes themselves.
What is the difference between a format 0 and a format 1 MIDI file?
Format 0 keeps everything in one track. Format 1 has several tracks that play together, usually one per instrument, with the tempo in the first.
Why does a MIDI file sound different on each device?
It carries no audio. Each player picks its own sounds for the notes, guided by the Program Change numbers in the file.
What does ticks per quarter note mean?
It is the file's time resolution, often called PPQ: how many steps a quarter note is divided into. Common values are 96, 480 and 960.
Can it open .kar and .rmi files?
Yes. A .kar file is a MIDI file with lyrics, and the viewer shows the lyric events. An .rmi file is a MIDI file in a wrapper, which the viewer looks inside.
Related
Free. macOS 14 or later. No account, nothing leaves your Mac. Open source on GitHub.
Updated