REFERENCE · CHORDPRO

ChordPro
cheat sheet.

ChordPro is a plain-text format for chord charts. Chords sit in square brackets right where they change, and everything else is a short directive in curly braces. It's the format most chord apps import, so a chart in ChordPro moves with you.

Chords

Put each chord in brackets just before the syllable where it changes:

[G]Take me [D]down to the [Em]river
[C]Let the water [G]run

An app draws the chord above the lyric, and can transpose it because it knows it's a chord. A line with only chords works too: [Am] [F] [C] [G].

Song details

Directives go on their own line in curly braces. The common ones:

{title: River Song}
{artist: The Example Band}
{key: G}
{capo: 2}
{tempo: 96}
{time: 4/4}

Short forms exist for a few, such as {t: …} for title.

Section labels

A comment line is the usual way to label a section:

{c: Verse 1}
[G]First line of the [D]verse

{c: Chorus}
[C]Sing it [G]loud

{comment: …}, {ci: …} (italic) and {cb: …} (boxed) are variants of the same idea.

Verse and chorus blocks

Blocks mark where a section starts and ends, which lets an app style it and repeat it:

{start_of_chorus}
[C]Sing it [G]loud, [D]sing it [Em]proud
{end_of_chorus}

{c: Verse 2}
[G]Second verse [D]here

{chorus}

{soc}/{eoc} are the short forms; {start_of_verse} and {start_of_bridge} work the same way. A label can go on the opening line: {soc: Chorus 2}. {chorus} on its own repeats the last chorus, so you only write it once.

Chord grids

For intros, solos and jazz heads, a grid shows bars of chords instead of lyrics:

{start_of_grid}
Intro || G . . . | C . . . | D . . . | G . . . ||
Solo  |: Em . . . | C . D . :| x2
{end_of_grid}

| is a bar line, || a double bar, |: and :| repeats, . a held beat, % repeats the last bar and C~G puts two chords in one beat. A word before the first bar is a margin label; text after the last bar is a note.

Tab

Tab lines go inside a tab block so they keep their spacing and aren't mistaken for chords:

{start_of_tab}
e|-----0-----|
B|---1---1---|
G|-2-------2-|
{end_of_tab}

Flow: the order you actually play

Write each section once, then list the arrangement:

{flow: Intro V1 C V2 C Bridge C C Outro}

Not every app supports {flow}; ones that don't simply show it as a line of text.

Your own chord shapes

When a chord should be played a particular way, define the shape. Frets run from the lowest string, with x for muted:

{define: Am base-fret 1 frets x 0 2 2 1 0}
{define: Cadd9 base-fret 1 frets x 3 2 0 3 3}

Capo and transposing

Write the chart in the key it sounds in and add {capo: 2}. A reader that understands capo can then show the shapes you actually play (A sounding, G shapes). Transposing a ChordPro chart is safe because every chord is marked; a plain chords-over-lyrics text file has to be guessed at.

How Songroost reads ChordPro

Songroost renders everything on this page: chords, labels, chorus blocks and {chorus} repeats, grids, tab, flow, {define} shapes in its chord diagrams, and capo shapes. It also shows charts as Nashville numbers. Paste chords-over-lyrics text and it converts it to ChordPro for you, and it exports any selection of charts as a ChordPro .zip.

Read your charts the way you play them.

Paste a chart and see it with chord diagrams, transpose and capo shapes.

Sign up free

Public beta: free for up to 50 songs, no card. Questions: support@songroost.com.

Building a library? Organize the songs you're learning.