Start
  1. Bass Blog
  2. Notensatz mit LilyPond

Notensatz mit LilyPond

19. Februar 2021 von Thomas Breuss | 2 Kommentare

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

Share

4 Kommentare

von Manuela am 5. Juni 2021 um 17:56 Uhr

Ich bin seit längerem begeisterte Anwenderin von Lilypond und meine, dass dieses Programm viel zu selten beachtet wird, viele Grüße, Manuela

von Beate am 7. Juni 2021 um 22:22 Uhr

Interessant. Warum nicht ABC? ok, kann m.W. keine Tabs setzen, ist aber für Nicht-TeXianer eingängiger.

von Thomas am 8. Juni 2021 um 08:33 Uhr

ABC ist sicher einfacher und es gibt beeindruckende Tools dafür, auch für den Browser. Was aber für Lilypond spricht, ist die hohe Qualität des erstellen Notensatzes. Dieser soll in der Qualität und Lesbarkeit sogar professionelle Notensatz-Programme wie Finale oder Sibelius übertreffen. Allerdings kauft man sich diese Qualität mit einem grossen Einarbeitungsaufwand. Die Lernkurve ist doch recht steil.

von werkstattdepp am 5. März 2024 um 18:21 Uhr

genau so ist es. und wer latex kann, wird auch ohne noten zu kennen, rel. schnell perfekte ergebnisse erzielen. ein riesendank an die entwickler!

Diskutiere mit.

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.