Creating / Editing Song Files

LivePrompter Song File Format

LivePrompter uses text files (extension: “.txt”). Their file name is used to identify the song inside LivePrompter; it also is used when creating setlists. Therefore it makes a lot of sense to give your files meaningful names (why not the song title?).

Lyrics and Chords

Lyrics and chords format follows the ChordPro standard:

Lyrics are simply entered in the text file line by line. ATTENTION: LivePrompter does not do any line-breaking – anything that is too long for the screen width will be brutally truncated!

Chords are entered in square brackets at the musically correct place in the lyrics. This will display them above the lyrics at the right place

Section headings (chorus, verse, solo, …) are simply lines that end with a colon (“:”). This will display them in bold and in a special color.

An example:

Verse 1:
A[C]mazing [(C7)]grace, how [F]sweet the [C]sound,
that [C]saved a [Am]wretch like [G]me!
I [C]once was [C7]lost but [F]now I'm [C]found,
was [Am]blind, but [G]now I [F]see.[C]

…is displayed as:

Some specifics on entering chords, so that things go smoothly when transposing:

  • Base notes are always entered in English notation (C D E F G A B C), so there is no “H”, as some national conventions (e.g. Germany) notate the English “B”. But: you can configure LivePrompter to display a “B” as “H” in the settings!
  • Minor chords are entered with “m”, sharps and flats with “#” and “b”. So A flat minor is “Abm”, F sharp major is “F#”, B flat is “Bb” (watch out, you Germans!).
  • Chord options are simply appended (and not affected by transposing), e.g. “C7b9” or “Dsus4”
  • LivePrompter also accepts “slash chords”, i.e. chords with a bass note that differs from its root, e.g. “C7/E” is a C7 chord above an E bass note.
  • Optional or passing chords can be entered in parentheses
  • Unlike the standard ChordPro format, LivePrompter also recognizes multiple chords in one set of square brackets, e.g. also “[Am D7 Gmaj]” instead of  “[Am] [D7] [Gmaj]”.
  • LivePrompter will also accept Nashville notation (numbers) and roman numerals for chord roots. These will not be transposed – that’s what Nashville notation is about…
  • When a line contains only chords in one set of square brackets and no lyrics, LivePrompter does NOT create an empty line of text below it. This is convenient for instrumental parts or solos without any lyrics.
  • If you want to add “non-chord” text inside chord brackets, prefix it with an asterisk (*) – LivePrompter will then simply display the text (up to the next “space”) and not try to interpret or transpose it.

Tags – Commands for LivePrompter

To give LivePrompter instructions or meta-data, we use so-called “tags” that we enter into our song file – each on its own line! Tags will (mostly) not be displayed on-screen but are used to give LivePrompter information on the song or instructions for displaying and scrolling the song.

Tags always have the same format: {command:data} or {command}

So they are always enclosed in curly brackets and contain the actual command as well as the data needed after a colon. When the command alone is sufficient, there is no colon and no data part.

A tag always needs to stand alone in its own line, and it needs to be at the beginning of this line, so no leading spaces!

LivePrompter’s tags are based on those of the ChordPro format. Today, there are several customized extensions of this format around, all created by various software producers using the ChordPro format. LivePrompter uses some of these extensions as well as some of its own special creations, but I have tried to stay as close to the ChordPro standard as possible, so that the song files you create stay usable in as many programs as possible.

You can get details on all tags that LivePrompter understands in the reference section, but some tags you should know about to start out with:

{title:text}Song title
{subtitle:text}Subtitle, often also used for artist information
{artist:text}Artist
{key:text}Song key – same format as chords (see above). The key tag is used for achieving a musically meaningful interpretation of the transposed chords (G# or Ab?).  
NB: multiple key tags are possible within a song (important for transposing when the root key modulates within a song. The key tag then is valid starting at its position within the text.
{transpose:number}Transposes all chords by the respective number of semitones. Positive and negative numbers are possible.   NB: multiple transpose tags are possible within one song; transposition is then valid starting with the position of the tag within the song. This is pretty useful e.g. when transposing the final chorus up a semitone. Simply copy the previous chorus and precede it with the line {transpose:1}  
{tempo:number}The song tempo in beats per minute (BPM) – this is used by the metronome  
{metronome:number}This is a multiplier for the song tempo. Useful if you have a slow song, so you want to have the metronome in eights instead of in quarter notes – just use {metronome:2}
{duration:time}Duration of the song in the format minutes:seconds, e.g. 02:03. The duration is used to calculate scrolling speed when not using time markers (see separate article on scrolling)
{comment:text}This tag actually creates something you can see: it inserts a comment in your song that is formatted differently. This helps distinguish optically between lyrics that you actually sing and instructions, notes, and other helpful things like “sing very quietly”.

Text Highlights

To highlight individual words or phrases within a text line, simply enclose them in “>” and “<”. Chords within this segment will still be formatted normally. This way:

You >can’t [A]eat (ooh)<, you can’t sleep

will be displayed as:

This highlighting this way will only work within one line – don’t try this across multiple lines!

For multiple lines, you can use the tags {start_of_highlight} and {end_of_highlight} (or {soh} and {eoh}) – as usual, these tags need a line for themselves – they will highlight all text between them.

Update: Multiple Highlights (v 1.4.6)

Version 1.4.6 introduces a new feature: multiple highlight colors. A number of users have asked if we could have multiple colors to highlight songs, e.g. to mark parts sung by different singers. So now LivePrompter offers five different highlight colors. You choose the highlight color by putting a number from 1..5 behind the opening “>”. No need to put a number around the closing “<“; this always closes the current highlight.

For multiple lines, you can use {start_of_highlight:<number>} or {soh:<number} – the corresponding end_of_highlight doesn’t need a number.

So a song could look like this:

{soh:1}
Whole Line Highlight 1
{eoh}
Normal Text
{soh:2}
Whole Line Highlight 2
{eoh}
Normal Text
{soh:3}
Whole Line Highlight 3
{eoh}
Normal Text
{soh:4}
Whole Line Highlight 4
{eoh}
Normal Text
{soh:5}
Whole Line Highlight 5
{eoh}

Inline >Highlight default< Inline 
Inline >1Highlight 1< Inline 
Inline >2Highlight 2< Inline 
Inline >3Highlight 3< Inline 
Inline >4Highlight 4< Inline 
Inline >5Highlight 5< Inline

InLine >5Highlight 5 with [Cm]chords< and back to normal

This would then look like this:

Note 1: no “nesting” of highlights – ending one highlight will end all highlights…

Note 2: the original way of highlighting will still work – this automatically selects highlight 1.

Note 3: you may experience issues if you have “>”-highlighted parts in your song with that start with a number. This number will now be interpreted as a selection of highlight color and not displayed. This is easy to fix: simply insert a “1” before this number to explicitly select highlight color 1 – now your original first character will be displayed again.

As all other colors, the colors for the five different highlights can be defined in Settings –> Display / Colors (dark mode) or Colors (light mode).

Commenting Your Song Files

Text lines that start with “#” will not be displayed on screen. You can use this to comment your song file code

#This line is simply a comment

You can also use this to temporarily deactivate tag lines without completely deleting them

#{transpose:2}