Enter a chord progression and shift it up or down by any number of semitones.
Calculator verified • Last updated: August 2026
—
Every chord you type is split into two parts: a root (the letter name plus any # or b, like "C" or "F#") and a suffix (everything after it, like "m", "7", or "sus4"). Only the root moves — the calculator converts it to a semitone index 0 through 11, adds your transpose amount, and wraps the result back into that same 0-11 range with the modulo operation, handling negative transpose amounts correctly along the way. The suffix is never touched or reinterpreted; it's reattached to the new root exactly as you typed it.
C's root index is 0; adding 2 gives 2, which is D. G's index is 7; adding 2 gives 9, which is A. Am's root is A (index 9); adding 2 gives 11, which is B — so Am becomes Bm, keeping its "m" suffix untouched. F's index is 5; adding 2 gives 7, which is G. The full progression "C G Am F" becomes "D A Bm G" — the same relative chord shapes, two semitones higher.
The most common reason is fitting a song to a singer's comfortable vocal range — a song written in a key that sits too high or too low for a particular voice can be shifted to any other key without changing the melody's shape, just its starting pitch. Transposition is also used to match a song to an instrument's easiest playing key (some capo positions, for example, effectively transpose a guitar part), or to match a different singer or instrument joining a performance in a different key.
Transposing down can push a root index below 0 before wrapping — for example, C (index 0) transposed down by 3 semitones needs to land on index -3, which should wrap around to index 9 (A), not stay negative. The standard JavaScript modulo operator doesn't do this correctly on its own for negative numbers, so this calculator uses the double-modulo pattern ((index + transpose) % 12 + 12) % 12 to guarantee a result that's always in the correct 0-11 range regardless of how far negative the transpose amount pushes it.
Typing a chord's bass note as a slash chord (like "G/B") can confuse simple root-parsing — this calculator reads only the letter and accidental immediately after the slash-chord's first character, so "G/B" transposes its "G" but leaves "/B" attached as part of the suffix rather than as a second root to transpose; check slash chords in your output carefully. Another common issue: typing a chord name that doesn't start with a note letter at all (a section label like "Chorus:" mixed into the progression text) — that token is correctly left unchanged and flagged as unrecognized, rather than silently dropped.
Root — the note a chord is named after and built from; only the root moves during transposition.
Suffix — everything after a chord's root letter and accidental (m, 7, sus4, maj7, and so on), describing the chord's quality.
Enharmonic equivalent — two spellings of the same pitch, like D# and Eb; the Prefer Flats checkbox controls which spelling this calculator uses for its output.
Capo — a guitar clamp that shortens the playable string length, effectively transposing every open chord shape up without changing the finger positions.
Each chord's root note is converted to a semitone index (0-11), the transpose amount is added to it, and the result is wrapped back into the 0-11 range with the modulo operation before being converted back to a note name. The chord's suffix (m, 7, sus4, and so on) is left untouched and reattached after transposing the root.
A token is only transposed if it starts with a recognizable note letter A through G, optionally followed by # or b. Anything else — a typo, a non-chord word, or an unusual notation this calculator doesn't parse — passes through unchanged and is flagged as not recognized.
Either is musically correct — sharps and flats of the same pitch class sound identical. Check "Prefer flats" if the destination key is conventionally written with flats (like F, Bb, or Eb major); leave it unchecked for a sharp-preferring key. It's purely a spelling preference, it doesn't change the sound.