The File Format ChordPro: An Introduction

To make sure everyone can get the most out of the uploaded files, we only accept texts in the ChordPro format. That may feel a bit unusual at first, but it’s absolutely worth it — and you’ll learn it very quickly, promise! 🙂

If you’re already familiar with ChordPro: here’s a short cheat sheet with all our requirements and a template. This page here is for people who are new to ChordPro or want detailled explanations.

We also have a Chordpro Format Checker Web-App that is super helpful to check for simple formatting errors.

ChordPro is an open, text-based file format for song lyrics with chords. To write ChordPro, you don’t need any special program — you can simply use Notepad or any editor that can create .txt files.
(But to read and use them properly with all features, you’ll want a ChordPro app. It’s absolutely worth installing!)

So just open the text editor of your choice, create a plain text file, paste in your song lyrics — and off you go.

ChordPro enhances the song text with two types of markup:

  • Chords — these are literally just the chords. They are placed in square brackets [ ... ].
  • Directives — these are information about the song that ChordPro apps can use for smart formatting. They are placed in curly brackets { ... }. They’re used for things like:
    • Beginning and ending of chorus or bridge
    • Comments
      • The {c:} or {comment:} directive marks comments of any kind and can be used for any sort of note.
      • Important: put no space after the colon!
    • Metadata such as title and artist (Note: for all directives except comments, spaces after the colon don’t matter.)

On this page, we explain the full format using Sagensang’s “Der schwarze Ritter” as an example (and others where helpful).
(You can copy the grey code blocks using the copy-Button button to the right.)

Note! We explain everything in an order that’s easy to follow, especially for beginners. This is NOT the order these entries appear in the file — just a recommended workflow. We’ll explain what goes where when the time comes.
If you ever get confused, just look at one of the already published ChordPro files as a reference. 🙂

Table of Contents:


Structure of a ChordPro File for the Open Filk Songbook

File Names

Save your file as a .txt file at first, or directly as .pro, and name it like this:

Submitter__Title.pro
(Yes, that’s two underscores! It makes the lists easier to read.)

  • For “Submitter”, use your Filk name. (For combinations of legal name and pseudonym, please check the linked page.)

Examples

Sagensang__Der schwarze Ritter.pro 
Steve Macdonald__Crossroads.pro

General Structure

ChordPro files are basically structured like this:

Chordpro files structure

At the top, you have a header with the title and artist. Then comes the actual song text with chords.

Because the Open Filk Songbook requires a few additional pieces of information (so-called metadata), we add two more sections:

Chordpro files structure for open filk songbook


1. The Header

At the very top of the file, title and artist must be entered like this:

{title: Der schwarze Ritter} 
{artist: Sagensang}

(If you’re familiar with ChordPro already: please don’t use {subtitle} — use {artist} instead!)

For “artist”, please use your Filk name.

If the song is a derivative (e.g. using the melody of another song), add the original artist after a plus sign. (For non-filk originals: use the most well-known performer.) Example: {artist: Gavran + Frank Sinatra}.

If multiple songwriters are involved, list them with plus signs as well (e.g., {artist: Lastalda + Nani}).


2. The Song Text

After the header you list the lyrics. Blank lines separate sections (like verses, chorusses and bridges).

To mark a chorus:

  • Put {c:Chorus:} (or {c:Refrain:}) before the first chorus line.
  • Then {soc} or {start_of_chorus}.
  • Then the chorus text.
  • Close with {eoc} or {end_of_chorus}.

To mark a bridge, use:

  • {c:Bridge}
  • {sob} or {start_of_bridge}
  • {eob} or {end_of_bridge}

Example

{c:Chorus}
{soc}
Ich wollte nie der schwarze Ritter sein in euren Heldensagen
Er gilt als hässlich, grausam und gemein, das kannst du jeden fragen
Ich wollte nie der schwarze Ritter sein, doch hat’s sich so ergeben
Jetzt bin ich hässlich, grausam und gemein und muss wohl damit leben
{eoc}

Then continue with verses, bridges, chorusses, etc., marking the sections that need marking (verses remain unmarked).

The Chords

Now add the chords. Chords are always placed before the syllable they belong to, and they go inside square brackets.
This also applies when the chord change occurs in the middle of a word, e.g. es[G]cape.

Example

{title:Der schwarze Ritter}
{artist:Sagensang}

{soc}
Ich [Am]wollte nie der [Dm]schwarze Ritter [Am]sein 
in [Am]euren Helden[E]sagen
...
{eoc}

👉 Important rules:

  • Always use English chord notation! (So B and Bb, not German H and B.)
  • Basic chords: C, D, E, F, G, A, B
  • Chord modifiers go after the root:
    • [C] → C major
    • [Cm] → C minor
    • [C#] → C-sharp major
    • [C#m] → C-sharp minor
    • [C/E] → C major with E in the bass
    • [C7] → C7

For unusual chords, you can define your own with the {define:...} directive (instructions here).


3. Metadata

Everything up to here is enough to have a valid ChordPro file that can be used in Songbook apps.

For the Open Filk Songbook, we need a few additional details. Some of them protect us legally. Others are used to build the indices that make your songs findable in the Songbook.

These metadata are split into two main blocks:

  • The Preamble is located between the header and the lyrics and mainly contains info useful for performing the song:
    • Who wrote the song?
    • What’s it about?
    • Which capo (if any) was used?
  • The Footer comes after the lyrics and contains additional info:
    • If applicable: on which album has the song appeared
    • If applicable: link to a recording and/or sheet music
    • Information about the license the song is published under

There must be 2 blank lines between the three main blocks (preamble, song text, and footer) to separate them!

3.1 The Preamble

As said, this comes after the title/artist block and is separated from it by one blank line.

3.1.1 Credits / Copyright

In the first block of the preamble, we list who was involved in creating the song and when it was created.

For original songs:

For originals (i.e. not based on another song) it’s pretty straightforward.

Example:

{c:Lyrics & Music: Sagensang, 2020} 
{meta:year:2020} 
{meta:filkers:Sagensang} 

or: 

{c:Lyrics: Draketo, 2016} 
{c:Music: Lastalda, 2025} 
{meta:year:2025} 
{meta:filkers:Draketo,Lastalda}

So we need:

  • The people who wrote lyrics and music (use their Filk names). (All lyric authors need to be registered. See registration.)
    • Preferably include the year/date if you know it (otherwise omit).
    • These entries should be human-readable and go into comment directives {c:}, so they are visible in the apps.
  • The year the song was completed as {meta:year:}. (If you don’t know it, leave the line out — but the song won’t appear in the “by year written” index if it’s missing.)
  • A list of all participating filkers (again, use Filk names), as {meta:filkers:} — a comma-separated list with no spaces. The content of this list is the basis for the “by artist (filkers)” index.

For derivatives:

For derivatives (= songs based on other songs) it gets a bit more complex.

We still need the same info as for original songs, plus:

  • Please include the title and composer/author of the original song (to the best of your knowledge) under {c:Music:}.
  • If the original is not a filk song, put its composer(s) and known performers/bands into an additional list called {meta:nonfilkers:}. This is used to build the “by artist (non-filers)” index. (If you’re unsure whether someone is a filker: put the name in both lists so the song appears in both indices.)
  • The title of the original song (and only the title) must be added as {meta:original_song:}. The “by referenced song (for derivatives)” index is based in this.

A complete example could look like this:

{c:Lyrics: Lastalda, 25.02.2018} 
{c:Music: "Never enough" by Pasek and Paul, from "The Greatest Showman" soundtrack} 
{meta:year:2018} 
{meta:filkers:Lastalda} 
{meta:nonfilkers:Pasek and Paul,The Greatest Showman} 
{meta:original_song:Never enough cake}

Put one blank line after the credits block.

3.1.2 Context

If you want to add a short note about the song’s background or what it’s about, this is the right place. Use the comment directive {c:}, e.g.:

{c:This song was inspired by...}

Please keep it short. A few lines are fine, but don’t write a novella. 🙂

Note: the Songbook apps don’t auto-wrap comment text — multiple short comment lines (each with its own {c:}) are more readable than one long line.

3.1.3 Capo

If you want to include a capo instruction, put it here at the end of the preamble as a comment, preceded by one blank line:

{c:Capo 3}

After that the preamble ends and you must add 2 blank lines and then the song text.

3.2 The Footer

This goes at the end of the file, after the lyrics, with 2 blank lines between the lyrics and the footer.

3.2.1 Further information and links

In the first block of the footer, you can optionally add the following information (one after another, no blank lines between them, and only the ones that apply and you want to include). These will be visible in the Songbook apps, and links are usually clickable.

Has this song appeared on at least one album? If yes:

{c:Album: "Album title" by Artist}

If it’s on multiple albums, add one such line per album.

Is there a recording online? If yes:

{c:Recording:} 
https://www.url/to/the/song

Are there sheet music files online? If yes:

{c:Sheet music:} 
https://www.url/to/score

Put one blank line after this whole block. (If the whole block doesn’t exist, don’t add the extra blank line.)

3.2.2 License notice

In the second block of the footer, you must state under which license you want to publish the file. If you don’t set it, we’ll add this default license:

{c:License (Lyrics): Filksongbook Minimal License V1.0, http://filksongbook.com/info/minimal-license-1-0}

You’re welcome to use any license from our license list.

Note! You may only license what you actually own! So if the music belongs to someone else, usually you can only license the text (hence the scope “Lyrics”).

If it’s entirely your own song or you’ve agreed with all copyright holders, you can also include a license for the music, e.g.:

{c:License (Lyrics): SING, https://www.thesilee.de/filk/sing/} 
{c:License (Music): CC BY-NC-SA, https://creativecommons.org/licenses/by-nc-sa/4.0/} 

or (if both are the same license): 

{c:License (Lyrics & Music): SING, https://www.thesilee.de/filk/sing/}

By providing a license you take responsibility that you are allowed to do so (i.e., all the other copyright holders have agreed to this).

The “source” and “date added” fields you see in finished files are added automatically during curation, so you don’t need to provide them. 🙂

Then please add one blank line.

3.2.3 Tags

Tags aren’t displayed, but they’re super handy for searching and sorting songs (see also Songbook). Think of them as categories that fit your song. Our thematic indices are based on these tags:

Tags are optional — but if you don’t add any, the song won’t appear in those thematic indices and will be harder to find.

Please put one tag per line, as many as you like and fit the song:

{tag:theme:medieval} 
{tag:mood:funny} 
{tag:language:German}

That way this particular song will show up in the Songbook app when searching for medieval-themed songs, funny songs, or German-language songs.

👉 Please try to use only tags from our official list, so we don’t end up with multiple spellings for the same thing!
(You can suggest new tags via the contact form or email — we’ll discuss them and will probably add ones that look like they’ll be useful for more than one or two songs.)

3.2.4 Other metadata

If you want to set invisible directives like {define:}, {time:}, or {key:}, the end of the file is the right place. If not, don’t worry about it. 🙂


👉 And that’s it! Using this scheme, you can start writing your songs in ChordPro format and upload them as soon as your registration is complete. (We encourage you to use the Chordpro Format Checker Web-App before submitting.)

It’s usually a good idea to start with one song, wait for feedback, and if that goes through smoothly, go work on more files.