Introduction

The Lewe ChordPress plugin for WordPress reads and processes ChordPro formatted text.

The Lewe ChordPress plugin for WordPress reads and processes ChordPro formatted text, including several content and formatting directives, and renders it for WordPress sites.

What is ChordPro

The ChordPro site introduces its text format as follows:

In 1992 Martin Leclerc and Mario Dorion developed a simple text file format to write lead sheets, songs with lyrics and chords, and a tool to create neatly printed lead sheets out of these text files. The tool was called chord, and the text files were called chord files. It soon became a popular way to write lead sheets and many users and tools adopted this format for similar purposes. For still unknown reasons people started calling the files chordpro files.

The simplicity of this text format is amazing and offers powerful options for rendering software to display lead sheets. Let’s have a look at an example:

# ---------------------------------------------------
# HEART OF GOLD
# Artist: Neil Young
# Album: Harvest
# Released: 1972
# ---------------------------------------------------
{title:Heart Of Gold}
{subtitle: A song about looking for true love}
{artist: Neil Young}
{composer: Neil Young}
{year: 1972}
{album: Harvest}

{start_of_verse}
{comment: Verse 1}
[Em]I wanna l[C]ive, [D] I wanna g[G]ive.
[Em]I've been a m[C]iner for a h[D]eart of g[G]old.
[Em]It's these expr[C]essions [D] I never g[G]ive.
{end_of_verse}

{start_of_chorus}
[Em] That keep me searchin’ for a [G] heart of gold
[C] And I'm getting’ old. [C] [Cmaj7] [C6] [G]
[Em] Keep me searchin’ for a [G] heart of gold
[C] And I'm getting’ old. [C] [Cmaj7] [C6] [G]
{end_of_chorus}

There are three distinctive characters used, identifying specific content:

  • # : A line starting with a hash is a comment and not supposed to be rendered

  • {} : Text enclosed in curly brackets identifies meta information or start/end of a lyrics section.

  • [] : Text enclosed in square brackets identifies a chord.

Lastly, the letter/syllable following the chord is where the chord is supposed to be played.

What is ChordPress

ChordPress is a WordPress plugin that processes ChordPro text and renders it on your website.

Look at this example at https://sayandsound.lewe.com/heart-of-gold/:

The original plugin was developed by "rlisle" . He did a great job with it but it seems that he did not maintain it anymore. I had some ideas for enhancing it and created ChordPro for WordPress as a branch of it.

Simply insert a ChordPro text in between the [chordpress] and [/chordpress] tags and it will be rendered based on the options set for the plugin. You can change these settings on the plugin’s option page.

The shorttags allow specifying custom options. For example: [chordpress transpose="1"] will transpose the chords rendered up by one semitone.

Features

  • ChordPress renders the lyrics/chord format of ChordPro.

  • ChordPress supports the following ChordPro tags:

    • {album}

    • {artist}

    • {capo}

    • {composer}

    • {key}

    • {subtitle}

    • {tempo}

    • {time}

    • {title}

    • {year}

    • {meta} (for all of the above)

  • ChordPress supports custom CSS for the following ChordPro tags:

    • {comment}

    • {start_of_chorus}, {end_of_chorus}

    • {start_of_verse}, {end_of_verse}

  • ChordPress supports note/chord translations

  • ChordPress supports monospace sections

    • <pre> {start_of_monospace} <your monospace text here> {end_of_monospace} </pre> Note, the the above <pre> tags are needed so that WordPress does not preformat your input.

Usage

  1. Enter a [chordpress] shortcode in your page or post editor

  2. Paste your ChordPro text right after it

  3. Enter the closing [/chordpress] shortcode

Optional shortcode parameters

  • float= => Force the rendered text block to float left or right

  • format= => Render the output or not

  • hbnotation= => Input is H/B notation (using H for B and Bb for B). Whether it is displayed as such is defined on the Options page.

  • transpose= => Enter a positive or negative number for the amount of semitones to transpose the chords defined on the Options page.

Use the “ChordPress” sub-menu of your backend Settings to change the default settings.

Credits

I would like to thank:

  • The ChordPro team of course

  • @rlisle for his work on the ChordsAndLyrics plugin that he started many years ago

  • Ahkâm for the beautiful Guitar Drawing Icon I used for the plugin

  • The developers of the SVGuitar chord rendering module

Last updated