semicord

MIDI file to chords, bar by bar

Drop a .mid file here

It names the notes sounding together, beat by beat, so an arpeggio or passing notes may be named differently than a musician would. It reads MIDI files only, not audio recordings. Nothing is uploaded: the file is read inside this page.

What you get from a MIDI file

  • Tracks. Every track with notes, with its name, its General MIDI instrument (from the program change; Acoustic Grand Piano when the file sets none), its channel and how many notes it holds. Untick a track to leave it out: take out a busy melody and the harmony underneath is usually named more cleanly.
  • A chord per beat, one row per bar. The bar and beat grid comes from the file's own ticks per beat and time signature (4/4 when it declares none), so a tempo change does not shift it. Equal beats in a row merge: Bar 1: C, or Bar 7: F · G when the chord changes inside the bar. Each chord semicord has a page for links to it, with its notes and piano and guitar diagrams.
  • The key. The keys whose scale holds the most note time, ranked between them by the key finder's score for the chord sequence (a song that starts or ends on C picks C major over A minor). The key signature the file writes, if any, is shown beside it; many files leave it at C major whatever the music does, so the two can disagree.
  • Playback and transpose. Play sounds the chord timeline on this site's own synthesiser at the file's tempo and highlights the bar; ▶ on a bar starts there. Transpose moves everything from −6 to +6 semitones and renames every chord and the key, and playback follows.
  • A chord chart. Plain text, four bars per line, | C | Am | Dm7 | G7 |, to copy or download as a .txt file.

How a beat gets its name

For each beat, every note from the ticked tracks that sounds for at least an eighth of that beat (or starts and ends inside it) goes into one set, which is named like a chord you play on the front page: all octaves count, the lowest note decides the inversion. A beat with no notes keeps the chord before it in the same bar. Some examples of what that means:

  • A melody note that is not in the chord changes the name: a D over C E G on one beat reads Cadd9 for that beat. Untick the melody track to hear the harmony alone.
  • A broken chord (C, E, G one after another, each quarter-note long) is three separate notes to this page, shown in brackets as (C), (E) and (G), because it groups by beat and a musician's ear groups by the bar. Where the notes are held (sustain written as long notes) they overlap and are named together.
  • A bass note under a chord makes a slash chord: E under C E G reads C/E.
  • N.C. is a bar with no notes in the ticked tracks; ? is a set with no common chord name (hover it for the notes); C+D is a two-note interval.

What it cannot do

  • Read audio. MP3, WAV and other recordings hold sound, not notes; this page needs a MIDI file (.mid, .midi, .kar, or .rmi).
  • Hear the sustain pedal. Notes held only by controller 64 end where the file ends them, so a pedalled piano part can read thinner than it sounds.
  • Judge harmony like a musician. It does not know which notes are passing tones, suspensions or an arpeggio spread across a bar, and it does not look at the next chord to decide.
  • Find bars in a free-time performance. A piano part recorded without a click track has no real bar lines in its ticks, so the grid will not line up with the music; quantise it or record to a click first.
  • Read SMPTE-timed files (rare, from video work): they have no beats to count. Karaoke .kar files work; their lyrics are ignored.
  • Sound like the song. Playback plays each chord as a plain block chord, not the file's instruments, drums or melody.
  • Stop mid-note on Pause: a chord already sounding rings out for up to four seconds.

The file is opened with the browser's file reader and parsed by this page's own script. Nothing about it is uploaded, stored or sent: not the notes, not the name. The chart download is made in the page as well. Apart from an anonymous page-view count, the page sends nothing anywhere.

Play a chord and see its name on the on-screen piano or guitar, a MIDI keyboard or the microphone, find the chords in every key, or tune up with the tuner.