How to Identify Chords in MIDI Files

How to Identify Chords in MIDI Files
By MIDI Agent • •

A MIDI file can contain the notes of a chord without containing its name. If you have a piano loop, keyboard performance, or imported arrangement, you can identify the harmony by examining which notes sound together and how they move over time.

A MIDI-to-chords workflow starts with a useful selection of musical material. Reading every note in a complete arrangement at once often produces confusing labels. This guide shows how to isolate the right part, recognize common chords, and use a documented DAW extraction tool.

Start with the harmonic material

Import the MIDI file into your DAW and keep an untouched copy. Find the track or region that carries the sustained chords: piano, pads, guitar voicings, or another harmonic instrument.

Temporarily mute drums and unrelated lead parts. MIDI drum pitches usually select percussion sounds, so treating those numbers as harmonic notes will mislead the analysis.

Open the piano roll and locate the first stable chord. Look at the notes sounding during that time span, not just the notes whose starts share exactly the same grid position. A played chord can have slightly staggered attacks.

Keep the bass available for context, even if it lives on a separate track. It may clarify an inversion or change how you hear an otherwise ambiguous voicing.

For a new progression to analyze and develop, explore MIDI Agent’s chord-generation workflow.

Identify pitch classes before worrying about octaves

A pitch class groups notes with the same name across octaves. C in a low register and C an octave higher contribute the same pitch class to a basic chord inventory.

For each stable region, write down its distinct note names. A voicing containing C, E, G, and another C reduces to C–E–G for this first pass.

Next, test possible roots rather than assuming that the lowest note is the root. For common triads, measured upward from the root within an octave:

  • Major: root, four semitones above it, seven semitones above it.
  • Minor: root, three semitones above it, seven semitones above it.
  • Diminished: root, three semitones above it, six semitones above it.
  • Augmented: root, four semitones above it, eight semitones above it.

For example, C–E–G is C major; C–E-flat–G is C minor. These interval structures are covered in Puget Sound’s introduction to triads.

This is a starting method for common three-note chords. Suspensions, extensions, and incomplete voicings need additional interpretation.

Separate the root from the bass note

Consider three voicings, listed from lowest note to highest:

Notes Basic chord name Position
C–E–G C major Root position
E–G–C C/E First inversion
G–C–E C/G Second inversion

The pitch-class collection remains C–E–G. Changing the lowest chord member changes the inversion, rather than changing the basic triad into E minor or G major.

In slash notation, the symbol before the slash names the chord and the note after it names the bass. Puget Sound’s inverted-triad lesson explains this convention.

When the bass is on another MIDI track, inspect it at the same moment as the chord. Labeling the upper keyboard region alone may miss the complete sound.

Try analyzing two neighboring chords before settling on a difficult label. The surrounding progression can make one interpretation more convincing than another.

For setup and working with generated or existing MIDI, read the MIDI Agent documentation.

Handle passing notes and longer chords

A brief note between stable chord tones does not necessarily mean the harmony has changed. Listen to its duration, placement, and direction.

Imagine a sustained C–E–G chord with a short D in a melodic line. That D could be a passing tone, or it could contribute an intentional added-note sound. The MIDI events alone do not settle the musical interpretation.

Analyze the sustained accompaniment separately, then add the melody back. The passing-tone lesson gives useful context for notes that connect chord tones.

Likewise, four-note collections need more than a triad label. C–E–G–B spells C major seventh; C–E–G–B-flat spells C dominant seventh. The distinction affects the chord name and its sound.

Sparse voicings can be ambiguous. C–E–G–A could suggest C6 or an Am7 voicing, depending on bass and context. Keep a provisional label when the musical evidence supports more than one reading.

Extract chord events in Cubase Pro 15

Cubase Pro 15 provides a specific workflow for creating chord events from MIDI.

  1. Add a chord track.
  2. Select a MIDI part containing material that can be interpreted as chords.
  3. Drag the part onto the chord track, or right-click it and choose Create Chord Events.
  4. Review the settings in the dialog and confirm.
  5. Listen to the resulting labels alongside the original part.

Steinberg also documents Project > Chord Track > Create Chord Events. These instructions are for Cubase Pro 15; other versions or DAWs can use different commands.

Drum parts and single-note bass or lead lines are poor input for this extraction task. Treat the result as an analysis to review, especially when several musical parts overlap.

Turn chord names into a useful working chart

Write the accepted labels against bars or beats. A chart reading C | Am | F | G is useful only when you also know where each change happens.

Listen through the section without stopping. Check that your chart accounts for held notes across bar lines and any bass changes underneath a sustained upper voicing.

Once the harmony is clear, you can decide what to keep: the progression, a particular inversion, or the movement between voices. MIDI Agent can generate chord ideas and develop existing MIDI through variations or extensions; use the chart as musical context when describing your next part.

Ready to explore a progression of your own? Get MIDI Agent.

MIDI Agent Written by MIDI Agent Last updated MIDI Agent builds AI tools for music producers, composers, and beatmakers who want to generate musical ideas inside their DAW.