Skip to content

ChordPro basics

Bracket chords, directives, sections — the format Loadout uses to render charts on stage.

ChordPro basics

ChordPro is a plain-text format for chord charts that's been around since the late '80s. Chords go in square brackets inside the lyric line, right where the change happens. The renderer stacks the chord over the lyric on stage.

Loadout reads, writes, and transposes ChordPro everywhere.

The bracket syntax

[G]Twinkle twinkle [D]little [G]star
[C]How I [G]wonder [D]what you [G]are

Anything in [ ] is a chord. The text before, around, and after is the lyric. The renderer positions each chord directly over the character that follows it.

That's 90% of what you need.

Directives

Lines starting with { configure the chart. The ones Loadout uses:

{title: Twinkle Twinkle Little Star}
{artist: Traditional}
{key: G}
{tempo: 90}
{capo: 2}

These are metadata the renderer surfaces in the song header and the stage strip. The Details half of the song editor reads from these for title/artist/key/BPM — so if you paste a ChordPro chart that includes them, those fields populate automatically.

Sections

Wrap a block of lines in section markers to label it:

{start_of_verse}
[G]Twinkle twinkle [D]little [G]star
[C]How I [G]wonder [D]what you [G]are
{end_of_verse}

{start_of_prechorus}
[Em]Almost [Am]there...
{end_of_prechorus}

{start_of_chorus}
[D]Up above the [G]world so [D]high
{end_of_chorus}

{start_of_bridge}
[Em]Like a [Am]diamond [D]in the [G]sky
{end_of_bridge}

On stage, each section block renders as a styled pill: verse Pre-Chorus chorus bridge. The pill for the section you're currently playing fills out solid — like chorus — and the rest stay outlined. The now/next strip at the top of the stage view shows the active pill for whatever's playing.

The short form {soc} / {eoc} and {sov} / {eov} also work.

Section types and how labels map

Loadout has four internal section types. Many common label variants are auto-normalized to one of these, so you don't have to memorize the exact form:

Pill displayedLabels that map to it
verseVerse, Pre-Verse, Rap, Rap Verse, Spoken Word, Head
Pre-ChorusPre-Chorus, Pre Chorus, Prechorus, PreChorus
chorusChorus, Post-Chorus, Refrain, Hook, Drop, Key Change, Modulated Chorus
bridgeBridge, Intro, Outro, Ending, Interlude, Instrumental, Solo, Tag, Coda, Vamp, Breakdown, Build, Buildup, Turnaround, Lift, Reprise, Fill, Break, Riff, Theme, Stop Time, Ad-lib, A/B/C Section, Trio, Transition, Channel, Backing Vocals, Choir, Strings, Horns, Brass, Harmony

Bridge is the catchall — anything instrumental, interlude-ish, or arrangement-only ends up there. Pre-chorus is its own thing musically (the build before the chorus), so it gets its own pill instead of being lumped in with the chorus.

Bracket-style labels (auto-cleaned)

Some external sources (YouTube → ChordPro, BandHelper exports, hand-typed charts) use square-bracket labels instead of the {start_of_X} directives — like [Verse 1], [Pre-Chorus], [Chorus], [Bridge], [Solo]. Loadout recognizes both forms and treats them as section starts. The labels normalize per the table above.

When you paste source like that into the song editor, you'll get a toast offering to clean it up into proper directives. Click Convert and the brackets become canonical {start_of_X} markers — saves you the manual rewrite and avoids edge cases where bracketed labels accidentally look like chords (e.g. [B]ridge getting transposed into [C#]ridge).

Labels Loadout normalizes for you, automatically:

  • Case-insensitive[CHORUS] and [chorus] are the same.
  • Trailing punctuation stripped[Verse 1:] → verse.
  • Parenthetical qualifiers stripped[Chorus (Modulated)] → chorus.
  • Adjective qualifiers stripped[Big Chorus], [Final Chorus], [Half Chorus], [1st Verse] all classify to their core type.
  • Instrument prefix stripped[Guitar Solo] / [Drum Solo] / [Sax Solo] → solo (which then maps to bridge).
  • Separator-agnosticPre-Chorus, Pre Chorus, and Prechorus all hit pre-chorus.
  • Trailing numbers stripped[Verse 1], [Verse 2], and [Chorus 2-3] all classify the same.

Comments

{comment: Drop hard before the second chorus}

Renders as a callout line in the chart but doesn't affect lyrics or chords. Useful for stage cues.

Inline chord-over-lyric vs. chord-line-only

Two patterns Loadout supports:

Inline (preferred):

[G]Twinkle twinkle [D]little [G]star

Chord line above lyric line:

G       D      G
Twinkle twinkle little star

The renderer handles both. Inline is more compact and survives line-wrapping better — it's what every importer produces. Chord-line-only is what you'll see in some OnSong files; it works but doesn't transpose as cleanly.

What you don't have to know

ChordPro has a thicker spec (chord-pro 6, custom directives, abc/lyrics blocks, key changes mid-song). Loadout reads what it reads and ignores the rest gracefully — you won't break the chart by leaving extra directives in. Don't sweat learning the full spec.

Tip: The fastest way to learn ChordPro is to import one song you know via YouTube → ChordPro. Look at the chart it produces. The format reads naturally backwards from a finished chart.

What's next

  • Importing — let an importer write the ChordPro for you.
  • Transposing — how bracket chords get shifted up or down.

Last updated: 2026-06-03