Chord Transposer
Change the key of any chord chart. The chords move, your lyrics and spacing stay exactly where they were.
How to transpose a chord chart
- 1
Paste your chart
Chords on their own lines with lyrics underneath — the format almost every chart already uses. Nothing needs reformatting first.
- 2
Set the two keys
Pick the key it is written in and the key you want. If we can work out the original from the chords, we will offer it as a one-click correction.
- 3
Add a capo if you want one
Set the fret and the output switches to the shapes you actually finger, while still sounding in the key you chose.
- 4
Copy it out
One button copies the transposed chart, spacing intact, ready to paste into your song sheet or projection software.
Why transposing by hand goes wrong
Transposing is simple arithmetic — every chord moves the same number of semitones — and it is still one of the easiest things to get wrong at half past seven on a Sunday morning. The arithmetic is not the hard part. The hard part is everything around it.
Spelling. The note a semitone above A can be written A sharp or B flat. They sound identical and they are not interchangeable on paper: a chart in B flat that spells its chords with sharps forces the reader to translate every one of them mid-song. This tool picks the spelling that matches the destination key signature, so a chart transposed into E flat comes back reading Eb, Ab and Bb rather than D#, G# and A#.
Layout. In a chords-over-lyrics chart, the horizontal position of a chord is information — it says which syllable to change on. Naive find-and-replace destroys that the moment a chord changes width. Rebuilding the line so each chord lands back at its original column, and only shifting when a chord genuinely grew, keeps the chart readable.
Knowing what is a chord. The letters A through G are also ordinary words and the starts of many more. “And”, “Amazing”, “Ends”, “Be”, “Father” — a transposer that treats any token starting with A–G as a chord will quietly rewrite the lyrics. We only transpose a line when every token on it parses as a real chord, and a chord quality has to decompose into recognised parts: maj7 is maj plus 7, m7b5 is m plus 7 plus b5. “nd” is not a chord quality, so “And” is not a chord.
Capos. A capo shortens every string, raising the pitch. So the shapes you finger are lower than the key you hear — capo 2 playing C shapes sounds in D. People routinely transpose the wrong direction here, arriving at a chart a whole tone away from the band. Setting the sounding key and the fret separately means the tool does that subtraction for you.
Slash chords need both halves moved: D/F# in the key of D becomes E/G# in E, not E/F#. And extensions ride along unchanged — only the root and the bass note are pitches, so sus4, add9 and m7b5 simply travel with their chord.
Frequently asked questions
No. A line is only transposed when every word on it parses as a chord, so a lyric line beginning with "And" or "Amazing" is left alone. That single rule is what separates a usable transposer from one that quietly corrupts your words.
Yes. Chords are rebuilt at their original columns, so a chart with chords sitting above particular syllables still lines up afterwards. Where a chord gets longer — C becoming C# — everything after it shifts by the minimum needed rather than collapsing.
Whichever the destination key uses. Transposing into B flat gives you Bb and Eb; transposing into D gives you F# and C#. Musicians read a chart far faster when the accidentals match the key signature they expect.
A capo raises the pitch, so you finger a lower key than the one people hear. Set the key you want to sound and the capo fret, and you get the shapes to actually play. Capo 2 with a chart sounding in D means playing C shapes.
Yes. D/F# transposes to E/G# — both the chord and the bass note move. Extensions and alterations like maj7, m7b5, sus4 and add9 are carried across untouched, because only the root and bass need to change.
No. The transposition runs entirely in your browser using our own open-source code. Nothing is sent to a server, which also means it keeps working if the wifi at your venue does not.
Yes, and there is a free REST API if you want to transpose in bulk from a script or spreadsheet. No API key and no sign-up — the same code that runs on this page runs behind the endpoint.
Chords need to be on their own lines, above the lyrics. Charts with chords embedded inline in square brackets are a different format and are not supported yet. If nothing is detected, the page tells you rather than silently returning your text unchanged.
API — same transposer, no key required
The exact code that runs on this page also runs behind a free REST endpoint, for transposing a whole songbook at once. No API key, no sign-up, honest rate limits.
# Transpose a chart from C to D
curl -X POST https://zeal.tools/api/v1/chords \
-H 'content-type: application/json' \
-d '{"chart": "C G\nAm F", "fromKey": "C", "toKey": "D"}'
# Or move by a fixed number of semitones
curl -X POST https://zeal.tools/api/v1/chords \
-H 'content-type: application/json' \
-d '{"chart": "C G", "semitones": 3}' MCP clients can call the same core: add https://zeal.tools/mcp to your client and use the transpose_chords tool.
The Zeal Promise
Non-negotiable, on every tool we ship.
- No sign-up — ever
- No watermarks on any output
- No ads near the download button
- Works fully on mobile
- Privacy-first: processing stays in your browser
- Open source (MIT) — audit it, contribute, self-host
- Zero runtime dependencies in tool logic