Use the free tool below: your data never leaves your browser — all work happens on your device, and nothing is uploaded to any server.
What is inside a MIDI file?
A MIDI file contains no sound at all. That surprises many people the first time they hear it. An audio file, such as a WAV or MP3, stores recorded sound waves: thousands of samples per second of actual air pressure. A MIDI file stores instructions instead: play this note, this hard, at this time, on this instrument, then stop it. When a player or DAW opens the file, it follows those instructions and creates sound from its own instruments. Change the instrument, and the same file sounds completely different.
That is why a MIDI file is tiny compared with an audio recording of the same music, and why it can be edited note by note. It is also why an audio analyzer cannot tell you anything useful about a MIDI file. An audio analyzer measures waveforms, peaks and loudness. A MIDI file has no waveform to measure. What it has is tracks, notes, tempos and instrument choices, and those are exactly what this analyzer reads, using a real parser that runs entirely in your browser.
How to use the analyzer
Choose a Standard MIDI File from your device, ending in .mid or .midi. The file is read locally in your browser and never uploaded to any server, so your music stays private. The tool reports the file format, the number of tracks, the ticks per quarter note, the total note count, the duration in seconds, the pitch range from lowest to highest note, the tempo or tempos, and the MIDI programs used, grouped by their General MIDI families.
If you have no MIDI file handy, press the sample button. It builds a tiny one-note MIDI file in the browser and analyzes it, so you can see the report format at once. The track table lists each track by name, where the file provides one, and its note count. Tracks without names show a plain number. You can download the report as a text summary for your own notes, for example when cataloguing a library of MIDI files or checking a file a collaborator sent you.
How the parser works, in plain words
A Standard MIDI File starts with a header chunk, marked MThd, which states the format, the number of tracks, and the timing division: how many ticks make up one quarter note. Common divisions are 480 or 960 ticks. Each track is a chunk marked MTrk, holding a sequence of events. Each event starts with a delta time, the number of ticks to wait since the previous event, stored in a variable-length format that uses seven bits per byte.
After the delta time comes the event itself. Note-on events carry a channel, a pitch number from 0 to 127, and a velocity. Note-off events, or note-on events with velocity zero, end a note. Program change events select an instrument. Meta events carry tempo, time signature, track names and the end-of-track marker. Tempo is stored as microseconds per quarter note, so beats per minute is 60 million divided by that number. The parser walks every event in every track, counts notes, records the lowest and highest pitch, collects tempos and programs, and then converts ticks to seconds using the tempo map.
A worked example
Imagine a file with one track, a division of 480 ticks per quarter note, one tempo event of 500,000 microseconds, and a single middle C, note 60, lasting 480 ticks. Five hundred thousand microseconds is half a second per quarter note, which is 120 beats per minute. The note lasts 480 ticks, which is one quarter note, so it lasts half a second. The analyzer reports one note, pitch range C4 to C4, duration 0.50 seconds, tempo 120 beats per minute, and one track. The sample button produces exactly this file, so you can verify the arithmetic yourself.
A real song file is larger but follows the same logic. A file with 2,000 notes, three tracks named Drums, Bass and Piano, two tempo changes and programs 0, 33 and 24 would report those facts directly: drums, bass and piano families, the tempo list in tick order, and the full pitch range across all tracks. If the duration looks wrong, a missing or unusual tempo event is the usual cause, because without tempo information the parser must assume the standard 120 beats per minute.
Limits to keep in mind
This analyzer reads Standard MIDI Files, formats 0 and 1, which cover almost every .mid file in circulation. Format 2, with independent patterns, is rare and may report less cleanly. The tool does not play the file, because playback needs an instrument library, and it does not read proprietary extensions that some programs store outside the standard events. It also reports what the file says, not what a player will do with it: a player may ignore some controllers, remap drums, or substitute instruments.
Pitch numbers follow the usual convention where middle C is note 60, shown as C4. Some programs label the same note C3 or C5, because octave numbering differs between makers. The pitch number itself never changes, so compare numbers, not octave labels, when checking files between programs. Finally, note counts count note-on events with velocity above zero. A file that uses note-on with velocity zero for note-offs, which is common, is handled correctly and those events are not counted as new notes.
Related calculators
- Spanish version
- MIDI Velocity Curve Tool – Shape How Hard Hits Map to Volume
- Cue Sheet Generator – Tracklists with Timestamps to a Printable Cue Sheet
