SongPro
SongPro is a text file format for making chord & lyric lead sheets for songs.
Example
Here’s a partial example of a song in the SongPro format:
SongPro Format
A SongPro file can contain Attributes, Custom Attributes, Sections, Lyrics & Chords, Tablature and Measures.
Attributes
Attributes are added with the format:
@attribute=value
You can specify the following song attributes:
- title
- artist
- capo
- key
- tempo
- year
- album
- tuning
They can be placed anywhere in the song but it’s recommended to put them at the top of your file. The values are text that are displayed in the rendered output.
Custom Attributes
Custom attributes can be added with the format:
!custom_attribute=value
A custom attribute can be anything. These are mainly used by other apps that want to store additional attributes beyond the core set or are specific to the app.
Sections
Any line starting with # is considered the beginning of a new section:
# Section Name
Section names are usually things like:
- Verse 1
- Chorus 2
- Bridge
- Outro
But you can name them however you please.
Lyrics & Chords
Chords are anything contained inside of brackets, such as C#m7. Lyrics are words by themselves or around chords.
You'll be [Asus4]safe in [A7]here
Tablature
Any line starting with |- is considered to be tablature. For example:
|-8--10--12--10--8-|
Measures
When you want to show where chord changes are for an instrumental section, start a line with | and use another | whenever a new measure starts.
| [G] | [D] | [F#] | [Bm] [D/A] |
Comments
You can include comments throughout the song by prefixing them with > . These can be used to provide performance notes/tips to players.
> Whistle the verse melody over these chords
SongPro Libraries
Related Tools
- Chord Diagrams Ruby Gem - Provides chord diagrams as SVGs
- Zpevnikator.git - Offline song database browser (many songs in SongPro format)
- SongPro VS Code plugin - SongPro plugin for VS Code - syntax highlighting, transposition, convert to Nashville Number System, and more