Universe

Create project in app

Lied ([liːt]), German for Song

A template to make halfway decent songbooks in a markup language that people can actually read.

TiefLied is developed by Lena Tauchner (Tiefseetauchner) for use in making “hits” booklets for herself.

Planned features

  • [ ] Chords

Usage

To use TiefLied with the Typst web app, choose “Start from template” and select TiefLied. You will also need to include or install the Cormorant Garamond and Cormorant SC Fonts, should you chose to not change the default font.

To import the package manually in your Typst project, use:

#import "@preview/tieflied:0.1.1": songbook, song

Alternatively, you can download the lib.typ file and use:

#import "lib.typ": songbook, song

Exported Members

Primary Layouting

The primary layouting consideres multiple songs in a songbook (Liederbuch).

songbook: The main class setting layouting.

#songbook(
  title: "Book Name", // Title on the title page.
  songbook-author: "Book Author", // Author under title on the title page
  title-page: false, // Display title page with Title, Author and Artists
  settings: (
    paper: "a4", // Default page size setting
    font: "Cormorant Garamond", // Default font
    title-font: "Cormorant SC", // Font for specifically the title
    text-size: 14pt, // Default text size
    show-annotations: false, // Show annotations of verses etc.
    page-per-song: false, // Start a new page per song
    start-right: true, // Skip a page after title
  ),
  [ ... ] // Body, should contain songs
)

author: A helper to create and save an author dictionary. Can be simplified and written as a dictionary.

#author(
  name: "Cavetown", // Name of a song author
  color: color.hsv(178.6deg, 16.86%, 100%), // Color of the author
    // Used in the bubble of a song title
)

song: Primary layouting for songs.

#song(
  author: song-author, // Author of the song, also used for the artists display
  title: none, // Title of the song
  [ ... ] // Content of the song, can be text or macros
)

set-page-breaking: Resets whether a new page should be started per song. Can be used inbetween songs to change behaviour throughout book.

#set-page-breaking(true)

Annotations

Annotations not only serve the orientation but also the formatting of the text. You can put blocks of text (verses, choruses, bridges, outros, …) in annotation blocks. If show-annotations in the settings of the songbook is true, an annotation will be drawn in the right margin.

annotation: General annotation with custom text.

#annotation("[Outro]")[ ... ]

verse: Verse Annotation. Usage below.
bridge: Bridge Annotation. Usage below.
chorus: Chorus Annotation. Usage below.

#verse[ ... ]
#bridge[ ... ]
#chorus[ ... ]

Example

#import "@preview/tieflied:0.1.1": annotation, author, bridge, chorus, set-page-breaking, song, songbook, verse

#let cavetown = author(
  "Cavetown",
  color: color.hsv(178.6deg, 16.86%, 100%),
)

#songbook(
  title: "Animal Kingdom",
  songbook-author: "Cavetown",
  title-page: true,
  settings: (
    show-annotations: true,
    page-per-song: true,
    start-right: false,
  ),
  [
    #song(author: cavetown, title: "Juliet", [
      #verse[
        I need to cry, but I can't\
        Get anything out of my eyes or my head\
        Did I die?\
        I need to run, but I can't\
        Get out of bed for anyone\
        Not for you, ooh
      ]
      ...
    ])
  ]
)

License and Contributions

TiefLied is currently under active development. Feedback, bug reports, and suggestions are welcome. Please open an issue or contribute via pull requests if you have ideas for improvement.

This package is released under the MIT License.