The ChordPro format explained
ChordPro is a plain-text format for songs with chords. Instead of putting chords on a separate line above the lyrics, it writes each chord in square brackets right before the syllable where it is played.
Chords over lyrics vs. ChordPro
Most chord charts on the web use the "chords over lyrics" style. The same verse in ChordPro looks like this:
G G7 C G
Amazing grace, how sweet the sound
G Em D
That saved a wretch like me[G]Amazing [G7]grace, how [C]sweet the [G]sound
That saved a [Em]wretch like [D]meAmazing Grace is a traditional hymn in the public domain.
Chords over lyrics is easy to read but depends on spaces: in a proportional font, or after editing a line, the chords drift away from their words. ChordPro ties each chord to its syllable, so a songbook app can lay the song out in any font, column width, or screen size and still put every chord in the right place.
The basic syntax
- Chords go in square brackets, immediately before the syllable:
[Am]Hello. - A chord between words or at the end of a line is fine:
sound [D]. - Instrumental lines can be written as chords only:
[G] [C] [D] [G]. - Directives go in curly braces on their own line:
{title: Amazing Grace}. - Lines that start with
#are comments for the file's author; apps do not display them.
Common directives
Directives add information such as the song title or mark sections of the song. Many have a short form.
| Directive | Short form | Meaning |
|---|---|---|
{title: …} | {t: …} | Song title |
{subtitle: …} | {st: …} | Subtitle, often the artist |
{artist: …} | Performer or composer | |
{key: G} | Key of the song | |
{capo: 2} | Capo fret | |
{tempo: 90} | Tempo in beats per minute | |
{comment: …} | {c: …} | A note shown with the song, such as "Slowly" |
{start_of_chorus} … {end_of_chorus} | {soc} … {eoc} | Marks the chorus |
{start_of_verse} … {end_of_verse} | {sov} … {eov} | Marks a verse |
{start_of_tab} … {end_of_tab} | {sot} … {eot} | Guitar tablature, shown as is in a fixed-width font |
A complete small file:
{title: Amazing Grace}
{key: G}
{start_of_verse}
[G]Amazing [G7]grace, how [C]sweet the [G]sound
That saved a [Em]wretch like [D]me
[G]I once was [G7]lost, but [C]now am [G]found
Was [G]blind, but [D]now I [G]see
{end_of_verse}
The full specification, with many more directives, is published at chordpro.org.
Files and apps
A ChordPro file is an ordinary UTF-8 text file. Common extensions are .cho, .chopro, .chordpro, .crd, and .pro. Because it is plain text, you can write it in any text editor, keep it under version control, and import it into many songbook and stage apps.
Transposing ChordPro files
Chord Transposer reads ChordPro text directly. Paste it, or open a .cho, .chopro, .crd, or .pro file:
- Chords in square brackets are transposed:
[G]Amazing+2 →[A]Amazing. - Lyrics, directives in curly braces, and
#comment lines are left as they are.
Update {key:} yourself. The app does not change directives, so after transposing, edit {key: G} to the new key (for +2, {key: A}). In the chords-over-lyrics style, a Key: line at the top of the chart is updated automatically.
Save the result and the file is ready to import into your songbook app.
Converting between the two styles
The app transposes but does not convert between styles. To convert by hand:
- Chords over lyrics → ChordPro: for each chord, find the letter of the lyric directly below it and insert
[Chord]there. Then delete the chord line. - ChordPro → chords over lyrics: write each chord on a line above, starting in the same column as the syllable that followed it, and remove the brackets. Use a fixed-width font so the columns line up.
See also: transposing chords: the basics.