MIDILACE Runs on your device
TERM GUIDE · CHORDS

What a slash chord is: a chord, plus a bass note that is not its root.

A slash chord names two things at once — the chord and the note in the bass — written chord/bass, so C/E is a C major chord with E underneath. The bass note is the half a file can actually hand you, and on the site's measured export the lowest pitch is A3, held for 4.006 of the 4.40 seconds. What the file cannot give you is the name: the MIDI format has no chord-symbol event, and this export carries no text or marker events either. So the export gives you a bass and a set of pitches, and naming what they add up to is the step you do. On this file the same A3 bass reads as A minor at 0.986 s, then A minor with the fifth at 2.009 s, then A sus4 at 2.961 s — three names, one bass, none of them a slash chord, because the bass never stops being the root.

Convert a clip and look at its bass lane
THE NOTATION

What the slash is doing

The letter before the slash names the chord; the letter after names the note that has to be lowest. C/E and C/G are both a C major triad — C, E, G — with a different note on the bottom. The chord is unchanged; the voicing and the bass line are not. That is why the notation exists: a guitarist reading C/E knows to put E in the bass, and a bass player reading the same chart knows which note to play.

Slash chords show up in three situations worth naming separately. Inversions: C/E and C/G are the first and second inversion of the same triad. A walking or pedal bass: the chord stays put while the bass moves, so the slash changes every beat and the chord letter does not. And a borrowed bass: the chord is from one key and the bass note from another, which is where slash notation earns its keep as a description rather than a convenience.

THE MEASURED STACK

One fixed bass, three names as pitches arrive

The export holds five pitches on five lanes, and the lowest of them never changes: A3 is the bottom of the file from 0.000 s to 4.006 s, in seven separate events. Everything else arrives above it. Reading the arrivals in order gives the chord names below — and each name is a reading of the same four pitch classes, not a field in the file.

Pitches above the fixed A3 bass, in the order they arrive
TimePitch that arrivesSounding over the bassInterval over A3Name that fits
0.000 sA4A + Aoctavenone — an octave is not a chord
0.986 sC5A + Cminor thirdA minor, incomplete until a fifth arrives
2.009 sE5A + C + Eminor third + perfect fifthA minor
2.961 sD5A + Dperfect fourthA sus4 (the E has ended at 2.821 s)
3.821 sA3 restartsA + Dperfect fourthA sus4, held to the end
Two stackings of the same three pitch classes: A, C and E over an A bass read as A minor; the same letters over an E bass read as A minor over E, written Am/E.
Same letters, different lowest note: the second name is the slash chord, and the export cannot produce it.

The last column is the part no file contains. A minor, A sus4 and Am/E are three readings of a set of events; the events themselves are just note numbers with start times. Change which note you call the bass and the names change, and the file will not object either way.

WHY THE FILE CANNOT NAME IT

The format has no chord field, and this export has no labels at all

The Standard MIDI File spec defines meta events for tempo, time signature and key signature, and text events for lyrics, markers and track names. It defines no chord-symbol event, because a chord symbol is a label attached to a staff, not a property of a note event. This export goes further: its only meta events are an empty track name (0x03) on each of the two tracks and end-of-track (0x2F). No text, no marker, nothing to read.

So the slash chord's first half — the chord — is missing by construction, and the second half — the bass — is ambiguous by construction. The file has five pitch lanes, not five parts. A3 could be a bass guitar, the left hand of a piano, or the lowest note of a synth pad; the export does not say, because a converter estimates pitches and does not classify instruments. Slash notation assumes a bass part exists. The export cannot confirm that assumption.

THE PROCEDURE

How to get a slash chord out of an export

  1. Find the lowest lane and time it. Not the lowest note anywhere — the lane that stays at the bottom. Here that is A3: seven events, 4.006 s, no interruptions longer than 2 ms.
  2. Write the pitches above it, in arrival order. A4 at 0.000 s, C5 at 0.986 s, E5 at 2.009 s, D5 at 2.961 s. Arrival order is what tells you the chord was built up rather than struck at once.
  3. Name the stack, then check the bass against the name. A–C–E is A minor, and the bass is A, which is the root — so the correct label is plain Am, not Am/A. A slash is only written when the bass is not the root.
  4. If the bass is not the root, the slash is required. A–C–E with E underneath is Am/E. The letters do not change; the bass letter does, and it has to be written or a player will put A on the bottom.
  5. Mark which note is a guess. If the lowest lane is thin — under about 80 ms per event — it may be a transient rather than a bass note. Writing Am/E on the strength of a 60 ms blip is a guess dressed as a reading.
QUICK ANSWERS

Questions about slash chords

Is C/E the same chord as C?

The same chord tones, a different bass. C is C–E–G with C at the bottom; C/E is the same three notes with E at the bottom. A listener hears them differently because the bass changed, which is why the notation exists.

Does a MIDI file store chord symbols?

No. The format has no chord-symbol event. Some sequencers save chord data in proprietary blocks or as text markers, but a converter export contains neither — the one measured here has only an empty track name and end-of-track.

How do I know which note is the bass?

By lane, not by pitch alone. The lowest lane that is continuously occupied is the working bass: here A3, held 4.006 s. A single low note that lasts 60 ms is more likely a transient. If two low lanes trade places, the bass is moving and the slash changes with it.

Can a slash chord be written when the bass note is not in the chord?

Yes, and that is the more interesting use: a C chord over an F bass, written C/F, borrows a bass note from outside the triad. The export will show you that F as an event under the C–E–G stack; what it will not tell you is whether the F is a bass instrument or a passing tone.

Why does my converter's output have no chord names at all?

Because it estimates pitches, and a chord name is a decision about those pitches. The converter would have to guess the key, the voicing and the bass part to name a chord, and any of those guesses could be wrong in a way the note numbers are not.