Skip to content

song repertoire management and setlist generator tool

License

Notifications You must be signed in to change notification settings

laenzlinger/setlist

Repository files navigation

Musicians Repertoire and Setlist tool

  • Generates set lists
  • Generates cheat sheets

Status of the Project

This is currently just a PoC. I am using it for my musical hobby and develop it on the as i need more features. Therefore - for all 0.X versions - the command line interface might change, there is no guarantee fro backwards compatibility yet.

CLI documentation

Run setlist --help to or check the Markdown CLI docs

Repertoire structure

By convention the Repertoire is organised in the following directory structure:

The repertoire is by default partitioned into substructures for example to support multiple bands.

Repertoire
├── Band
│   ├── Gigs
│   │   └── 'Grand Ole Opry.md'
│   ├── Songs
│   │   ├── 'Frankie and Johnnie.odt'
│   │   ├── 'Her Song.md'
│   │   └── 'On the Alamo.pdf'
│   ├── README.md
│   └── Repertoire.md
├── .gitignore
└── .setlist

Repertoire.md

Metadata is maintained in a Markdown GFM table on the top level of the Repertoire.md file. See example.

The Table must have a header row. The only mandatory column is the Title column which is used to refer to the song titles for both generte sheet and generate list.

Optional columns used (by default) generate output.

Column Type Used by command
Title Mandatory list, cheat, suisa
Year Optional list, suisa
Description Optional list
Arranger Optional suisa
Composer Optional suisa
Duration Optional suisa

The output columns can be selected by the --include-columns flag, but the order or the columns is defined by the input Repertoire.md

Gigs

Each gig is maintained in a Markdown file within the Gigs subdirectory. The name of the Markdown file is the name of the gig. Each song title is listed on top level of the Markdown file as an unordered list element.

Songs

Each song is maintained in a .pdf file within the Songs subdirectory. Optionally a .pdf can also be generated out of an Open Document (.odt) or a Markdwon (.md) file. The filename must the same as the song title within the Gig Markdown file in order to be picked up by the cheat sheet generator.

Dependencies

  • Cheat sheets can be designed in the odt format. LibreOffice is used to generate pdf.
  • To convert html pdf, a chrome (tested with chromium) browser is required.

Docker image

In case you don't want to install the dependencies locally, you can use the docker image:

Example:

docker run --rm --user "$(id -u)":"$(id -g)" -v $(pwd):/repertoire ghcr.io/laenzlinger/setlist --help