~curiositry/nashville-chord-chart-formatter

Typeset song lyrics written in plaintext using Nashville number chord notation
Add screenshot
Update example song
Update README, and include better installation instructions

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~curiositry/nashville-chord-chart-formatter
read/write
git@git.sr.ht:~curiositry/nashville-chord-chart-formatter

You can also use your local clone with git send-email.

#Nashville Numbers Lyrics and Chord Chart Formatter: The Technical Songwriter’s Companion

#Typeset song lyrics written in plaintext using Nashville number system (NNS) chord notation

Lyric Formatter is a self-hosted / local app that runs completely offline, and offers a pleasing interface for viewing and printing song lyrics and metadata that are stored as plain text markdown files.

Screenshot

#Design goals

Simple. Future-proof. Human-centric

  • Future-proof. Databases become corrupted or get phased out. Rich text editing apps change. Text files are forever(ish).
    • Simple, timeless technology. Lyric formatter uses the minimum of 3rd party code. It is written in plain Javascript, HTML, and CSS -- technologies that have stood the test of time. Dependencies have been kept to a minimum, and carefully chosen.
  • Human-writable, human-readable + machine-readable, and machine-writable. I wanted that data itself to be readable and writable by humans with a basic text editor -- no software between the songwriter and their lyrics.
  • Fully offline & private. Not all song are meant to be performed.

#Features

  • Write lyrics in markdown
  • Write metadata in plaintext key-value format
  • Write chords in Nashville numbers (optional) with automatic transcription to any key
  • Generate print-ready lyric sheets with:
    • Chords floated above the lyrics
    • Choruses, bridges, and breakdowns visually distinguished
      • Option for verbose mode that includes the full chorus each time it happens, or terse mode that just includes it the first time, and "CHORUS" subsequent times the chorus comes around
    • 1, 2 or 3-column layout for space efficiency
    • Big bold headers to make it easy to spot the song in your songbook
    • Performance-relevant metadata automatically pulled in at the top of the lyrics sheet
    • Simple, built-in support for versioned lyrics (lyric formatter automatically finds the most up-to-date version based on the filename. Or use Git if you’re fancy.)
  • The lyrics are ephemerally editable in the browser, so that you can tweak things to improve the fit on the page before printing, without changing the canonical version
  • Crunch yo stats. Lyric formatter comes with a script to ingest all your metadata files into an SQLite database, allowing you to query all metadata fields instantly (useful for finding songs by key, year, BPM range, and so forth!)
  • Run the basic lyric server with one line of Python, or a more advanced server with Rust

#Installation

# get the code
git clone https://git.sr.ht/~curiositry/nashville-chord-chart-formatter 

# change to the directory
cd nashville-chord-chart-formatter

# link to the example lyrics directory to get started (or, you can link to an existing lyrics directory)
ln -sfn lyrics-dir-example/ lyrics-dir 

# injest songs into the database
find lyrics-dir/ -name '*META.md' -exec cat {} \; | python3 injest-songs-into-sqlite-database.py

# bash startup script that's a simple wrapper for `cargo run`
bash lyrics-server.sh

#Licence

Released under the AGPLv3 Licence. If you would like to use the software under a different licence, get in touch.

Do not follow this link