How do I transpose D/G, G/B etc. I want to do this in a program I'm knocking up, to display my music the way I want to see it, so an algorithmic description would be handy. If it's of any significance, the code will be put out there in an open source way :-)

I suspect it's not an easy answer because artists like the commodores used them a lot and sort of harmonic steps between other chords, Billy Joel does it a lot too and the step chord just happens to coincide with a "M/B" chord?

  • 1
    The transposition of slash chords has to be the same as any chord transposition. In the absence of a bass guitar, the slash chord will be played by guitar/piano with the second/slash note stated being the lowest note sounded in that chord.
    – Tim
    Commented Jul 4, 2013 at 13:15

6 Answers 6


In a slash chord, the chord on the left is played over the bass note on the right.

So for D/G a D chord is played over a G bass note.

If you have separate player on bass, then a guitarist can play an ordinary D chord, while the bassist plays G.

If you're trying to play D/G on a solo guitar, then you have to find a fingering in which your prominent bass note is G (say, 3rd fret on the bass E), along with notes from D major on the higher strings.

Transposing slash chords is no different from transposing any other piece of music. All the notes go up or down by the same interval. Remember that not all steps in a major/minor scale are the same interval. You have to count the semitones.

So, to transpose D/G by one tone, just add two semitones to all the notes: E/A

Go up by three semitones and you'll find that D becomes F (D -> Eb -> E -> F) and G becomes Bb (G -> Ab -> A -> Bb).

Just remember that B and C are a semitone apart, as are F and G, and it'll make sense.

In terms of coding, there's almost nothing to it:

transposedNote = originalNote + interval

... assuming you're representing your notes as integers and an increment of one represents a semitone step. That's how MIDI represents notes. Middle C=60, C#=61, D=62 etc.


The old Blue Peter way was to have concentric circles, one bigger. Mark out 12 points around the outside of each, as in a clock face.Put the notes, chromatically round the edge of each.When you wanted to transpose, you rotated the outside face against the inside face, and read off the new notes/chords with reference to the originals.

Obviously you are going to bring it bang up to date, but basically this is what you'll be doing in an algorithmic way. Good luck !

You need to make the facility to say exactly which the new key will be, then the sharps/flats will automatically show, e.g. New key 'Amaj' therefore F#,C#,G#, rather than a possible, but incorrect, Gb,Db,Ab.

Welcome to Musical Practice and Performance !!

p.s. if you are talking slash chords, the algorithm will sort out the 'bass' note automatically - it will move exactly the same distance as the rest of the chord.


If the chord actually say D/G, it means a D chord with G as the bass note (if a bass guitar is also playing, the guitar only plays a standard D chord, and the bass guitar plays the G). When transposing, you just transpose the two separately. So transposing D/G up 5 half steps, would result in G/C.

More details on transposing:

It's basically to transpose a number of half steps (semitones).

The chromatic scale (all the half steps) looks like this:

With sharps (♯):
C C# D D# E F F# G G# A A# B

Same with flats (♭):
C Db D Eb E F Gb G Ab A Bb B

This goes in loop, so one half step above B is back to C. This means that transposing 5 half steps up from A gives D.
Note that there are no sharps/flats between E/F and B/C.

So transposing from D to G would mean 5 half steps. I guess you could create two arrays with the half steps; one with sharps and one with flats. When to use sharps or flats is not allways easy to know, but a general rule is to always use only sharps or only flats in one song.

Everything in a chord after these base notations should be as is. i.e if you shall transpose Gbmaj7 up 5 half steps, the result would be Bmaj7.


I just wanted to add polychords fall into these same transposition answers that @awe, @slim, and @Tim succinctly provided. The usual dead giveaway of a polychord is the chord type specified in the notation (not just a bass note Bmin/E). The reason I bring this up is because the slash notation is used as well for them.

For a polychord you actually are playing two chords on top of each other. Usually this ends up being an heavily extended chord or inversion, but can also be representative of two completely different chords played together, eg. Bmin/Dbmaj7.

It's not common, but you'll run across it occassionally:

The use of polychords may suggest bitonality or polytonality. Harmonic parallelism may suggest bichords.

To transpose a polychord you simply apply the same techniques listed in the other answers to each chord together. The chord type will stay the same. (Bmin/Dbmaj7 transposed up a whole step is C#min/Ebmaj7).


There is an inactive project on Sourceforge that does most of what you're wanting to do. It also includes "slash chords" so it should be a good jump-off point for you to at least understand the algorithms behind building up the chords.



This transposing app for iOS called Chordmatic will transpose inverted chords for you: https://itunes.apple.com/us/app/chordmatic/id1099475271?mt=8

  • Hi Jordan, and welcome to the Music SE. I believe the question is about understanding the musical process and not to find an application to do it for you. Commented Aug 13, 2016 at 15:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.