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:
Downloads
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!
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.