Your app is being rebuilt.

A non-hot-reloadable change occurred and we must rebuild.

ChordPro syntax reference

Checking account access…

Every directive and shorthand Akordo understands when rendering a chart.

Overview

ChordPro is a plain-text format for chord charts. Instead of lining chords up above lyrics with spaces, which breaks as soon as the font changes, you put each chord in square brackets right before the syllable it belongs to.

The result renders cleanly at any size on screen, in Stage mode, and in PDF.

Akordo supports the core of the ChordPro standard plus a relaxed shorthand for section headers. Directives that are not listed here are ignored and dropped from the rendered chart.

Basic syntax

Chords

Put a chord in square brackets before the syllable where it changes:

[C]Amazing [G]grace how [Am]sweet the [F]sound

This renders as:

C         G        Am        F
Amazing grace how sweet the sound

Chords can follow each other directly when they change faster than the words:

[Am][G][F]Word

Write a rest as [N.C.]. Write bar lines with [|], or group several chords in one bracket separated by bars, such as [C | G | Am]. A repeat bar is [|:] or [:|], and a double bar is [||].

Text on the chord line

Start a bracket with an asterisk to show its text on the chord line exactly as typed, instead of reading it as a chord:

[|] [*9/8] [Bm] [D] [G] [|] [*6/8] [D] [|]
[*Rit.]Slowly [G]home

Use it for meter changes, cues like Rit. or Coda, and anything else that belongs above the lyrics. The text is never transposed, converted to Nashville numbers, or opened as a chord when tapped. Italics work inside, such as [*<i>Rit.</i>]. Without the asterisk, a bracket like [9/8] is read as a chord.

Lyrics

Type lyrics normally. A line with no chords renders as plain text. Leading indentation is kept, and blank lines are ignored.

Metadata directives

Metadata directives usually go at the top of the chart. Each one is a whole line in curly braces.

Title

{t:Song Title}
{title:Song Title}

Subtitle and artist

{st:Live at the Chapel}
{subtitle:Live at the Chapel}
{artist:The Beatles}

Subtitle and artist are separate fields and both print under the title.

Key

{key:C}

Sets the key. The key drives transposition and Nashville numbers, and the arrangement's key setting overrides it.

Time signature

{time:4/4}
{time:6/8}

The top number can be 1 to 32. The bottom number must be 1, 2, 4, 8, 16, 32, or 64.

Tempo

{tempo:120}

Beats per minute, from 20 to 300. The metronome uses this value.

Section directives

Chorus

{soc}
[C]This is the [G]chorus
{eoc}

Start of chorus and end of chorus. The section is titled Chorus.

Bridge

{sof}
[Am]Bridge section [F]here
{eof}

Start of figure and end of figure. The section is titled Bridge.

Instrumental marker

{ns}

Renders the text [Instrumental] on its own line. It does not start a section, so put chord lines after it as usual.

Relaxed section headers

You can skip the directives and type a section name on its own line:

INTRO
[C] [G] [F]

VERSE 1
[C]Hello [G]world

CHORUS
[F]Sing it [C]loud

BRIDGE
[Am]Something [G]different

OUTRO
[C] [G] [C]

Headers are case-insensitive. A trailing colon is ignored.

Other short, standalone uppercase lines are section headers too, such as BUILD or GUITAR BREAK. They can contain up to three words (32 characters total), with letters, numbers, and hyphens; at least one word needs three letters. Use \BUILD when such a line should be lyrics instead, or {section: Build} to mark a mixed-case custom header explicitly.

Recognized section words

  • INTRO
  • VERSE, optionally numbered: VERSE 1, VERSE1, VERSE II
  • PRE-CHORUS, PRECHORUS, PRE CHORUS
  • CHORUS
  • BRIDGE
  • REFRAIN
  • INTERLUDE
  • SOLO
  • INSTRUMENTAL
  • TURNAROUND, including TURNAROUND 1 and TURNAROUND 2 (x2)
  • TRANSITION
  • VAMP
  • TAG
  • OUTRO, ENDING

Notes on section headers

Add a note in parentheses or square brackets after the section word:

VERSE 1 (acoustic only)
CHORUS [full band, heavy drums]

Several notes are combined. Italics work too:

INTRO <i>(keys only)</i>

Repeat markers

INTRO (x2)
CHORUS (x4)

The marker is shown next to the header. It does not duplicate the section.

Key changes inside a song

For a modulation, put a transpose line between sections:

CHORUS
[C]Final [G]chorus [F]here

TRANSPOSE KEY +2

CHORUS (modulation)
[C]Final [G]chorus [F]here

Write the chords after the directive in their original key: the renderer applies the shift. For example, the second C–G–F line above displays as D–A–G. Do not also transpose the source chords, or the shift will be applied twice.

Everything after the line shifts by that many semitones. The sign is required, so write +2 or -3, never 2. The words are case-insensitive. Shifts accumulate:

VERSE 1
[C]Verse one

TRANSPOSE KEY +2

VERSE 2
[C]Verse two

TRANSPOSE KEY +2

VERSE 3
[C]Verse three

Comments

Both comment forms render as visible comment lines in the chart and in PDFs:

{c:Play softly here}
{comment:Guitar solo follows}
# Build intensity into the last chorus

There is no hidden comment syntax. For private reminders, use a private arrangement note instead. See Songs.

Text formatting

Italics

INTRO <i>(keys)</i>
VERSE 1 <em>(acoustic guitar)</em>

Both tags work, in headers, lyrics, and inside chord brackets. Italics render on screen and in PDF.

Literal lines

Start a line with a backslash to render it exactly as typed, without treating it as a header, comment, or directive:

\INTRO

Column breaks

VERSE 1
[C]Content here

COLUMN_BREAK

VERSE 2
[C]More content in the next column

Forces the following content into the next column in the two-column PDF layout and in paged Stage mode. COLUMN BREAK with a space also works, in any case.

Strum patterns

The visual Strumming editor stores patterns as one-line {akordo_strum: ...} directives in the chart source. This is an Akordo extension, not standard ChordPro. Keep these lines when copying a chart if you want its patterns to follow it. Use the visual editor to create or change patterns; malformed or duplicate pattern data must be repaired before visual saves can continue.

Patterns appear in the interactive chart controls, not in the printed chart or PDF. Other ChordPro apps may ignore them. See Strum patterns for editing and playback.

Not supported

Akordo ignores these standard ChordPro directives, and any others not listed above. They disappear from the rendered chart without a warning, so check imported files:

  • {sot} / {eot} tablature blocks. Use the tablature builder in arrangement notes instead.
  • {sov} / {eov} and {sob} / {eob} verse and bridge blocks. Use relaxed headers.
  • {capo}. Choose your personal capo in the chart controls instead.
  • {define}, {composer}, {album}, {duration}, and the {start_of_...} long forms.

Limits

A chart can be up to 10,000 characters.

Complete example

{t:Example Song}
{st:Demo Artist}
{key:G}
{time:4/4}
{tempo:110}

INTRO
[G] [D] [Em] [C]

VERSE 1
[G]Here's the [D]first verse
[Em]Singing [C]loud and clear
[G]Every [D]word is [Em]true [C]

CHORUS
[C]This is the [G]chorus now
[D]Sing it [Em]out
[C]Don't hold [G]back [D]

VERSE 2 (acoustic only)
[G]Second [D]time around
[Em]Softer [C]here

{c:Build intensity}

CHORUS (x2)
[C]This is the [G]chorus now
[D]Sing it [Em]out

TRANSPOSE KEY +2

CHORUS (key change)
[C]This is the [G]chorus now
[D]Sing it [Em]out

BRIDGE <i>(drums kick in)</i>
[Am]Building [G]up
[F]Getting [G]louder

OUTRO
[G] [D] [G]

Tips

  • Be consistent: pick one style for section headers and keep it
  • Use sections: they make the chart easy to navigate in rehearsal and let notes attach to the right place
  • Set tempo and time: the metronome and setlist planning use them
  • Check the PDF: add a column break where the print layout needs it

Next steps