Chord Grids

New feature in version 1.4.6

What are Chord Grids?

Chord grids are an interesting feature of the ChordPro standard. They are a way to use the “Jazz Grille” format of notation within ChordPro songs. The original ChordPro implementation of these chord grids is very powerful, but also very complex. To use this feature with LivePrompter, I simplified chord grids a bit to make them fit smoothly into the overall LivePrompter concept.

In a nutshell, chord grids are typically instrumental sections of a song described by bars and chords, without any lyrics. A chord grid is made up of lines of chord cells and separators. Separators can be bar lines or simply spaces. A chord cell is simply a chord notated as elsewhere in LivePrompter, but without the square brackets. If you do not want to notate a chord in a specific cell, you can use a period “.” for an empty chord cell. Also, you can use single slashes to substitute chords, as well as one or more “minus” signs to designate a pause or break.

LivePrompter will format a section between {start_of_grid} and {end_of_grid} so that all chord cells and separators have the same width – as a result, the grid will be fully aligned, without being thrown out of balance by longer chord names.

How to define Chord Grids

Let’s look at an example: The following code describes a simple chord grid. Note that every bar is composed of two chord cells, with the second chord cell left empty. This serves to make the grid a bit wider.

|| Am . | C . | D  . | F  . |
|  Am . | C . | E  . | E  . |
|  Am . | C . | D  . | F  . |
|: Am . | E . :|: Am . | Am . :|

Its output is then rendered as this:

You can see some of the different bar line types available:

  • Standard bar lines: |
  • Double bar lines: ||
  • Repetition bar lines: |: 😐 :|:
  • Closing lines: |.

With multiple chords in a bar, things become a bit more busy, e.g. like this:

|: C Em | Am C | F Am | Dm F |
|  G G  | Em G | C F  | C  G :| 

which translates to:

All chords will apply LivePrompter’s transposition settings, without throwing the layout out of whack, so applying +1 transposition to the previous example will be handled nicely:

Just the width of the grid has now become a bit too wide for the screen, so in this case, you’ll need to fiddle with {textsize:...}

By the way: not all bars need to contain actual chords – if the chord from the previous bar continues, it makes sense to just use empty cells using “.”. Also, empty lines help break up complex songs:

| D .  | . . | G7  . | . . |
| D .  | . . | E/D . | . . |
| A7 . | . . | D   . | . . |

| D . | . . | E/D . | . .  |
| A7  .| . .| D .  | . . |

An idea to note: not all bars need to have the same number of cells; it may make sense to expand one “crowded” bar in an otherwise less busy grid:

|Em .  | C  D | Em .  | C  .  D . |
|Em .  | C  D | Em .  | Am Bm C D |
| G --- |.

Bar 8 is the only one with four chords; having four cells in every bar (with three of them empty for most) would make the grid very wide, so in this case it makes sense to have the fourth column contain four cells and leave the rest at two. Here’s the result:

Defining a minimum width for chords

Sometimes you simply want to have a chord grid with one chord per bar. But if you only use one chord cell between bar lines, things become a bit cramped. To avoid having to add a second empty cell to every bar, you have two ways to add a bit of space after every chord.

Option 1: “padding” with underscores. If you want to make chords a bit wider, you can simply add underscores after them (which will be replaced with spaces in the output). Simply make one chord in your grid a bit wider by adding underscores; this will then affect the width of all chords:

| C_____ | G | Am | G |
| G | Am | D | F |.

Option 2: define a minimum width in the start_of_grid command. If you add a numerical parameter after the start_of_grid command, this defines the minimum width of a chord cell by setting it to the width of the defined number of “M” characters.

| C | G | Am | G |
| G | Am | D | F |.

Using one of these options makes it very simple to create one-chord-per-bar charts without them becoming too narrow:

That’s it – now go and create beautiful chord grids in your songs!

Note: all other directives of the original ChordPro chord grid functionality aren’t supported by LivePrompter, so if you have chord grids in your songs that are built for the original ChordPro format, you may need to edit them for them to work with LivePrompter. Some of these features are: specifying the number of cells in the start_of_grid tag, text in the left/right margin, repeat markers (“%” and “%%”) and some others.