Loading

ChordPro format: how to write intros, solos, repeats and key changes

Got the verses and chorus in ChordPro format? Here is how to write the rest: intros and solos, timing, section names, repeats, key changes and tabs.

Dear John

· 8 min read

Getting the verses and the chorus of a song into ChordPro format is the easy part: you put each chord in square brackets, right before the word it falls on, like [G]Hello. Then you reach the intro with no words, the solo, the chorus that comes back three times, or the key change at the end, and it is less clear what to type.

This post goes through those parts of writing songs in ChordPro format one at a time, in the order you meet them in a song. Each part shows what to type, and which button in Fretlist's editor types it for you. Under each one is the editor itself, with a short piece of a song in it. Change anything you like and the preview on the right follows. Nothing is saved.

New to ChordPro? The ChordPro guide explains the basics first.

How to write an intro or a solo with only chords in ChordPro format

A part with no words is a line with only chords on it. Put each chord in its own brackets, with a space between them:

[C] [Am7] [F] [G]

Fretlist draws this as a row of chords, keeping the spaces you typed between them.

Two more things fit on a line like that:

  • How many times. A word in brackets that starts with an asterisk is a note, not a chord. [*x2] shows "x2" in the row of chords, and it stays "x2" when you change the key.
  • Bar lines. [|] draws a | between the chords, so you can see where each bar starts.

To give the part a name, wrap it in a section. ChordPro lets you make up your own: {start_of_intro} and {end_of_intro} give a section called "Intro", and {start_of_solo} and {end_of_solo} one called "Solo".

encore.cho
In Fretlist
Chords
C
Am7
F
G
Am
Intro
C Am7 F G x2
Verse 1
CLights go Am7down on the Flast song Gplayed
Solo
| Am F | C G |

Try it with your own song: in Fretlist, open a song in the editor, choose ChordPro above the text, and add the intro as one line of chords in brackets.

How to show how long each chord lasts

ChordPro has no standard way to say "two beats of G, then two of C" inside a line of lyrics. For a part where the timing matters, use a chord grid. A grid has no words, only bars and beats:

{start_of_grid label="Intro"}
| C . . . | Am7 . . . | F . . . | G . . . |
{end_of_grid}

Each | is a bar line, and each spot after it is one beat. A chord name starts a chord on that beat, and a dot means "keep playing". So | F . G . | is two beats of F, then two of G.

A few more marks:

  • ~ puts two chords in one beat: G~Am.
  • |: and :| are repeat signs around the bars you play twice.
  • % repeats the bar before it.

In the editor, Chord grid under Directives writes an empty grid with four bars to fill in, and Repeat bars one with repeat signs. The chord grids docs show everything else a grid can do, including first and second endings.

encore.cho
In Fretlist
Chords
C
Am7
F
G
Am
Intro
C
Am7
F
G
Solo
Am
F
C
GAm
G

Playing an instrument and only want the chords? Under Show and hide you can switch the lyrics off. The chords stay where they were above the words, and the grids stay too.

How to name a section: a pre-chorus, a tag, or your own language

Verse, chorus and bridge have their own sections in ChordPro, and you can name each one as you like. In the editor, pick Verse under Sections and type the name between the quotes:

{start_of_verse label="Strophe 1"}
[C]Lights go [Am7]down on the [F]last song [G]played
{end_of_verse}

That is the form every ChordPro app reads. Fretlist also reads two shorter ones, which is what you often get when you paste a song from somewhere else:

  • A name in square brackets on its own line: [Pre-Chorus].
  • A name followed by a colon on its own line: Refrein:, Vers 2:, Tag:. Up to three words, in any language.

One thing that is not a heading: a comment. {comment: Strophe 2} stays a comment, in Fretlist and in the ChordPro standard. Comments are for remarks, which is the next part.

encore.cho
In Fretlist
Chords
C
Am7
F
G
Am
Strophe 1
CLights go Am7down on the Flast song Gplayed
Pre-Chorus
AmNobody Fmoves and Gnobody stays
Refrein
CSing it Gout and the Amnight feels Fyoung
CHold the Gline till the Fmorning Ccomes
Strophe 2 is the same as Strophe 1

How to add comments for the band, and backing vocals

A comment is a remark that is not a lyric: "softly", "drums in", "second voice a third lower". Put it on its own line:

{comment: Softly, just vocals and guitar}

In the editor, Comment under Directives writes it for you. Two other kinds look different on the sheet: {comment_italic: ...} is drawn in italics, and {comment_box: ...} in a box, for the one remark nobody may miss.

For backing vocals, the simplest way is parentheses in the lyric, on the words the backing singers sing:

[C]Nobody [Am7]moves (nobody [F]moves) and [G]nobody stays

Parentheses read the same in every app.

encore.cho
In Fretlist
Chords
C
Am7
F
G
Verse 2
Softly, just vocals and guitar
CNobody Am7moves (nobody Fmoves) and Gnobody stays
Second voice a third lower from here
CHold the Gline till the Fmorning Ccomes
Everyone in on the last chorus

Can you color text in ChordPro format?

The ChordPro standard has two ways. <span foreground="red">words</span> colors a few words, and {textcolour: red} or {chordcolour: blue} colors everything after it. The standard spells them the British way.

Fretlist draws every song in the same colors, so a library you imported from five places still looks like one library. You pick the chord color yourself, under Settings > Appearance > Chord & key color. A <span> in a song is taken out and its words stay. A color line is left in the file, so another app that reads it still gets it, but Fretlist does not draw it.

For a line that has to stand out on stage, use {comment_box: ...} from the part above.

How to repeat the chorus without copying it

Write the chorus once, between {start_of_chorus} and {end_of_chorus}. Then, wherever it comes back, put one line:

{chorus}

Fretlist prints the whole chorus again in that spot, chords and lyrics, so on stage you never scroll back to find it. To give the repeat its own name, add a label: {chorus: label="Last chorus"}.

In the editor, type / at the start of a line below the chorus and pick Repeat chorus. It only shows up once there is a chorus above it.

{chorus} repeats the chorus and nothing else. A verse or a bridge that comes back is written out again.

encore.cho
In Fretlist
Chords
C
Am7
F
G
Am
Verse 1
CLights go Am7down on the Flast song Gplayed
Chorus
CSing it Gout and the Amnight feels Fyoung
CHold the Gline till the Fmorning Ccomes
Verse 2
CLights come Am7up on an Fempty Gstage
Chorus
CSing it Gout and the Amnight feels Fyoung
CHold the Gline till the Fmorning Ccomes
Last chorus
CSing it Gout and the Amnight feels Fyoung
CHold the Gline till the Fmorning Ccomes

Try it on one of your own songs: in Fretlist, find the second chorus in a song, delete it, and type / to put Repeat chorus in its place.

A chord in the middle of a word, two chords on one word, or no chord

A chord goes right before the letter it falls on, also in the middle of a word: la[F]st. Fretlist puts the F over the "s" and leaves the word in one piece.

Two chords on one word: write both, one after the other, before the word. [F][G]nobody draws the F just before "nobody" and the G over it.

No chord for a moment, for a stop or a part sung alone: write [N.C.] where the band stops. It is drawn in the row of chords and never changes with the key.

encore.cho
In Fretlist
Chords
C
Am7
F
G
Verse 1
CLights go Am7down on the laFst song Gplayed
CNobody Am7moves and F Gnobody stays
N.C.Hold the line

How to write a key change and a capo

A capo goes at the top of the song:

{capo: 2}

In Fretlist this fills in Capo in the song's details. The same goes for {key}, {tempo}, {time} and {duration}: type one, and the matching detail follows.

For a key change halfway through, like a last chorus that goes up a half step, put {transpose: 1} on the line before it. Every chord after it moves up a half step, so you write the chorus in the key you already know. {transpose: 2} is a whole step. A {transpose} with no number goes back to the key you were in.

encore.cho
In Fretlist
Chords
C
G
Am
F
Chorus
CSing it Gout and the Amnight feels Fyoung
CHold the Gline till the Fmorning Ccomes
Up a half step
Last chorus
C#Sing it G#out and the A#mnight feels F#young
C#Hold the G#line till the F#morning C#comes

How to add a riff in tab

Tab goes between {start_of_tab} and {end_of_tab}. Fretlist keeps the strings and their columns lined up the way you typed them. In the editor, Tab block under Directives writes six empty strings to fill in.

encore.cho
In Fretlist
Riff
eBGDAE||||||---------2----------0----------1----------0------------1------------0---------------------||||||

Pasting a song from Ultimate Guitar, Word or ChatGPT

Most chord sheets you find have the chords on their own line, above the words. You don't have to rewrite those by hand. Paste the song into the Chords over Lyrics tab of the editor, and click ChordPro above the text to see it written in ChordPro. Lines you did not change come back exactly as they were when you switch back. For a song on Ultimate Guitar, the Ultimate Guitar to ChordPro converter does the same without an account.

Asking ChatGPT to write a song in ChordPro? Ask it to use {start_of_verse} and {start_of_chorus} for the sections, not {comment: Verse 1}. A comment is a remark, and other apps show it as one.

The whole song

Here is one song with every part in it: a named intro with bar lines and a repeat note, backing vocals, a boxed comment, and the chorus brought back with its own label.

encore.cho
In Fretlist
Chords
C
Am7
F
G
Am
Intro
| C Am7 | F G |
C Am7 F G x2
Verse 1
CLights go Am7down on the Flast song Gplayed
CNobody Am7moves (nobody Fmoves) and Gnobody BVstays
Chorus
CSing it Gout and the Amnight feels Fyoung
CHold the Gline till the Fmorning Ccomes
Last time round: slower
Last chorus
CSing it Gout and the Amnight feels Fyoung
CHold the Gline till the Fmorning Ccomes

All of it is plain text, so a song written this way opens in any app that reads ChordPro. How much each app draws differs: the ChordPro support post has a test you can paste into any app, and the ChordPro docs list what Fretlist draws.

Try Fretlist with your own songs: paste a song into a new song, or import your whole library at once.

Share

Dear John

Written by

Dear John

Singer-songwriter and frontend developer from the Netherlands. Builds Fretlist alone.

Read the full story