MIDI File Analyzer

Inspect .mid / .midi files: tempo, time signature, tracks, instruments (General MIDI names), and note statistics. For musicians, game developers, and audio engineers.

1.0.0
Version
Auth
Batch

About MIDI File Analyzer

MIDI files are mysterious until you crack one open. You download a practice arrangement, a game-soundtrack mod, or a stem-cell .mid from a sample pack and need to know basic things — what tempo is this in, what key, how many tracks, which General MIDI instruments, how long. DAWs answer these questions but require importing the file into a session. Standalone MIDI viewers (MidiYodi, MidiExplorer) require a desktop install. Online players let you hear the file but rarely surface the structural stats you actually need.

This MIDI file analyzer parses standard MIDI files in all three formats (format 0 single track, format 1 multi-track, format 2 independent sequences), reads the meta-events, and surfaces the numbers in one panel. Initial tempo (BPM), time signature, key signature and song length in MM:SS go up top. Per-track breakdown follows — track name, channel, note count, lowest and highest note in standard pitch notation (C4, D#5), and the General MIDI program number resolved to its human name (Acoustic Grand Piano, Distortion Guitar, Synth Pad 2 [warm]). The top played notes table tells you which pitches actually carry the song. Output goes to CSV (one row per track) or JSON (full structured tree) for analysis pipelines, composition study, or ML training-data prep.

Use it to learn the structure of a riff before transcribing it, audit a game-asset MIDI for licence-relevant instruments, find the tempo of a karaoke .mid before pitch-shifting it, prep MIDI metadata for a machine-learning dataset, sanity-check a DAW export's claimed tempo against what the file actually says, or just figure out why one practice .mid plays an octave too low. Files up to 10 MB are processed in a stateless serverless function and discarded immediately.

MIDI File Analyzer Use Cases

  • Musicians learning the tempo and key of a practice MIDI before transcribing
  • Game developers auditing licence-relevant instruments in soundtrack MIDIs
  • Hobbyists finding the tempo of a karaoke .mid before pitch-shifting
  • ML engineers prepping per-track metadata for music-information-retrieval datasets
  • Audio engineers sanity-checking a DAW export against the MIDI's claimed tempo
  • Educators surveying public-domain classical MIDIs for course material
  • Quick-check of a downloaded .mid to confirm which General MIDI program plays each part

MIDI File Analyzer Features

  • Parses MIDI formats 0, 1 and 2 — single track, multi-track and independent sequences
  • Surfaces initial tempo (BPM), time signature, key signature and song length in MM:SS at a glance
  • Per-track breakdown — name, channel, note count, lowest/highest note in C4/D#5 pitch notation
  • General MIDI program number resolved to its human instrument name across all 128 standard programs
  • Top-played-notes table tells you which pitches actually carry the song (useful for transcription)
  • Exports a summary CSV (one row per track) and a full structured JSON for downstream pipelines
  • Files up to 10 MB processed in a stateless serverless function and discarded immediately after the response

How to Use MIDI File Analyzer

Upload your .mid or .midi file

Drag-and-drop or click to select a MIDI file (up to 10 MB). Both .mid and .midi extensions are accepted, and formats 0, 1 and 2 are handled. Files exported from DAWs (Ableton, Logic, FL, Reaper) and notation tools (MuseScore, Finale, Dorico) all work.

Click Parse

The parser walks the file, reads tempo and signature meta-events, tallies notes per track and resolves General MIDI program numbers to instrument names. Typically under a second.

Read the summary

Top panel shows format (0, 1 or 2), ticks-per-beat, initial tempo in BPM, time signature, key signature and song length in MM:SS. These are the questions you usually ask first about a downloaded MIDI.

Drill into the tracks

Per-track table lists name, channel, instrument (resolved from the program-change events), note count, and lowest and highest note in pitch notation. Useful for finding which track carries the melody vs the bass.

Download CSV or JSON

CSV (one row per track) opens in Excel for analysis. JSON carries the full tree including per-note statistics and meta-event sequence for scripting. UTF-8 BOM on the CSV so non-ASCII track names render correctly.

MIDI File Analyzer FAQ

No. The file is uploaded to a stateless serverless function, parsed, and discarded immediately after the response is sent. Nothing is logged to durable storage. For pre-release game soundtracks or commissioned work where any external transit is a no-go, the Python mido library parses MIDI in a few lines and runs locally.

Standard MIDI File formats 0 (single track), 1 (multiple tracks played simultaneously) and 2 (independent sequences). The vast majority of MIDIs in the wild are format 1 — DAW exports, classical transcriptions and game soundtracks all default to it. Format 0 (often used by karaoke .mid distributions) and format 2 (rare) both parse correctly.

The summary shows the initial tempo (from the first set-tempo meta-event). For songs with tempo changes (ritardando, accelerando, multi-section pieces) the full tempo timeline is in the JSON output as a list of tempo-change events. The summary BPM is meant for the common case where you want to know 'is this around 120 or 180' at a glance.

Per the General MIDI standard, program-change events map to one of 128 standard instrument names (Acoustic Grand Piano = 0, Bright Acoustic Piano = 1, …, Gunshot = 127). This is what's reported. If the playback you've heard uses a custom SoundFont (.sf2 or .sfz), the actual sound may differ from the General MIDI name — the standard names describe what was intended, not what the playback engine renders.

10 MB per upload. MIDI files are typically small — a five-minute orchestral arrangement is rarely over 200 KB and a complex game soundtrack under 2 MB. 10 MB covers essentially every real-world file. For multi-hour ambient/exhibit pieces, scripted mido locally is the right approach.

No — this is an analyser, not a synthesiser. To convert MIDI to audio you need a SoundFont and a synth — FluidSynth (free CLI), TiMidity++, or any DAW with MIDI import. The analyser tells you what's inside; rendering to audio is a separate problem with format and soundfont choices.

CSV is flat — one row per track with columns for name, channel, instrument, note count, lowest and highest note, plus the summary fields repeated. Good for spreadsheet pivoting across many files. JSON carries the same plus the full tempo timeline, key-signature timeline, per-track note histogram and meta-event sequence — better for ML feature extraction or scripted comparison.

Upload a .mid or .midi file

Any General MIDI file — DAW exports, game soundtracks, music theory assignments • Max 10MB

Requires login • 1 credit

MIDI File Analyzer Tutorial

What is MIDI?

MIDI (Musical Instrument Digital Interface) stores music as instructions — note on, note off, tempo, instrument change — not audio samples. It's how DAWs (Logic, Ableton, FL Studio) save compositions, and how game engines reference adaptive soundtracks.

What You'll See

  • Tempo (BPM) and time signature (4/4, 3/4, etc.)
  • Song length in seconds and MM:SS format
  • Per-track breakdown: name, channel, message count, note count, lowest/highest note played
  • General MIDI instruments — 128 standard program names (Acoustic Grand Piano, Distortion Guitar, Strings, Drums...)
  • Top notes: which MIDI note numbers (translated to C4, D#5, etc.) occur most often

Common Use Cases

  • Audit a MIDI song library before importing to a DAW
  • Verify tempo and time signature of a file mailed to you
  • Debug game soundtracks that don't play right
  • Analyze a song's most-used notes for music theory homework
  • Check MIDI format (0, 1, or 2) to see if your player supports it

What It Doesn't Do

  • Play or synthesize audio — this is metadata only
  • Convert to MP3 (needs a synth + rendering engine)
  • Render sheet music (use MuseScore or similar)

Format Notes

  • Format 0: single track with all channels merged
  • Format 1: multiple tracks, one per instrument/voice — most common
  • Format 2: independent sequences (rare)