How the chord transposer works

What happens when you paste a song: how chords are read, moved and spelled, how the key and capo are worked out, and how we test it.

1. Reading the song

Every line is sorted into one of seven kinds: chord line, lyric line, line with chords in brackets ([C]Amazing), section label ([Verse], Chorus:), ChordPro directive ({title: …}), guitar tab, or blank. A line counts as a chord line when every word on it reads as a chord (bar lines, dashes and repeat marks like x2 don't count against it).

Words that are also chord names need more evidence. "A", "Am", "Do" or "Em" on a line written like normal text ("Am I wrong") stay lyrics, while "A    Am" spaced out above a lyric is read as chords. If the tool guesses wrong, "Fix a line" lets you mark it.

Each chord is read by a small parser that knows root notes with ♯ and ♭, qualities (m, maj7, M7, Δ, dim, °, ø, aug, +, sus2, sus4, add9, 6/9), extensions (9, 11, 13), alterations (♭5, ♯5, ♭9, ♯9, ♯11, ♭13, also in brackets) and slash chords. It remembers how you wrote each chord, so CM7 stays CM7 in the new key.

2. Moving and spelling the chords

Transposing moves every root (and bass note) by the same number of semitones. The hard part is the name: the same sound can be A♯ or B♭. The tool names every chord the way the target key requires:

  • Keys with sharps (G, D, A, E, B, F♯) get sharps; keys with flats (F, B♭, E♭, A♭, D♭) get flats.
  • Chords outside the key get the name musicians expect: the ♭VII chord in D major is C, the chord leading to Dm in C major is C♯dim7.
  • Awkward names like E♯, B♯, F♭ and C♭ are avoided unless the key itself contains them.
  • Slash-chord bass notes are named as notes of the chord: A7/C♯, not A7/D♭.

Example: an A chord moved up one semitone from A major is written B♭, because B♭ major is a flat key. Prefer one style? Choose Sharps or Flats.

To keep chords above the right word, each chord keeps the column it started in. When a chord name gets longer (C → C♯m), the chords after it move right only as far as needed to keep a space between them. Lyrics are never changed.

3. Finding the key

The tool scores all 24 major and minor keys. Each chord earns points for how well it belongs to a key (the seven chords of the key score highest; borrowed chords like ♭VII score less; chords from nowhere lose points). Extra points go to the key whose home chord starts or ends the song, and for every V → I movement (like D7 → G). A key written in the song ("Key: G" or {key: G}) always wins. The answer comes with a confidence level and the two next most likely keys. Relative keys (like C major and A minor) share all their chords, so the tool says "likely" rather than "sure" when only the home chord tells them apart.

4. Suggesting a capo

A capo raises the pitch one semitone per fret, so a song in B♭ played with a capo on fret 3 uses G shapes. For each capo position from 0 to 7, the tool works out the shapes and gives each one a difficulty score from its easiest checked fingering: open chords score lowest, barre chords, four-finger shapes and high positions score higher. The position with the lowest average over the whole song is "the easiest way to play".

The same scores rank the 12 keys: the song is moved to each key, the chords you would play there (without a capo) are scored, and the easiest keys are listed first, together with how far each one is from the original key, because a new key also changes how high the song is to sing.

Song sheets often say "Capo 3" at the top. Their chords are shapes, so the tool reads the key of the shapes and adds the capo to tell you the key you actually hear. One tap moves every chord up by the capo fret to show the real chords and leaves out the capo line.

5. Chord diagrams

Guitar and ukulele shapes start from the open chord database chords-db. Before a shape is shown, our software checks that every note belongs to the chord and that the important notes (third, seventh, any altered note) are there; shapes that fail are left out. Chords missing from the database, like most slash chords, are worked out with the same rules. Piano diagrams are drawn from the chord's notes.

"Play the chords" plays these same shapes (or the piano notes) in song order, two beats each, with a small synthesizer built into the page: plucked strings for guitar and ukulele, a soft piano tone for piano. Nothing is downloaded and nothing plays until you press Play.

6. Privacy

All of this runs in your browser. Your song is never uploaded, and the tools keep working if your connection drops. Settings like text size are saved on your device; songs are saved only if you choose to. Share links carry the song inside the link after the # sign, a part of the address that browsers don't send to servers. Details are in the privacy policy.

7. Test results

The music engine has an automated test suite that runs before every update. It includes 588 chord spellings, every chord type moved to all 24 keys, round trips through every key, real song layouts and 52 known chord progressions. Results of the last run (October 13, 2026):

309 tests, 309 passed, 0 failed
What is testedTestsPassed
Parser: 500+ chord spellings parse and print back unchanged77
Spelling: every chord type moved to all 24 keys3636
Round trip (+n then −n) and alignment columns1313
Line detection: over-lyrics, inline, [ch], bars, tabs, tricky words5050
Key detection: known progressions (≥ 90 % top-1, 100 % top-3)66
Capo and easiest key: B♭ → capo 3 G shapes; E♭ → capo 1 D / capo 3 C99
Nashville / Roman numerals: round trip in all keys77
Instrument table matches docs/sources.md22
Voicings checked, diagrams accessible88
Chord identifier: notes → chord names55
Progression generator: chord functions in all 24 keys22
Chord library: checked shapes, notes and FAQ on every page44
Sheet music: MusicXML notes, keys, chord symbols, accidentals1414
Chord sheet maker: chords stay with their lyric lines while editing77
MP3 transposer: FFT, key of a recording, WAV files99
Tuner and vocal range test: pitch detection, notes, tunings1818
Note names: Do Re Mi and German (H, B) read, moved, detected9797
Setlists and backups: editing, reading, merging, same view99
Wrapping long lines: chords stay over their words at every width66

Limits we know about: a song that changes key in the middle is analysed as one key (paste each part separately), and very unusual chord names may be listed as "couldn't read" and left as they are.

Last updated: