Easily Format Your Song’s Text Into ChordPro Format

Confession time: I don’t actually edit my songs by typing chords into the lyrics. Well, at least not initially. The very obvious problem is that setting exactly when (where) to change chords requires playing through the song a few times, and moving that [Gm] one word or syllable to the right, well, it’s a pain.

So, I dont’ begin with “nicely formatted” text (ChordPro format).

Gm                 Cm            Gm
People are strange when you're a stranger 
Cm         Gm   D           Gm
Faces look ugly when you're alone 
Gm                Cm          Gm
Women seem wicked when you're unwanted 
Cm          Gm     D           Gm
Streets are uneven when you're down

Instead, I start with what you see above, either by typing or finding it online or opening a PDF, selecting all the text, and then copy-pasting it into a text document. Next, some cold readings — playing through slowing — and if that sounds bad, well, I just add/remove spaces between the chords until it’s close (and if you’re going to use this with your uke group it needs to be fairly close or it’ll fall disastrously apart).

Once the song is set, well, how to prettify it with chord fingering diagrams, etc?

Fortunately, there are several online ChordPro “formaters” (or importers):

[Gm]People are strange [Cm]when you're a [Gm]stranger 
[Cm]Faces look [Gm]ugly [D]when you're [Gm]alone 
[Gm]Women seem wicked [Cm]when you're un[Gm]wanted 
[Cm]Streets are [Gm]uneven [D]when you're [Gm]down

Above is the same song we saw earlier after running through my ChordPro formatter (colorized-emphasis added). Sweet. Now it’s ready for the song sheet editor!


  • Review! You’ll always check the results from these as they’re never going to be perfect.
  • Use spaces, never tabs. Tabs are awesome, but squishy things. To your editor they might mean “indent the equivalent of 6 single space characters” whereas on my machines it’s always 4! Since we’re relying on fixed-width columns you need to use spaces.
  • Courier is your pal. Every font, yes, even Comic Sans, has its moment, and when your aligning by columns you need every character to be exactly the same width — something our old Smith-Corona typewriters always did. So eschew Times or Arial and use the old stand-by, fixed-width fonts (monospaced) such as Courier or Courier New.
  • Blank lines are free. If a converter is confused and mixes none-chords into your lyrics add some separation, that is, put some blank lines in.
  • Chord liness immediately precede their lyrics. Don’t put blank lines between a chord line and its lyrics (unless you want a line of only chords)
  • Chords change on syllables. You know this, I know this, the tools? Not so much. So watch out for this: “... and somet[Bm]hing...” because you probably wanted this: “...and some[Bm]thing...“.

This is still very much a “beta” tool; I’m still trying to “dial in” how forgiving I want my song formater to be, e.g. whether it only recognizes “standard” chord names such as Bm or Cadd9 or Gaug, or should the formater allow people to have chord names like “G-superDiminishedAdd9“?

Allowing flexible chord names means, for example, that it’s more likely to accept two C chord voicings: standard, first position [C] and then second position [C-2nd] (or [C-higher] or [C-alt]).

(you might notice a lot of geeky stuff about “word lengths” and “standard deviations” — ignore this, part of my tuning process)


Leave a Reply

Your email address will not be published. Required fields are marked *