Find the chords of a song
Drop a song and get its chords, laid out bar by bar like a lead sheet, with the key and tempo. Press play and the current chord lights up, so you can check every one by ear. The file is analysed in your tab and never uploaded.
drop a song here
or click to pick. MP3, WAV, M4A, FLAC, OGG and video files all work.
| Key | — |
|---|---|
| Tempo | — |
| Chords used, most first | — |
How it hears chords
A chord is a handful of notes sounding together, and what matters for naming it is which of the twelve note names are present, not which octave they are in. So the song is cut into short overlapping windows, about a third of a second each, ten times a second, and each is reduced to how strongly each of the twelve notes sounds. That is a chromagram. It is the same front end as the key finder, down to taking the recording's tuning out first. Those readings are summed over each beat and compared with the note pattern of all 24 major and minor chords. The closest wins, and a beat where nothing matches well is marked as no chord. Once a chord is settled, it checks for a seventh on top: a dominant 7 or a major 7 over a major chord, a minor 7 over a minor one.
A seventh is harder to hear than it sounds, because every note carries a quieter copy of the note a fifth above it, an octave up. That overtone puts some of the major seventh into every plain major chord, and some of the minor seventh into every minor one. Measured on the test chords, a plain C major can show as much B as a real Cmaj7 at its quietest. So that expected overtone is subtracted before the seventh is weighed. The seventh then has to be at least 0.4 as strong as the chord's third, and clearly louder than any other note outside the chord, so a melody passing over it on its way somewhere else does not count.
Two clean-up steps make it readable. Neighbouring beats with the same chord are joined. Anything shorter than about 0.4 seconds is folded into whichever neighbour its notes fit better, which removes the flicker a passing note in the melody would otherwise cause.
Bars, not a stream of timestamps
When the song has a steady beat, the tempo and the position of the beats are found first, the same way the BPM finder does it. The chords are then read beat by beat and set out four beats to a bar, writing a chord only where it changes, like a lead sheet. Every change therefore lands on a beat. Which beat is the first of the bar is still a guess, made from the things that mark a bar line in most music: the chord changing, a kick or bass note landing, the snare's backbeat on two and four (which counts against), and a crash cymbal ringing on. On 22 test patterns in five styles (rock, dance with a kick on every beat, a waltz, drumless strummed chords, and drums alone with a crash on one), every one starting partway into a bar, it chose the right beat every time, and the beat itself was within 3.1 ms. Varying their tempos, keys and pickups six ways, it was right in 131 of 132. Those are synthesized patterns with clear cues. A song whose chords change mid-bar, or with none of those cues, can still fool it, so if the bars look shifted by a beat, the chords are still right, just counted from the wrong place. Without a steady beat, in rubato piano, ambient or a cappella music, you get a timed list instead.
What was measured
The detector is checked on every release against 36 synthesized progressions. Each has eight chords drawn at random from all 24 major and minor triads, lasting one to two seconds. They are voiced like a keyboard part: a bass note on the root and the chord above it, in any inversion. Each progression was played three ways: on its own, over a drum kit with a noise floor, and under a melody full of passing notes. Outside a quarter of a second either side of each change, where no detector can know the chord has changed yet, it named the right chord 100% of the time clean and over the drums, and 99.5% under the melody. It added a seventh that was not there 1.8% of the time.
A fourth set of twelve progressions adds a seventh to every chord. The triad under it was still right 100% of the time, and the whole chord, seventh included (C7, Cmaj7, Cm7), 91.7% of the time. On four more sets built the same way from different random seeds, the whole chord was right 85% to 95% of the time and a seventh was invented at most 1.6% of the time. When it misses a seventh, it names the triad.
Slash chords, with the third or the fifth in the bass (C/E, C/G), are named with their bass. They used to be the one voicing that tripped it, right only 74% of the time, because a bass note carries its own overtones: an E in the bass brings a quiet B and G# with it, which together spell E minor. So once a chord has been read, it is read again with the bass note's overtones turned down. If that gives a different chord with the bass as its third or fifth, the inversion wins. On twelve progressions of slash chords, it named the chord right 98.3% of the time and wrote the bass under it 97.8% of the time. It wrote a slash on a chord that had its root in the bass 0.2% of the time. The cost is small: a melody passing through the right notes can occasionally tip a plain chord into an inversion, which is where the half a percent under the melody went.
Drums alone have no chord, and a snare's noise and a kick's falling pitch can look like one. Noise lands anywhere between the notes of the scale, and real notes sit on them, so a stretch where most of the sound is between the notes is never named. Drums alone used to pick up a second of chords here and there; over eight different drum recordings they now get none. Real recordings are harder than these tests in other ways too, with distorted guitars, heavy reverb and vocals sliding between notes, and there is no measured figure for real songs yet. The player is there so you can check.
What it names, and what it does not
Major and minor triads, the three common sevenths on them (7, maj7 and m7), and either with its third or fifth in the bass (C/E, G7/B). Ninths and sixths have no template of their own and were not tested. Diminished, half-diminished, augmented and suspended chords have no template, so they come out as the nearest major or minor chord or as no chord. Power chords (a root and a fifth, no third) are neither major nor minor, and will be named whichever way the other instruments lean. If a song is in a key and a chord looks out of place, treat it as a hint to listen closely at that spot.
Getting better results
The chords live in the harmony instruments, and a lead vocal mostly adds passing notes. If the reading is noisy, split the song with the stem splitter and analyse the instrumental. Songs that change key halfway are fine, because each beat is read on its own. For a song you are going to play along with, tune up first. If it sits in an awkward key for your voice, the key changer moves it by semitones, and the chords move with it: up two semitones, C becomes D.
In the audio editor
The audio editor has the same detector. Right-click a clip, or hold it on a phone, and choose Detect chords. The chord names are drawn along the bottom of the clip and follow it when you trim or move it. With the bars-and-beats ruler on, they line up with the project's own grid.
FAQ
Is my song uploaded?
No. Decoding and analysis both run in your browser tab, and the player plays the file from your own computer.
How accurate is it?
On 36 synthesized progressions of random major and minor chords, clean, over drums and under a busy melody, it named the right chord 99.5% to 100% of the time away from the changes. Slash chords (C/E) were named with their bass 97.8% of the time. There is no measured figure for real recordings yet, which is why there is a player to check against.
Does it find seventh, sus or diminished chords?
It names major and minor chords and the three common sevenths on them: G7, Gmaj7 and Gm7. On test progressions it named the seventh correctly about nine times in ten, and when it misses one it names the triad. Diminished, augmented and sus chords come out as the nearest major or minor chord, or as no chord.
Why are the bars shifted by a beat?
The beat is found accurately, but which beat starts the bar is a guess, made from where the chords change, where the kick and bass land and where the snare and crash fall. It was right on every synthesized test pattern, but real songs can fool it. The chords are still right; they are just counted from a different beat.
It shows a chord I do not hear. What now?
Click it to play from there. Passing notes in a vocal can pull a beat towards another chord; analysing the instrumental from the stem splitter usually gives a cleaner result.
Can I get the chords into the audio editor?
Yes. In the editor, choose Detect chords from a clip's menu and they are drawn along the bottom of the clip.