Notensatz mit LilyPond

19. Februar 2021 von Thomas Breuss

Mit LilyPond habe ich eine weitere Möglichkeit entdeckt, Notenblätter aus einer Textdatei zu generieren. Das Programm ist ein freies Notensatzprogramm für alle gängigen Betriebssysteme.

Vor längerer Zeit benutzte ich zum Noten schreiben das proprietäre Programm Encore. Seit meinem Umstieg auf Mac steht mir dieses Notenprogramm nicht mehr zur Verfügung, obwohl ich noch viele Encore-Dateien herumliegen habe. Versuche mit Musescore, ebenfalls einem Opensource-Projekt, sahen durchaus erfolgversprechend aus. Der Notendruck ist sauber, die Eingabe funktioniert bedienerfreundlich. Trotzdem wollte ich für meine Electricbass-Website eine Möglichkeit haben, über definierte Workflows Noten generieren zu können. Das wichtigste Kriterium für mich war, dass Quelldateien versionierbar, Änderungen nachvollziehbar und Automatisierungsmöglichkeiten vorhanden sein sollten.

Das habe ich nun mit LilyPond hoffentlich gefunden. LilyPond ist ein GNU-Projekt und stellt einen offenen Standard für textbasierten Notensatz zur Verfügung. Im Gegensatz zu anderen gängigen Notensatzprogrammen bietet LilyPond selbst keine grafische Benutzeroberfläche zur Eingabe von Musik. Stattdessen erstellt der Benutzer mit einem beliebigen Texteditor eine Quelldatei, in der Noten und andere Notationselemente in einer an LaTeX angelehnten Syntax beschrieben werden. Die Textdatei wird vom LilyPond-Programm in verschiedene Dateiformate kompiliert (aktuell werden PDF, PS, PNG und SVG unterstützt), bei Bedarf können gleichzeitig auch MIDI-Dateien der notierten Musik erzeugt werden.

Detailierte Informationen zu LilyPond findet ihrer Website unter LilyPond.

Ein erster Versuch sieht vielversprechend aus. Nachfolgend seht ihr eine Quelltextdatei, welche eine Walking Basslinie über einen Jazz Blues in F darstellt

\version "2.20.0"

\header {
  title = "Jazz Blues in F"
  subtitle = "Walking Bass"
  piece = "Swing"
  tagline = \markup {
      "14.02.2021 - Version 1.0 - www.electricbass.ch"
  }
}

notes = \relative {
  \key f \major
  \time 4/4
  \tempo 4 = 120
  f,, g gis a | bes as g ges | f a c es | f a c ces | \break
  bes as g ges | f d b as | f a c cis | d e f fis | \break
  g a bes b | c bes a g | f cis d f | g des c e, |
}

\score {
  \new StaffGroup <<
    \new ChordNames {
      \transpose c' c \chordmode {
        \set Staff.midiInstrument = #"bright acoustic"
        \set Staff.midiReverbLevel = #0.0
        \set Staff.midiPanPosition = #0.2
        f1:7 bes:7 f:7 f:7 |
        bes:7 b:dim7 f:7 d:7 |
        g:m7 c:7 f2:7 d:7 g:m7 c:7 \bar "|."
      }
    }
    \new Staff \with {
      \omit StringNumber
    } {
      \clef "bass_8"
      \set Staff.midiInstrument = #"acoustic bass"
      \set Staff.midiReverbLevel = #0.0
      \set Staff.midiPanPosition = #-0.2
      \numericTimeSignature
      \notes
    }
    \new TabStaff \with {
      stringTunings = #bass-tuning
    } {
      \clef moderntab
      \notes
    }
  >>
  \layout { }
  \midi { }
}

Die Syntax von LilyPond ist an diejenige von LaTeX angelehnt. Die einen lieben dieses System, andere eher nicht. Ich gehöre zur zweiten Gruppe ;-) Trotzdem sind die Hauptkriterien damit erfüllt: die Möglichkeit der Quelltextverwaltung in einem Versionierungssystem, der Generierung unterschiedlicher Dateiformate und der Automatisierung des gesamten Workflows.

Den obigen Quelltext verwalte ich in einem privaten GitHub-Repository. Über eine GitHub-Action können die gewünschten Ausgabeformate generiert werden. Über eine weitere Action werden diese Dateien in ein Verzeichnis meiner Website geladen.

Auf Electricbass binde ich die Dateien über einen sogenanten Shortcode ein:

{score label="Walking Bass - Jazz Blues in F" path="walking-bass-jazz-blues-in-f"}

Damit steht das Musikstück auf der Website in drei Versionen zur Verfügung:

  • als PNG-Grafik zur Einbindung im HTML und Vorschau im Browser
  • als PDF-Dokument zum Herunterladen und Ausdrucken
  • als MIDI-Datei zum Herunterladen und Anhören

Das sieht dann ungefähr so aus:

Walking Bass - Jazz Blues in F

Downloads

Dateien zum Herunterladen

Nicht schlecht! Vor allem habe ich damit unter anderem folgendes erreicht:

  • Erstellung hoch qualitativer Noten aus textbasierten Dateien
  • Verwaltung der Quelltexte in einem Versionierungssystem
  • Automatisierung bei der Erstellung der Noten
  • Generierung unterschiedlicher Ausgabeformate

Doch, das gefällt mir :-)

Was haltet ihr von LilyPond oder dem eingesetzten Workflow? Euer Feedback interessiert mich!

Gepostet in: Blog
Tagged: Bass-Artikel, Notensatz, LilyPond
0.0 bei 0 Stimmen Abstimmen

Schreib den ersten Kommentar.

max. 1000 Zeichen

Kommentarregeln

Ehrverletzung/Beleidigung: Um einen angenehmen, sachlichen und fairen Umgang miteinander zu gewährleisten, publizieren wir keine Beiträge, die sich im Ton vergreifen. Dazu gehören die Verwendung von polemischen und beleidigenden Ausdrücken ebenso wie persönliche Angriffe auf andere Diskussionsteilnehmer.

Rassismus/Diskriminierung: Es ist nicht erlaubt, Inhalte zu verbreiten, die unter die Schweizerische Rassismusstrafnorm fallen und Personen aufgrund ihrer Rasse, Ethnie oder Religion herabsetzen oder zu Hass aufrufen. Diskriminierende Äusserungen werden nicht publiziert.

Anschuldigung/Verleumdung: Wir dulden keine Anschuldigungen gegen einzelne Personen oder Unternehmen.

Vulgarität: Wir publizieren keine Kommentare, die Fluchwörter enthalten oder vulgär sind.

Werbung: Eigenwerbung, Reklame für kommerzielle Produkte oder politische Werbung haben keinen Platz in Onlinekommentaren. Ebenso unzulässig sind Aufrufe zu Protesten, Vereinigungen oder politischen Aktionen.

Links: Beiträge mit Links werden nicht publiziert.

Regeldiskussionen: Die Kommentarspalte ist kein Platz, um über die Kommentarrichtlinien zu verhandeln. Freischaltdiskussionen werden grundsätzlich nicht publiziert.

Generell gilt: Wir sperren Nutzer, die sich wiederholt nicht an diese Regeln halten.

Recht auf Publikation: Bitte habe Verständnis dafür, dass kein Recht auf Publikation von Kommentaren besteht.