Notendruck mit lilypond
lilypond ist ein frei verfügbares Programm zur Erstellung von Musiknoten (lilypond im Web). Gemäß des Eigenlobs der Entwickler wurde es mit dem Ziel entwickelt, Notensatz zu erzeugen, der sich auf einem Niveau bewegt, wie man es von früher gewohnt war. "Früher" als Notensatz noch eine Handwerkskunst war. Aus meiner Sicht - freilich die Sicht von jemandem, der keine Ahnung hat - ist dieser Anspruch tatsächlich erfüllt. Nimmt man aktuelle, kommerziell erhältliche Noten zur Hand, dann sieht man ihnen den Umstand, dass sie vermutlich auf einem Computer gesetzt wurden, auf den ersten Blick an. Mit lilypond erstellte Noten sehen definitv besser aus!
Das Problem mit lilypond ist allerdings, dass es nicht einfach zu benutzen ist. Die im Web verfügbare Dokumentation ist sehr, sehr ausführlich und liefert auf viele Fragen Antworten. Leider vermittelt sie wenig Grundlegendes, wie beispielsweise der prinzipielle Aufbau einer lilypond-Datei aussieht. Viele der gezeigten Beispiele sind kurze "Schnipsel", ihre Einbettung in größere Zusammenhänge ist nicht immer intuitiv erfassbar.
lilypond hat die eigentlich nette Eigenschaft, fehlende Strukturen in Eingabedaten automatisch zu ergänzen und die genannten Schnipsel nutzen das auch leidlich aus. Will man komplexere Noten setzen, dann muss man aber die vollständigen Strukturen erstellen und da muss man sich die Konzepte umständlich zusammensuchen. Das mag eine Sache der persönlichen Vorlieben sein, an meinem Gehirn geht der Aufbau der Dokumentation leider etwas vorbei. Entsprechend kam bei mir irgendwann der Wunsch auf, einmal ein komplexeres Beispiel fehlerfrei umzusetzen (so weit mir überhaupt möglich) und damit über eine Vorlage zu verfügen, auf die ich später als Referenz zurückgreifen kann.
Warum selber Noten setzen?
Wozu soll man überhaupt selber Noten setzen? Bin ich etwa ein Komponist? Natürlich nicht. Es gibt aber immer wieder Situationen, wo eine eigenständige Reproduktion von Noten interessant sein kann:
- Sie wollen aus unterschiedlichen Quellen ein einfaches Liederbuch erstellen, beispielsweise für einen Hochzeitsgottesdienst. Das sieht meist "zusammenkopiert" aus (was, nebenbei bemerkt, oft nicht legal ist: Musik unterliegt dem Urheberrecht). Kann man Noten selber schreiben, sehen alle Lieder einheitlich und ordentlich aus.
- Wenn das leidige Umblättern nicht wäre: Vor dreißig Jahre konnte ich noch alle drei Gewinnsätze der Mondscheinsonate auswendig spielen (um dann 0:3 verlieren). Das macht mein Gedächtnis nicht mehr mit, vielleicht habe ich auch einfach nicht mehr genug Zeit zum Üben. Also braucht man beim Spielen die Noten direkt vor der Nase und irgendwann kommt der Moment, an dem man umblättern muss, und es ist immer ein unpassender Moment! Zum Glück sind viele Klavierstücke nur wenige Seiten lang, so das man die einzelnen Blätter mit Tesakrepp zusammenkleben und an den Klebestellen falten kann. Aber kopieren sie mal Noten auf dem Fotokopierer! Die Heftung verursacht meist verbogene Notenzeilen oder die Heftung bricht gleich ganz. Legal ist es in vielen Fällen auch nicht, nicht einmal zum Eigengebrauch.
- Sie wollen nur den Klaviersatz. Singstimme, Text oder andere Instrumente brauchen sie nicht und sie verschlingen einfach nur Platz auf dem gekauften Notenblatt. Komprimieren sie den ganzen Kram einfach auf das notwendige Minimum indem sie unnötige Notensysteme einfach weglassen.
Verwendete Software
Im folgenden verwende ich im wesentlichen nur zwei Programme:
- lilypond: Das eigentliche Notensatzprogramm
- frescobaldi: Ein Editor, der den Ungang mit lilypond Daten im Vergleich zu einem einfachen Texteditor erleichtert. Beispielsweise ist es sehr praktisch, eine Note im Vorschaufenster anzucklicken und dadurch direkt an die entsprechende Stelle im Quelltext zu springen.
Wer irgendein Linux verwendet, kann vermutlich beide Programme über die Paketverwaltung installieren. Nutzer anderer Betriebssysteme können sich die Installationsprogramme von den folgenden Webseiten herunterladen:
Praktisch zum Probehören der (meist nebenbei mitabfallenden) MIDI-Dateien ist vielleicht noch ein Sequenzer-Programm, etwa timidity (unter Kubuntu).Das Beispiel
Als Beispiel verwende ich im folgenden eine älteres Lied, das wohl jeder kennen dürfte, der den Film "Das Boot" (den von 1981, nicht die unnötige Fortsetzung von 2017) gesehen hat: "Das Geistige kommt hier zu kurz. Den Tipperary Song!". Das Stück beinhaltet einen breiten Querschnitt durch alle Probleme, die mich beim Einstieg in lilypond arg gequält haben (und wegen derer ich überhaupt diesen Text schreibe). Den alten Titel habe ich aber auch gewählt, weil er mittlerweile gemeinfrei ist. Das Urheberrecht stellt Werke
- in Firmenbesitz für 95 Jahre unter Schutz. Abgelaufen: Copyright 1912 by B. Feldmann & Co, London (laut vorliegendem Notenblatt)
- für 70 Jahre bis nach dem Tod des Autors unter Schutz. Abgelaufen: Jack Judge, gest. 1938 und Harry Williams gest. 1924 (Daten aus wikipedia)
Während Kopieren von Noten in Deutschland grundsätzlich verboten ist, darf man sie sehr wohl abschreiben, egal mit welchem Mittel, also auch mit PC, womit mein Unterfangen auch rechtlich zulässig wäre, wenn der Urheberrechtschutz noch bestehen würde. Nur: Das Abschreibeergebnis darf wiederum nur mit den gleichen Mitteln weitergegeben werden, also Abschreiben. Für einen Artikel im Internet wäre das ein echtes Hindernis, denn Downloaden ist kopieren.
Das Grundgerüst
Als Erstes legen wir ein Grundgerüst für die lilypond-Datei an. Dieses werden wir nach und nach erweitern, bis alles drin ist, was man braucht, um aus einem leeren Notenblatt den vollständigen Klavierauszug zu erstellen. Kopieren sie den Quelltext im Kasten in eine Datei und übersetzen sie die Datei mit lilypond oder nutzen sie die beiden Download-Links.
Downloads: Quelltext - PDF-Datei
\version "2.18.2"
\header {
% The following fields are centered
%dedication = "Dedication"
title = "It’s a long, long way to Tipperary"
% subtitle = "subtitle"
%subsubtitle = "Subsubtitle"
% The following fields are evenly spread on one line
% the field "instrument" also appears on following pages
%instrument = \markup \with-color #green "Instrument"
% poet = "poet"
composer = "Written an Composed JACK JUDGE & HARRY WILLIAMS"
% The following fields are placed at opposite ends of the same line
% meter = "Meter"
% arranger = "arranger"
% The following fields are centered at the bottom
copyright = "Copyright 1912 by B. Feldmann & Co, London, Eng"
tagline = "Satz: Thomas Kneisel (lilypond 1.18.2 - www.lilypond.org)"
}
singerMelody = \new Voice = "melody" {
\relative c'' {
\clef "treble" \key bes \major \time 2/4
r2 |
\bar "|."
}
}
\book {
% This is for printing
\score {
\singerMelody
\layout { }
}
% This is to create proper MIDI output
\score {
\singerMelody
\midi { }
}
}
Was gibt es zu sehen?
- Die Datei enthält zunächst einmal eine Versionskennung. Das Dateiformat von lilypond kann sich in der Zukunft möglicherweise ändern. Anhand der Kennung wissen sie und lilypond woran sie sind.
- Als nächstes haben wir die Header-Sektion, innerhalb derer man diverse Dinge festlegen kann, beispielsweise den Drucktitel oder Fußzeilen. Etliche Optionen sind mit dem %-Zeichen auskommentiert, weil ich sie im Beispiel nicht benötige. Ich kann auch nicht sagen, ob es nicht noch mehr Optionen als die hier verwendeten gibt. Das herauszufinden ist etwas für eigene Nachforschungen in der offiziellen Dokumentation.
- An den Header schließt sich die Definition einer neuen Stimme
Voice
an. Wir machen zunächst nichts besonderes mit diesre Stimme. Sie wird lediglich einer Variablen (singerMelody
) zugewiesen. Die Stimme trägt einen Identifizierermelody
. Dessen Sinn und Zweck wird sich erst später erschließen, wenn er darum geht der Melodie einen Gesangstext zuzuordnen. - Der musikalische Inhalt der Stimme beschränkt sich auf das absolute Minimum:
\relative c''
legt fest, dass wir Noten nicht absolut eingeben werden. Bei absolut eingegebenen Noten muss bei jeder einzelnen Note die Tonhöhe spezifiziert werden. Bei relativ angebgebenen Noten kann man sich das meist sparen. Noten orientierensich immer an der Höhe der vorher eingegebenen Note und mit dem Kommando legen wir fest, dass die erste Note des Stücks in der Nähe des zweigestrichenen c liegen soll.\clef treble
erzeugt einen Violinschlüssel.\key bes \major
legt die Tonart auf b-Dur fest. Wegen der englischen Terminologie ist das "b" das, was im Deutschen das "h" ist. Der Halbton darunter trägt in lilypond dementsprechend den Namen "bes". Man kann lilypond anscheinend dazu überreden, die deutschen Bezeichnungen zu verwenden, versucht habe ich das allerdings noch nie.- Den 2/4 Takt legen wir mittels
\time 2/4
fest. - Weil es eine Fehlermeldung gibt, wenn wirklich gar keine Note eingegeben wird, definieren wir wenigstens eine halbe Pause (über Pausen werde ich mich gleich näher auslassen).
- Weil die halbe Pause schon ganzen Takt ausfüllt setzen wir dahinter ein "|", was lilypond zu einer Überprüfung der Taktgrenze veranlasst. Das ist etwas, was man möglichst in jedem Takt machen sollte. Es ist verzichtbar, erleichtert aber gegebenfalls die Fehlersuche.
- Jedes ordentlich Musikstück endet mit einem Schlussstrich, also machen wir einen:
\bar "|."
- Am unteren Ende der Datei definieren wir endlich das zu setzende Notenheft
\book
. Es besteht aus einem einzelnen Notensystem\score
, das für den Notendruck benötigt wird und einem weiterem Notensystem, das für die Erzeugung einer Midi-Datei benötigt wird. Die Erzeugung der Noten wie auch der Midi-Daten wird durch die Abschnitte\layout
und\midi
im jeweiligen\score
angestossen. Man könnte beides innerhalb eines einzigen\score
-Abschnitts bewerkstelligen. Wir werden aber später sehen, dass die Notensysteme für Druck und Midi manchmal unterschiedlich aufgebaut werden müssen. Neben einer besseren Übersichtlichkeit ist das auch der Grund, warum wir die einzelnen Stimmen Variablen zuweisen! Die Variablen können für pdf und midi unproblematisch unterschiedlich miteinander kombiniert werden, ohne dass man musikalische Informationen mehrmals eingeben müsste.
Eingabe der Gesangsmelodie
Beginnen wir damit, das Grundgerüst zu erweitern, indem wir die Noten der Gesangsmelodie eingeben. Kopieren sie sich den Quelltext im Kasten in wieder eine Datei und übersetzen sie diese mit lilypond. Oder nutzen sie die beiden Download-Links.
Downloads: Quelltext - PDF-Datei
\version "2.18.2"
\header {
% The following fields are centered
%dedication = "Dedication"
title = "It’s a long, long way to Tipperary"
% subtitle = "subtitle"
%subsubtitle = "Subsubtitle"
% The following fields are evenly spread on one line
% the field "instrument" also appears on following pages
%instrument = \markup \with-color #green "Instrument"
% poet = "poet"
composer = "Written an Composed JACK JUDGE & HARRY WILLIAMS"
% The following fields are placed at opposite ends of the same line
% meter = "Meter"
% arranger = "arranger"
% The following fields are centered at the bottom
copyright = "Copyright 1912 by B. Feldmann & Co, London, Eng"
tagline = "Satz: Thomas Kneisel (lilypond 1.18.2 - www.lilypond.org)"
}
singerMelody = \new Voice = "melody" {
\relative c'' {
\clef "treble" \key bes \major \time 2/4
r2 |
r2 |
r2 |
r2 |
\repeat volta 2 {
r2^\markup { \musicglyph #"scripts.segno" } |
r2 |
r2 |
r2 |
}
bes8 des c bes |
g8 f d es |
f8 g f d |
f4. r8 |
bes8 d c bes |
g8 f d f |
a8 bes a e |
a4. r8 |
bes8 d c bes |
g8 f d f |
a8 bes a e |
a4. c8|
d8 c bes a |
c8 bes c d |
a8 g a bes |
c4 \bar "||" d,8^\markup { \bold Chorus } es |
\repeat volta 2 {
f4 f~ |
f8 f g a |
bes 4 d~ |
d4 d8 c |
bes4 g~ |
g4 bes |
f2~ |
f8 r bes d, |
f4 f~ |
f8 f g a |
bes4 d~ |
d4 bes8 b |
c4 g |
a4 bes |
c2~ |
c4 r |
f,4 f~ |
f4 g8 a |
bes4 d~ |
d4 r |
es4 g, |
bes4 c |
d2~ |
d8 r bes c |
d4 d |
d8 bes c bes |
g2 |
f4 bes |
d4 bes~ |
bes4 c |
}
\alternative {
{
bes2~ |
bes8 r d, es |
}
{
bes'2~ |
bes8 r r4_\markup { \italic D.C. \small \musicglyph #"scripts.segno" } |
}
}
\bar "|."
}
}
\book {
% This is for printing
\score {
\singerMelody
\layout { }
}
% This is to create proper MIDI output
\score {
\singerMelody
\midi { }
}
}
Gegenüber unserem Grundgerüst hat sich nun schon einiges geändert:
- Es geht zunächst recht einfach los: 4 Pausen und noch mal 4 Pausen, letztere aber innerhalb einer Wiederholung. Eine einfache Pause erzeugt man mit einem
r
(rest) gefolgt von einer Zahl, die die Dauer bemisst. Soll die Pause nicht sichtbar sein, so kann man anstattr
eins
verwenden. Das wollen wir aber hier aber nicht. - Eine einfache Wiederholung erzeugen wir mit
\repeat volta 2 { ... }
und schließen die zu wiederholende Melodie in die geschweiften Klammern ein. - Weiter hinten findet sich eine etwas kompliziertere Wiederholung, bei der es zwei unterschiedliche Enden gibt. Eingeleitet wird die Wiederholung wieder mit:
\repeat volta 2 { ...
Die beiden Enden setzt man hinter die abschließende geschweite Klammer der Wiederholung mit
... } \alternative { { Ende 1 } { Ende 2} }
. - In Takz 24 findet sich der Text Chorus oberhalb der Notenzeile. Das lässt sich mit markups bewerkstelligen, indem sie an eine Note das folgende anhängen
^\markup { \bold Chorus }
Soll der Text unterhalb der Notenzeile erscheinen, benutzen sie anstatt des Powerpfeilchen "^" einen Unterstreich "_", also
_\markup { \bold Chorus }
- Man kann den Schwierigkeitsgrad bei Wiederholungen noch etwas steigern: Da Capo Segno. Diese beginnt in Takt 5 und endet mit dem letzten Takt überhaupt (der wiederum zur zweiten Alternativendung einer Wiederholung gehört). Diese Wiederholung wird uns im folgenden noch Probleme bereiten, je nachdem, ob sie lediglich einen Drucksatz erzeugen wollen (leichtes Problem) oder eine fehlerfreie MIDI-Datei erzeugen wollen (großes Problem). Die hier verwendete Methode taugt nur für den Notendruck, indem sie das Segno-Symbol einfach als Text über die Notenlinie setzt. Dazu brauchen wir nur das schon bekannte
\markup
und ein Sonderzeichen, das wir mit\musicglyph
setzen:
^\markup { \musicglyph #"scripts.segno" }
bzw. den Da Capo Text in analoger Form unterhalb der Notenzeile setzt. Es ist leicht einzusehen, dass das eine rein grafische Lösung ist. lilypond erfährt dabei nichts über die Struktur des Liedes, die damit ausgedrückt werden soll. Wir werden das Thema bis zum Ende vor uns her schieben und erst in einem eigenen Kapitel am Ende vollständig lösen. - Bindebögen (nicht mit legato verwechseln!): Um eine Note an eine andere anzubinden, hängen sie einfach an die erst der beiden Noten eine Tilde an, z.B.
a4~ a8
- Takt 24 beinhaltet einen Schlussstrich mitten im Takt. Den schieben sie ein mit
\bar "||"
Klaviersatz ergänzen
Ergänzen wir jetzt die Klaviernoten. Der Umfang wächst dadruch beträchtlich an. Ganz schön viele Noten, um es mit Joseph II von Österreich auszudrücken. Tippfaule kopieren sie sich den Quelltext im Kasten in wieder eine Datei und übersetzen sie diese mit lilypond. Oder, noch schneller, nutzen die beiden Download-Links.
Downloads: Quelltext - PDF-Datei
\version "2.18.2"
\header {
% The following fields are centered
%dedication = "Dedication"
title = "It’s a long, long way to Tipperary"
% subtitle = "subtitle"
%subsubtitle = "Subsubtitle"
% The following fields are evenly spread on one line
% the field "instrument" also appears on following pages
%instrument = \markup \with-color #green "Instrument"
% poet = "poet"
composer = "Written an Composed JACK JUDGE & HARRY WILLIAMS"
% The following fields are placed at opposite ends of the same line
% meter = "Meter"
% arranger = "arranger"
% The following fields are centered at the bottom
copyright = "Copyright 1912 by B. Feldmann & Co, London, Eng"
tagline = "Satz: Thomas Kneisel (lilypond 1.18.2 - www.lilypond.org)"
}
singerMelody = \new Voice = "melody"
\relative c'' {
\clef "treble" \key bes \major \time 2/4
r2 |
r2 |
r2 |
r2 |
\repeat volta 2 {
r2^\markup { \musicglyph #"scripts.segno" } |
r2 |
r2 |
r2 |
}
bes8 des c bes |
g8 f d es |
f8 g f d |
f4. r8 |
bes8 d c bes |
g8 f d f |
a8 bes a e |
a4. r8 |
bes8 d c bes |
g8 f d f |
a8 bes a e |
a4. c8|
d8 c bes a |
c8 bes c d |
a8 g a bes |
c4 \bar "||" d,8^\markup { \bold Chorus } es |
\repeat volta 2 {
f4 f~ |
f8 f g a |
bes 4 d~ |
d4 d8 c |
bes4 g~ |
g4 bes |
f2~ |
f8 r bes d, |
f4 f~ |
f8 f g a |
bes4 d~ |
d4 bes8 b |
c4 g |
a4 bes |
c2~ |
c4 r |
f,4 f~ |
f4 g8 a |
bes4 d~ |
d4 r |
es4 g, |
bes4 c |
d2~ |
d8 r bes c |
d4 d |
d8 bes c bes |
g2 |
f4 bes |
d4 bes~ |
bes4 c |
}
\alternative {
{
bes2~ |
bes8 r d, es |
}
{
bes'2~ |
bes8 r r4_\markup { \italic D.C. \small \musicglyph #"scripts.segno" } |
\bar "|."
}
}
}
pianoUpper = \new Voice \relative c' {
\clef "treble" \key bes \major \time 2/4
<d bes'>8 <d d'> < d c'> <d bes'> |
<d g>8 <d f> <bes d> <c es> |
<d f>8 <d g> <d f> d |
f8. f16 <es g>8 <es a> |
\repeat volta 2 {
bes'16. bes 32 bes 16. bes 32 bes16. c32 d16. es32 |
f16. g32 f16. g32 f16. d32 c16. bes32 |
c16. g32 g16. g32 g16. a32 bes16. c32 |
<d, d'>16. bes'32 <es, c'>16. a32 <d, bes'>8 <bes' d f bes> |
}
<d, bes'>8 <d d'> <d c'> <d bes'> |
<d g>8 <d f> <bes d> <c es> |
<bes d f>8 <bes d g> <gis d' f> <gis d'> |
<a es' f>8 <a es' fis> <bes es g> <c es a> |
<d bes'>8 <d d'> <d c'> <d bes'> |
<cis g'>8 <d f> <bes d> f' |
<cis g'>8 <cis g' bes> <cis g' a> <cis e> |
<d f a>8 <d f> <c es g> <c es a> |
<d bes'>8 <d d'> <d c'> <d bes'> |
<d g>8 <d f> <bes d> <d f> |
<cis a'>8 <cis bes'> <cis a'> <cis e> |
<d f a>8 <c f a> <c e bes'> <c f c'> |
<< { d'8 c bes a } \\ { fis4 fis } >> |
<< { c'8 bes c d } \\ { <d, g>4 <d g> } >> |
<< { a'8 g a bes } \\ { e,4 e } >> |
<es f c'>4 \bar "||" <bes d>8 <c es> |
\repeat volta 2 {
<d f>8 <bes d f> <a d f> <g d' f> |
<f d' f>8 <f d' f> <g es' g > <a es' a> |
<< { bes'4 d~ d s } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 <d f> <bes' d> <a c> } >> |
<< { bes4 g~ g bes } \\ { r8 <es, g> r es r es r <es g> } >> |
<< { f8. g16 <d f>8 <bes d> } \\ { d4 s } >> |
<< { g8. a16 bes8 d, } \\ { cis4 d8 bes } >> |
<d f>8 <bes d f> <a d f> <g d' f> |
<f d' f>8 <f d' f> <g es' g> <a es' a> |
<< { bes'4 d~ d } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 <d f> } >> < d g bes>8 <d g b> |
<< { c'4 g } \\ { r8 <e g> r <c e> } >> |
<< { a'4 bes } \\ { r8 <c, e> r <c e> } >> |
<< { c'8. d16 } \\ { es,4 } >> <es c'>8 <es a> |
<es g>8 <es f> <bes d> <c es> |
f8 d'16 c bes a g ges |
<< { f4 } \\ { r8 <bes, d> } >> <es g> <es a> |
<< { bes'4 d~ d~ d } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 bes' a as } >> |
<g es'>4 <es g> |
<g bes>4 <g c> |
<fis d'>8 a16 gis a8 fis |
d8 r <d bes'> <es c'> |
<< { d'4 d } \\ { r8 <d, f> r <d f> } >> |
<d f d'>8 <d f bes> <d f c'> <d f bes> |
<< { g2 f4 bes } \\ { r8 <cis, e>16 <cis e> <cis e>8 <cis e> d4 <d f> } >> |
<< { d'4 bes~ bes c } \\ { r8 <d, g bes> r <d g> r <e g> r <es f> } >> |
}
\alternative {
{
< d f bes>8 c'16 d c8 bes16 a |
g8 f <bes, d> <c es> |
}
{
<d f bes>8 d16 es f8 <es a d> |
<d f bes>8 r <bes' d f bes> r |
\bar "|."
}
}
}
pianoLower = \new Voice \relative c' {
\clef "bass" \key bes \major \time 2/4
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, f' |
bes,8 <f' bes> f, <f' bes> |
c8 <a' c es> <f bes> <f c'> |
\repeat volta 2 {
<g bes d>4 <g bes d>8<g bes d> |
<bes, d bes' d>4 <bes d bes' d>8 <bes d bes' d> |
<es g c>4 <es g c>8 <es g c> |
<f bes>8 <f a> <bes, f' bes> <bes, bes'> |
}
bes'8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, f' |
bes,8 f' b, f' |
c8 f f, f' |
bes,8 <f' bes> f, <f' bes> |
<< { e8 f f4 } \\ { bes,8 bes bes4 } >> |
e8 a a, <g' a> |
<d a'>8 <d a'> <c f> <f, f'> |
bes8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, <f' bes> |
e8 <g a> a, <g'a> |
<d a'>8 <f, f'> <g g'> <a a'> |
<< { d8 f d' c } \\ { d,4~ d } >> |
<< { c'8 bes <g, g'>4 } \\ { g'4 s } >> |
<< { c8 bes a g } \\ { c,4 c } >> |
<< { a4 } \\ { f4 } >> \bar "||" r4 |
\repeat volta 2 {
bes8 f' f, f' |
bes,8 f' f, f' |
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> d <f bes d> |
es8 <g bes> bes, <g' bes> |
es8 <g bes> es <g bes> |
\acciaccatura e8 <bes f'>4 \acciaccatura e8 <bes f'>4 |
<bes e >4 <bes f'>8 <bes f'> |
bes8 f' f, f' |
bes,8 f' f, f' |
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> <g, g'> <g g'> |
<c c'>4 <bes bes'> |
<a a'> <g g'> |
<f' a>4 <f a>8 <f c'> |
<f bes>8 <f a> <f, f'>4 |
bes8 <f' bes d> f, <f' bes d> |
bes,8 <f' bes> f, <f' a> |
bes,8 <f' bes> f, <f' bes> |
<< { bes, bes' c d } \\ { bes,2 } >> |
<es bes' es>4 <es bes'> |
<es bes' es>4 <es a es'> |
<d a' d>8 a'16 fis a8 fis |
d8 r r4 |
bes8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, <f' bes> |
<< { bes,8 <g' bes> <g bes> <g bes> } \\ { bes,2 } >> |
<bes f' bes>4 <bes bes'> |
g8 <g' bes> g, <g' bes> |
c,8 <g' bes c> f, <f' a> |
}
\alternative {
{
<bes, f' bes>8 c'16 d c8 bes16 a |
g8 f <f, f'>4 |
}
{
<bes f' bes>8 d16 es f8 <f, f'> |
<bes f'>8 r <bes, bes'> r |
\bar "|."
}
}
}
\book {
% This is for printing
\score {
<<
\singerMelody
\new PianoStaff {
<<
\set PianoStaff.instrumentName = #"Piano "
\new Staff { \pianoUpper }
\new Staff { \pianoLower }
>>
}
>>
\layout { }
}
% This is to create proper MIDI output
\score {
\singerMelody
\midi { }
}
}
Wir geben als erstes die Noten der rechten Hand ein, wobei wir die Noten erst in einer Voice
-Variablen pianoUpper
speichern. In der selben Weise erzeugen wir eine Variable pianoLower
, die die Noten der linken Hand enthalten. Die Definition der Stimmen entspricht der Methode, die wir bei der Gesangsmelodie angewendet haben. Lediglich der Identifizierer fehlt, denn wir assozierieren mit den Klaviernoten keinen Gesangstext.
Die Festlegung der Noten in Variablen bewirkt allerdings gar nichts, wenn wir ihren Inhalt nicht irgendwie in den Notensatz einbauen. Hierzu ergänzen wir unter \score
das folgende:
<<
\singerMelody
\new PianoStaff {
<<
\set PianoStaff.instrumentName = #"Piano "
\new Staff { \pianoUpper }
\new Staff { \pianoLower }
>>
}
>>
Einfache und doppelte spitze Klammern tauchen in lilypond immer dann auf, wenn Dinge parallel passieren sollen. Die äussere Klammer formuliert die Parallelität von Gesang und Klavier. Die innere Klammer definiert einen Klaviersatz, der in klassischer Art und Weise aus jeweils einer Zeile für linke und rechte Hand besteht. Der Inhalt des Klaviersatz besteht aus dem Inhalt der zuvor angelegten Variablen.
Gegenüber der Gesangsmelodie sind die Klaviernoten etwas komplizierter und bieten einige Besonderheiten: Nicht nur, dass es um linke und rechte Hand geht, es tauchen auch innerhalb einer Hand gleichzeitig zu spielende Noten auf. Hierzu gibt es zwei Möglichkeiten:
- Einfache Akkorde: Alle Noten werden gleichzeitig gespielt und dauern auch gleich lang. Dazu benutzen wir einfache, spitze Klammern. Das folgende ergibt beispielsweise drei auseinanderfolgende d-moll Akkorde:
<g bes d>4 <g bes d>8<g bes d> |
- Vorübergehende Mehrstimmigkeit in einer Hand: Man schreibt die beiden Stimmen zunächst in geschweifte Klammern und trennt die beiden Ausdrücke mit einem doppelten Backslash. Den gesamten Ausdruck in doppelte spitze Klammern einschließen, fertig:
<< { bes'4 d~ d } \\ { r8 16 r8 16 8 } >>
Ausdruckszeichen ergänzen
Mit der Eingabe der Noten sind wir jetzt schon fertig. Ergänzen wir jetzt diverse Ausdruckszeichen in den drei Stimmen.
Downloads: Quelltext - PDF-Datei
\version "2.18.2"
\header {
% The following fields are centered
%dedication = "Dedication"
title = "It’s a long, long way to Tipperary"
% subtitle = "subtitle"
%subsubtitle = "Subsubtitle"
% The following fields are evenly spread on one line
% the field "instrument" also appears on following pages
%instrument = \markup \with-color #green "Instrument"
% poet = "poet"
composer = "Written an Composed JACK JUDGE & HARRY WILLIAMS"
% The following fields are placed at opposite ends of the same line
% meter = "Meter"
% arranger = "arranger"
% The following fields are centered at the bottom
copyright = "Copyright 1912 by B. Feldmann & Co, London, Eng"
tagline = "Satz: Thomas Kneisel (lilypond 1.18.2 - www.lilypond.org)"
}
singerMelody = \new Voice = "melody"
\relative c'' {
\clef "treble" \key bes \major \time 2/4
r2 |
r2 |
r2 |
r2 |
\repeat volta 2 {
r2^\markup { \musicglyph #"scripts.segno" } |
r2 |
r2 |
r2 |
}
bes8 des c bes |
g8 f d es |
f8 g f d |
f4. r8 |
bes8 d c bes |
g8 f d f |
a8 bes a e |
a4. r8 |
bes8 d c bes |
g8 f d f |
a8 bes a e |
a4. c8|
d8 c bes a |
c8 bes c d |
a8 g a bes |
c4\fermata \bar "||" d,8^\markup { \bold Chorus } es |
\repeat volta 2 {
f4 f~ |
f8 f g a |
bes 4 d~ |
d4 d8 c |
bes4 g~ |
g4 bes |
f2~ |
f8 r bes d, |
f4 f~ |
f8 f g a |
bes4 d~ |
d4 bes8 b |
c4 g |
a4 bes |
c2~ |
c4 r |
f,4 f~ |
f4 g8 a |
bes4 d~ |
d4 r |
es4 g, |
bes4 c |
d2~ |
d8 r bes c |
d4 d |
d8 bes c bes |
g2 |
f4 bes |
d4 bes~ |
bes4 c |
}
\alternative {
{
bes2~ |
bes8 r d, es |
}
{
bes'2~ |
bes8 r r4_\markup { \italic D.C. \small \musicglyph #"scripts.segno" } |
\bar "|."
}
}
}
pianoUpper = \new Voice \relative c' {
\clef "treble" \key bes \major \time 2/4
<d bes'>8 <d d'> < d c'> <d bes'> |
<d g>8 <d f> <bes d> <c es> |
<d f>8 <d g> <d f> d |
f8. f16 <es g>8 <es a> |
\repeat volta 2 {
bes'16. bes 32 bes 16. bes 32 bes16. c32 d16. es32 |
f16. g32 f16. g32 f16. d32 c16. bes32 |
c16. g32 g16. g32 g16. a32 bes16. c32 |
<d, d'>16. bes'32 <es, c'>16. a32 <d, bes'>8 <bes' d f bes>-> |
}
<d, bes'>8 <d d'> <d c'> <d bes'> |
<d g>8 <d f> <bes d> <c es> |
<bes d f>8 <bes d g> <gis d' f> <gis d'> |
<a es' f>8 <a es' fis> <bes es g> <c es a> |
<d bes'>8 <d d'> <d c'> <d bes'> |
<cis g'>8 <d f> <bes d> f' |
<cis g'>8 <cis g' bes> <cis g' a> <cis e> |
<d f a>8 <d f> <c es g> <c es a> |
<d bes'>8 <d d'> <d c'> <d bes'> |
<d g>8 <d f> <bes d> <d f> |
<cis a'>8 <cis bes'> <cis a'> <cis e> |
<d f a>8 <c f a> <c e bes'> <c f c'> |
<< { d'8 c bes a } \\ { fis4 fis } >> |
<< { c'8 bes c d } \\ { <d, g>4 <d g> } >> |
<< { a'8 g a bes } \\ { e,4 e } >> |
<es f c'>4\fermata \bar "||" <bes d>8 <c es> |
\repeat volta 2 {
<d f>8-. <bes d f>-. <a d f>-. <g d' f>-. |
<f d' f>8 <f d' f> <g es' g > <a es' a> |
<< { bes'4 d~ d s } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 <d f> <bes' d> <a c> } >> |
<< { bes4 g~ g bes } \\ { r8 <es, g> r es r es r <es g> } >> |
<< { f8. g16 <d f>8 <bes d> } \\ { d4 s } >> |
<< { g8. a16 bes8 d, } \\ { cis4 d8 bes } >> |
<d f>8-. <bes d f>-. <a d f>-. <g d' f>-. |
<f d' f>8 <f d' f> <g es' g> <a es' a> |
<< { bes'4 d~ d } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 <d f> } >> < d g bes>8 <d g b> |
<< { c'4 g } \\ { r8 <e g> r <c e> } >> |
<< { a'4 bes } \\ { r8 <c, e> r <c e> } >> |
<< { c'8. d16 } \\ { es,4 } >> <es c'>8 <es a> |
<es g>8 <es f> <bes d> <c es> |
f8 d'16( c bes a g ges) |
<< { f4 } \\ { r8 <bes, d> } >> <es g> <es a> |
<< { bes'4 d~ d~ d } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 bes' a as } >> |
<g es'>4 <es g> |
<g bes>4 <g c> |
<fis d'>8 a16 gis a8 fis |
d8 r <d bes'> <es c'> |
<< { d'4 d } \\ { r8 <d, f> r <d f> } >> |
<d f d'>8 <d f bes> <d f c'> <d f bes> |
<< { g2 f4 bes } \\ { r8 <cis, e>16 <cis e> <cis e>8 <cis e> d4 <d f> } >> |
<< { d'4 bes~ bes c } \\ { r8 <d, g bes> r <d g> r <e g> r <es f> } >> |
}
\alternative {
{
< d f bes>8 c'16 d c8 bes16 a |
g8 f <bes, d> <c es> |
}
{
<d f bes>8 d16 es f8 <es a d>-> |
<d f bes>8 r <bes' d f bes>-> r |
\bar "|."
}
}
}
pianoLower = \new Voice \relative c' {
\clef "bass" \key bes \major \time 2/4
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, f' |
bes,8 <f' bes> f, <f' bes> |
c8 <a' c es> <f bes> <f c'> |
\repeat volta 2 {
<g bes d>4-> <g bes d>8<g bes d> |
<bes, d bes' d>4-> <bes d bes' d>8 <bes d bes' d> |
<es g c>4 <es g c>8 <es g c> |
<f bes>8-> <f a>-> <bes, f' bes>-> <bes, bes'>-> |
}
bes'8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, f' |
bes,8 f' b, f' |
c8 f f, f' |
bes,8 <f' bes> f, <f' bes> |
<< { e8 f f4 } \\ { bes,8 bes bes4 } >> |
e8 a a, <g' a> |
<d a'>8 <d a'> <c f> <f, f'> |
bes8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, <f' bes> |
e8 <g a> a, <g'a> |
<d a'>8 <f, f'> <g g'> <a a'> |
<< { d8 f d' c } \\ { d,4~ d } >> |
<< { c'8 bes <g, g'>4 } \\ { g'4 s } >> |
<< { c8 bes a g } \\ { c,4 c } >> |
<< { a4\fermata } \\ { f4 } >> \bar "||" r4 |
\repeat volta 2 {
bes8 f' f, f' |
bes,8 f' f, f' |
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> d <f bes d> |
es8 <g bes> bes, <g' bes> |
es8 <g bes> es <g bes> |
\acciaccatura e8 <bes f'>4 \acciaccatura e8 <bes f'>4 |
<bes e >4 <bes f'>8 <bes f'> |
bes8 f' f, f' |
bes,8 f' f, f' |
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> <g, g'> <g g'> |
<c c'>4 <bes bes'> |
<a a'> <g g'> |
<f' a>4 <f a>8 <f c'> |
<f bes>8 <f a> <f, f'>4 |
bes8 <f' bes d> f, <f' bes d> |
bes,8 <f' bes> f, <f' a> |
bes,8 <f' bes> f, <f' bes> |
<< { bes, bes' c d } \\ { bes,2 } >> |
<es bes' es>4 <es bes'> |
<es bes' es>4 <es a es'> |
<d a' d>8 a'16 fis a8 fis |
d8 r r4 |
bes8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, <f' bes> |
<< { bes,8 <g' bes> <g bes> <g bes> } \\ { bes,2 } >> |
<bes f' bes>4 <bes bes'> |
g8 <g' bes> g, <g' bes> |
c,8 <g' bes c> f, <f' a> |
}
\alternative {
{
<bes, f' bes>8 c'16 d c8 bes16 a |
g8 f <f, f'>4 |
}
{
<bes f' bes>8 d16 es f8 <f, f'> |
<bes f'>8 r <bes, bes'> r |
\bar "|."
}
}
}
\book {
% This is for printing
\score {
<<
\singerMelody
\new PianoStaff {
<<
\set PianoStaff.instrumentName = #"Piano "
\new Staff { \pianoUpper }
\new Staff { \pianoLower }
>>
}
>>
\layout { }
}
% This is to create proper MIDI output
\score {
\singerMelody
\midi { }
}
}
- Angehängte Artikulationszeichen (voll ausgeschrieben), z.B. eine Fermate: Einfach ein
\fermata
an die Note oder den Akkord anhängen. - Angehängte Artikulationszeichen (kurze Schreibweise), z.B. das accent: Anstatt eines langen Schlüsselwortes (wie im Falle der Fermate) reicht auch ein die Note oder den Akkord angehängtes "
->
"
Für ein Stakkato reicht ein "\-.
" oder als Langfassung "\staccato
". - Legato (das jetzt nicht mit dem Bindebogen verwechseln!): Hängen sie an die Note bei der Bogen beginnen soll eine runde Klammer "
(
" an. An die Note, bei der der Bogen enden soll, hängen sie ein runde Klammer zu ")
" an.
Lautstärke ergänzen
In der gezeigten Form kann man an Noten auch Lautstärkezeichen anhängen. Oft ist es sinnvoller, wenn die Lautstärken im Zwischenraum zwischen der linken und der rechten Hand gesetzt werden. Man könnte nun erwarten, dass man dazu eine weitere Stimme Voice
in den score einschiebt. Tatsächlich erzeugt man aber einen dynamic context. Hier erst einmal der komplette Quelltext:
Downloads: Quelltext - PDF-Datei
\version "2.18.2"
\header {
% The following fields are centered
%dedication = "Dedication"
title = "It’s a long, long way to Tipperary"
% subtitle = "subtitle"
%subsubtitle = "Subsubtitle"
% The following fields are evenly spread on one line
% the field "instrument" also appears on following pages
%instrument = \markup \with-color #green "Instrument"
% poet = "poet"
composer = "Written an Composed JACK JUDGE & HARRY WILLIAMS"
% The following fields are placed at opposite ends of the same line
% meter = "Meter"
% arranger = "arranger"
% The following fields are centered at the bottom
copyright = "Copyright 1912 by B. Feldmann & Co, London, Eng"
tagline = "Satz: Thomas Kneisel (lilypond 1.18.2 - www.lilypond.org)"
}
singerMelody = \new Voice = "melody"
\relative c'' {
\clef "treble" \key bes \major \time 2/4
r2 |
r2 |
r2 |
r2 |
\repeat volta 2 {
r2^\markup { \musicglyph #"scripts.segno" } |
r2 |
r2 |
r2 |
}
bes8 des c bes |
g8 f d es |
f8 g f d |
f4. r8 |
bes8 d c bes |
g8 f d f |
a8 bes a e |
a4. r8 |
bes8 d c bes |
g8 f d f |
a8 bes a e |
a4. c8|
d8 c bes a |
c8 bes c d |
a8 g a bes |
c4\fermata \bar "||" d,8^\markup { \bold Chorus } es |
\repeat volta 2 {
f4 f~ |
f8 f g a |
bes 4 d~ |
d4 d8 c |
bes4 g~ |
g4 bes |
f2~ |
f8 r bes d, |
f4 f~ |
f8 f g a |
bes4 d~ |
d4 bes8 b |
c4 g |
a4 bes |
c2~ |
c4 r |
f,4 f~ |
f4 g8 a |
bes4 d~ |
d4 r |
es4 g, |
bes4 c |
d2~ |
d8 r bes c |
d4 d |
d8 bes c bes |
g2 |
f4 bes |
d4 bes~ |
bes4 c |
}
\alternative {
{
bes2~ |
bes8 r d, es |
}
{
bes'2~ |
bes8 r r4_\markup { \italic D.C. \small \musicglyph #"scripts.segno" } |
\bar "|."
}
}
}
pianoUpper = \new Voice \relative c' {
\clef "treble" \key bes \major \time 2/4
<d bes'>8 <d d'> < d c'> <d bes'> |
<d g>8 <d f> <bes d> <c es> |
<d f>8 <d g> <d f> d |
f8. f16 <es g>8 <es a> |
\repeat volta 2 {
bes'16. bes 32 bes 16. bes 32 bes16. c32 d16. es32 |
f16. g32 f16. g32 f16. d32 c16. bes32 |
c16. g32 g16. g32 g16. a32 bes16. c32 |
<d, d'>16. bes'32 <es, c'>16. a32 <d, bes'>8 <bes' d f bes>-> |
}
<d, bes'>8 <d d'> <d c'> <d bes'> |
<d g>8 <d f> <bes d> <c es> |
<bes d f>8 <bes d g> <gis d' f> <gis d'> |
<a es' f>8 <a es' fis> <bes es g> <c es a> |
<d bes'>8 <d d'> <d c'> <d bes'> |
<cis g'>8 <d f> <bes d> f' |
<cis g'>8 <cis g' bes> <cis g' a> <cis e> |
<d f a>8 <d f> <c es g> <c es a> |
<d bes'>8 <d d'> <d c'> <d bes'> |
<d g>8 <d f> <bes d> <d f> |
<cis a'>8 <cis bes'> <cis a'> <cis e> |
<d f a>8 <c f a> <c e bes'> <c f c'> |
<< { d'8 c bes a } \\ { fis4 fis } >> |
<< { c'8 bes c d } \\ { <d, g>4 <d g> } >> |
<< { a'8 g a bes } \\ { e,4 e } >> |
<es f c'>4\fermata \bar "||" <bes d>8 <c es> |
\repeat volta 2 {
<d f>8-. <bes d f>-. <a d f>-. <g d' f>-. |
<f d' f>8 <f d' f> <g es' g > <a es' a> |
<< { bes'4 d~ d s } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 <d f> <bes' d> <a c> } >> |
<< { bes4 g~ g bes } \\ { r8 <es, g> r es r es r <es g> } >> |
<< { f8. g16 <d f>8 <bes d> } \\ { d4 s } >> |
<< { g8. a16 bes8 d, } \\ { cis4 d8 bes } >> |
<d f>8-. <bes d f>-. <a d f>-. <g d' f>-. |
<f d' f>8 <f d' f> <g es' g> <a es' a> |
<< { bes'4 d~ d } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 <d f> } >> < d g bes>8 <d g b> |
<< { c'4 g } \\ { r8 <e g> r <c e> } >> |
<< { a'4 bes } \\ { r8 <c, e> r <c e> } >> |
<< { c'8. d16 } \\ { es,4 } >> <es c'>8 <es a> |
<es g>8 <es f> <bes d> <c es> |
f8 d'16( c bes a g ges) |
<< { f4 } \\ { r8 <bes, d> } >> <es g> <es a> |
<< { bes'4 d~ d~ d } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 bes' a as } >> |
<g es'>4 <es g>-> |
<g bes>4-> <g c>-> |
<fis d'>8 a16 gis a8 fis |
d8 r <d bes'> <es c'> |
<< { d'4 d } \\ { r8 <d, f> r <d f> } >> |
<d f d'>8 <d f bes> <d f c'> <d f bes> |
<< { g2 f4 bes } \\ { r8 <cis, e>16 <cis e> <cis e>8 <cis e> d4 <d f> } >> |
<< { d'4 bes~ bes c } \\ { r8 <d, g bes> r <d g> r <e g> r <es f> } >> |
}
\alternative {
{
< d f bes>8 c'16 d c8 bes16 a |
g8 f <bes, d> <c es> |
}
{
<d f bes>8 d16 es f8 <es a d>-> |
<d f bes>8 r <bes' d f bes>-> r |
\bar "|."
}
}
}
pianoLower = \new Voice \relative c' {
\clef "bass" \key bes \major \time 2/4
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, f' |
bes,8 <f' bes> f, <f' bes> |
c8 <a' c es> <f bes> <f c'> |
\repeat volta 2 {
<g bes d>4-> <g bes d>8<g bes d> |
<bes, d bes' d>4-> <bes d bes' d>8 <bes d bes' d> |
<es g c>4 <es g c>8 <es g c> |
<f bes>8-> <f a>-> <bes, f' bes>-> <bes, bes'>-> |
}
bes'8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, f' |
bes,8 f' b, f' |
c8 f f, f' |
bes,8 <f' bes> f, <f' bes> |
<< { e8 f f4 } \\ { bes,8 bes bes4 } >> |
e8 a a, <g' a> |
<d a'>8 <d a'> <c f> <f, f'> |
bes8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, <f' bes> |
e8 <g a> a, <g'a> |
<d a'>8 <f, f'> <g g'> <a a'> |
<< { d8 f d' c } \\ { d,4~ d } >> |
<< { c'8 bes <g, g'>4 } \\ { g'4 s } >> |
<< { c8 bes a g } \\ { c,4 c } >> |
<< { a4\fermata } \\ { f4 } >> \bar "||" r4 |
\repeat volta 2 {
bes8 f' f, f' |
bes,8 f' f, f' |
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> d <f bes d> |
es8 <g bes> bes, <g' bes> |
es8 <g bes> es <g bes> |
\acciaccatura e8 <bes f'>4 \acciaccatura e8 <bes f'>4 |
<bes e >4 <bes f'>8 <bes f'> |
bes8 f' f, f' |
bes,8 f' f, f' |
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> <g, g'> <g g'> |
<c c'>4 <bes bes'> |
<a a'> <g g'> |
<f' a>4 <f a>8 <f c'> |
<f bes>8 <f a> <f, f'>4 |
bes8 <f' bes d> f, <f' bes d> |
bes,8 <f' bes> f, <f' a> |
bes,8 <f' bes> f, <f' bes> |
<< { bes, bes' c d } \\ { bes,2 } >> |
<es bes' es>4 <es bes'> |
<es bes' es>4 <es a es'> |
<d a' d>8 a'16 fis a8 fis |
d8 r r4 |
bes8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, <f' bes> |
<< { bes,8 <g' bes> <g bes> <g bes> } \\ { bes,2 } >> |
<bes f' bes>4 <bes bes'> |
g8 <g' bes> g, <g' bes> |
c,8 <g' bes c> f, <f' a> |
}
\alternative {
{
<bes, f' bes>8 c'16 d c8 bes16 a |
g8 f <f, f'>4 |
}
{
<bes f' bes>8 d16 es f8 <f, f'> |
<bes f'>8 r <bes, bes'> r |
\bar "|."
}
}
}
pianoDynamics = \new Dynamics {
s8\f s s4 |
s2 |
s2 |
s2 |
\repeat volta 2 {
s2 |
s2 |
s2 |
s4 s8 s8\sfz |
}
s8\mp s s4 |
s2 |
s8\< s8\! s4 |
s8\> s s s\! |
s2 |
s2 |
s8\< s s s\!
s8\> s s s\! |
s2 |
s2 |
s2 |
s8\< s\! s\> s\! |
s2 |
s2 |
s2 |
s4 s8\p s\f |
\repeat volta 2 {
s2 |
s4 s8 \override Hairpin.to-barline = ##f s8\< |
s8\! \override Hairpin.to-barline = ##t s s4 |
s8\> s s\! s |
s2 |
s8\< s s s\! |
s2 |
s8\> s s s\! |
s2 |
s4 s8 \override Hairpin.to-barline = ##f s8\< |
s8\! \override Hairpin.to-barline = ##t s s s16 s\> |
s8 s \! s s |
s2 |
s8 \override Hairpin.to-barline = ##f s8\< s4 |
\override Hairpin.to-barline = ##t s4\! s4 |
s8\> s s s\! |
s2 |
s2 |
s2 |
s2 |
s8.\< s16\! s8 s |
s8 s s s\< |
s8 s16 s\! s4 |
s8\> s s s\! |
s2 |
s2 |
s2 |
s2 |
s2 |
s4 s8\< s |
}
\alternative {
{
s4 s8\! s |
s2 |
}
{
s4 s8\! s |
s4 s8->\fz s |
}
}
\bar "|."
}
\book {
% This is for printing
\score {
<<
\singerMelody
\new PianoStaff {
<<
\set PianoStaff.instrumentName = #"Piano "
\new Staff { \pianoUpper }
\pianoDynamics
\new Staff { \pianoLower }
>>
}
>>
\layout { }
}
% This is to create proper MIDI output
\score {
\singerMelody
\midi { }
}
}
Der Inhalt des dynamic context entspricht von seiner Struktur den Notenzeilen, z.B. tauchen wieder die gleichen Wiederholunge auf. Der Inhalt ist aber weit trivialer. Er besteht größtenteils aus unsichtbare Pausen, nur gelegentlich wird an eine einzelne Pause eine Ausdrucksbezeichnung angehängt, z.B. für ein forte: "s4\f
".
Ein Crescendo beginnt man mit einem an die erste Note (oder Pause) angehängtes "\<
". Dort wo es aufhört, hängt man ein "\!
" an bzw. man startet ein Decrescendo.
Ein kleiner Fallstrick lauert, wenn das Crescendo oder Decrescendo an der ersten Note hinter einem Taktstrich endet. Warum das Crescendo dann standardmäßig bereits am Ende des vorangegangen Taktes endet ist mir nicht recht klar. Gemäß lilypond-Handbuch muss man aber in einem solchen Fall die Hairpin.to-barline
Eigenschaft vorübergehend von true
auf false
setzen, etwa so:
s4 s8 \override Hairpin.to-barline = ##f s8\< |
s8\! \override Hairpin.to-barline = ##t s s4 |
Gesangstext ergänzen
Instrumentalmusik hat den unbestreitbaren Vorteil, dass niemand mit Gesang stört. Mir persönlich reicht es aus, wenn man mitsummt oder "lalala" singt. Ich verstehe gesungen Text ohnehin nur in Ausnahmefällen. Es strapaziert die Spracherkennung meines Hirns aufs Äusserste und wie das Buch "Der weiße Neger Wumbaba" von Axel Hacke zeigt, geht es auch anderen so. Man kann dem Thema aber nicht immer aus dem Weg gehen. Auf, Last von Stroph zu Stroph uns eilen, wir woll'n dem Lied einen Text erteilen.
Downloads: Quelltext - PDF-Datei
\version "2.18.2"
\header {
% The following fields are centered
%dedication = "Dedication"
title = "It’s a long, long way to Tipperary"
% subtitle = "subtitle"
%subsubtitle = "Subsubtitle"
% The following fields are evenly spread on one line
% the field "instrument" also appears on following pages
%instrument = \markup \with-color #green "Instrument"
% poet = "poet"
composer = "Written an Composed JACK JUDGE & HARRY WILLIAMS"
% The following fields are placed at opposite ends of the same line
% meter = "Meter"
% arranger = "arranger"
% The following fields are centered at the bottom
copyright = "Copyright 1912 by B. Feldmann & Co, London, Eng"
tagline = "Satz: Thomas Kneisel (lilypond 1.18.2 - www.lilypond.org)"
}
singerMelody = \new Voice = "melody"
\relative c'' {
\clef "treble" \key bes \major \time 2/4
r2 |
r2 |
r2 |
r2 |
\repeat volta 2 {
r2^\markup { \musicglyph #"scripts.segno" } |
r2 |
r2 |
r2 |
}
bes8 des c bes |
g8 f d es |
f8 g f d |
f4. r8 |
bes8 d c bes |
g8 f d f |
a8 bes a e |
a4. r8 |
bes8 d c bes |
g8 f d f |
a8 bes a e |
a4. c8|
d8 c bes a |
c8 bes c d |
a8 g a bes |
c4\fermata \bar "||" d,8^\markup { \bold Chorus } es |
\repeat volta 2 {
f4 f~ |
f8 f g a |
bes 4 d~ |
d4 d8 c |
bes4 g~ |
g4 bes |
f2~ |
f8 r bes d, |
f4 f~ |
f8 f g a |
bes4 d~ |
d4 bes8 b |
c4 g |
a4 bes |
c2~ |
c4 r |
f,4 f~ |
f4 g8 a |
bes4 d~ |
d4 r |
es4 g, |
bes4 c |
d2~ |
d8 r bes c |
d4 d |
d8 bes c bes |
g2 |
f4 bes |
d4 bes~ |
bes4 c |
}
\alternative {
{
bes2~ |
bes8 r d, es |
}
{
bes'2~ |
bes8 r r4^\markup { \italic D.C. \small \musicglyph #"scripts.segno" } |
\bar "|."
}
}
}
pianoUpper = \new Voice \relative c' {
\clef "treble" \key bes \major \time 2/4
<d bes'>8 <d d'> < d c'> <d bes'> |
<d g>8 <d f> <bes d> <c es> |
<d f>8 <d g> <d f> d |
f8. f16 <es g>8 <es a> |
\repeat volta 2 {
bes'16. bes 32 bes 16. bes 32 bes16. c32 d16. es32 |
f16. g32 f16. g32 f16. d32 c16. bes32 |
c16. g32 g16. g32 g16. a32 bes16. c32 |
<d, d'>16. bes'32 <es, c'>16. a32 <d, bes'>8 <bes' d f bes>-> |
}
<d, bes'>8 <d d'> <d c'> <d bes'> |
<d g>8 <d f> <bes d> <c es> |
<bes d f>8 <bes d g> <gis d' f> <gis d'> |
<a es' f>8 <a es' fis> <bes es g> <c es a> |
<d bes'>8 <d d'> <d c'> <d bes'> |
<cis g'>8 <d f> <bes d> f' |
<cis g'>8 <cis g' bes> <cis g' a> <cis e> |
<d f a>8 <d f> <c es g> <c es a> |
<d bes'>8 <d d'> <d c'> <d bes'> |
<d g>8 <d f> <bes d> <d f> |
<cis a'>8 <cis bes'> <cis a'> <cis e> |
<d f a>8 <c f a> <c e bes'> <c f c'> |
<< { d'8 c bes a } \\ { fis4 fis } >> |
<< { c'8 bes c d } \\ { <d, g>4 <d g> } >> |
<< { a'8 g a bes } \\ { e,4 e } >> |
<es f c'>4\fermata \bar "||" <bes d>8 <c es> |
\repeat volta 2 {
<d f>8-. <bes d f>-. <a d f>-. <g d' f>-. |
<f d' f>8 <f d' f> <g es' g > <a es' a> |
<< { bes'4 d~ d s } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 <d f> <bes' d> <a c> } >> |
<< { bes4 g~ g bes } \\ { r8 <es, g> r es r es r <es g> } >> |
<< { f8. g16 <d f>8 <bes d> } \\ { d4 s } >> |
<< { g8. a16 bes8 d, } \\ { cis4 d8 bes } >> |
<d f>8-. <bes d f>-. <a d f>-. <g d' f>-. |
<f d' f>8 <f d' f> <g es' g> <a es' a> |
<< { bes'4 d~ d } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 <d f> } >> < d g bes>8 <d g b> |
<< { c'4 g } \\ { r8 <e g> r <c e> } >> |
<< { a'4 bes } \\ { r8 <c, e> r <c e> } >> |
<< { c'8. d16 } \\ { es,4 } >> <es c'>8 <es a> |
<es g>8 <es f> <bes d> <c es> |
f8 d'16( c bes a g ges) |
<< { f4 } \\ { r8 <bes, d> } >> <es g> <es a> |
<< { bes'4 d~ d~ d } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 bes' a as } >> |
<g es'>4 <es g>-> |
<g bes>4-> <g c>-> |
<fis d'>8 a16 gis a8 fis |
d8 r <d bes'> <es c'> |
<< { d'4 d } \\ { r8 <d, f> r <d f> } >> |
<d f d'>8 <d f bes> <d f c'> <d f bes> |
<< { g2 f4 bes } \\ { r8 <cis, e>16 <cis e> <cis e>8 <cis e> d4 <d f> } >> |
<< { d'4 bes~ bes c } \\ { r8 <d, g bes> r <d g> r <e g> r <es f> } >> |
}
\alternative {
{
< d f bes>8 c'16 d c8 bes16 a |
g8 f <bes, d> <c es> |
}
{
<d f bes>8 d16 es f8 <es a d>-> |
<d f bes>8 r <bes' d f bes>-> r |
\bar "|."
}
}
}
pianoLower = \new Voice \relative c' {
\clef "bass" \key bes \major \time 2/4
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, f' |
bes,8 <f' bes> f, <f' bes> |
c8 <a' c es> <f bes> <f c'> |
\repeat volta 2 {
<g bes d>4-> <g bes d>8<g bes d> |
<bes, d bes' d>4-> <bes d bes' d>8 <bes d bes' d> |
<es g c>4 <es g c>8 <es g c> |
<f bes>8-> <f a>-> <bes, f' bes>-> <bes, bes'>-> |
}
bes'8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, f' |
bes,8 f' b, f' |
c8 f f, f' |
bes,8 <f' bes> f, <f' bes> |
<< { e8 f f4 } \\ { bes,8 bes bes4 } >> |
e8 a a, <g' a> |
<d a'>8 <d a'> <c f> <f, f'> |
bes8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, <f' bes> |
e8 <g a> a, <g'a> |
<d a'>8 <f, f'> <g g'> <a a'> |
<< { d8 f d' c } \\ { d,4~ d } >> |
<< { c'8 bes <g, g'>4 } \\ { g'4 s } >> |
<< { c8 bes a g } \\ { c,4 c } >> |
<< { a4\fermata } \\ { f4 } >> \bar "||" r4 |
\repeat volta 2 {
bes8 f' f, f' |
bes,8 f' f, f' |
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> d <f bes d> |
es8 <g bes> bes, <g' bes> |
es8 <g bes> es <g bes> |
\acciaccatura e8 <bes f'>4 \acciaccatura e8 <bes f'>4 |
<bes e >4 <bes f'>8 <bes f'> |
bes8 f' f, f' |
bes,8 f' f, f' |
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> <g, g'> <g g'> |
<c c'>4 <bes bes'> |
<a a'> <g g'> |
<f' a>4 <f a>8 <f c'> |
<f bes>8 <f a> <f, f'>4 |
bes8 <f' bes d> f, <f' bes d> |
bes,8 <f' bes> f, <f' a> |
bes,8 <f' bes> f, <f' bes> |
<< { bes, bes' c d } \\ { bes,2 } >> |
<es bes' es>4 <es bes'> |
<es bes' es>4 <es a es'> |
<d a' d>8 a'16 fis a8 fis |
d8 r r4 |
bes8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, <f' bes> |
<< { bes,8 <g' bes> <g bes> <g bes> } \\ { bes,2 } >> |
<bes f' bes>4 <bes bes'> |
g8 <g' bes> g, <g' bes> |
c,8 <g' bes c> f, <f' a> |
}
\alternative {
{
<bes, f' bes>8 c'16 d c8 bes16 a |
g8 f <f, f'>4 |
}
{
<bes f' bes>8 d16 es f8 <f, f'> |
<bes f'>8 r <bes, bes'> r |
\bar "|."
}
}
}
pianoDynamics = \new Dynamics {
s8\f s s4 |
s2 |
s2 |
s2 |
\repeat volta 2 {
s2 |
s2 |
s2 |
s4 s8 s8\sfz |
}
s8\mp s s4 |
s2 |
s8\< s8\! s4 |
s8\> s s s\! |
s2 |
s2 |
s8\< s s s\!
s8\> s s s\! |
s2 |
s2 |
s2 |
s8\< s\! s\> s\! |
s2 |
s2 |
s2 |
s4 s8\p s\f |
\repeat volta 2 {
s2 |
s4 s8 \override Hairpin.to-barline = ##f s8\< |
s8\! \override Hairpin.to-barline = ##t s s4 |
s8\> s s\! s |
s2 |
s8\< s s s\! |
s2 |
s8\> s s s\! |
s2 |
s4 s8 \override Hairpin.to-barline = ##f s8\< |
s8\! \override Hairpin.to-barline = ##t s s s16 s\> |
s8 s \! s s |
s2 |
s8 \override Hairpin.to-barline = ##f s8\< s4 |
\override Hairpin.to-barline = ##t s4\! s4 |
s8\> s s s\! |
s2 |
s2 |
s2 |
s2 |
s8.\< s16\! s8 s |
s8 s s s\< |
s8 s16 s\! s4 |
s8\> s s s\! |
s2 |
s2 |
s2 |
s2 |
s2 |
s4 s8\< s |
}
\alternative {
{
s4 s8\! s |
s2 |
}
{
s4 s8\! s |
s4 s8\fz s |
}
}
\bar "|."
}
stanzaOne = \lyricmode {
\set stanza = #"1. "
Up to might -- ty Lon -- don came an Ir -- ish man one day,
As the street are paved with gold, sure ev -- 'ry -- one was gay;
Sing -- ing songs of Pic -- c -- dil -- ly, Strand and Leice -- ster Square,
Till Pad -- dy got ex -- cit --es, then he shout -- ed to them there:
}
stanzaTwo = \lyricmode {
\set stanza = #"2. "
Pad -- dy wrote a let -- ter to his Ir -- ish Mol -- ly O,
Say -- ing, "\"Should" you not re -- ceive it, write and let me know!
If I make mis -- takes in "\"spell" -- "ing,\"" Mol -- ly "dear,\"" said he,
"\"Re" -- mem -- ber it's the pen that's bad, don't lay the blame on "me\""
"\"It's" a long way __ to Tip -- per -- ar -- y, __
It's a long way __ to go; __
It's a long way __ to Tip -- per -- ar -- y, __
To the sweet -- est girl I know! __
Good -- bye __ Pic -- ca -- dil -- ly, __
Fare -- well, Leices -- ter Square, __
It's a long, long way to Tip -- per -- rar -- y,
But my heart's __ right "there!\"" __
It's a
"there\"" __
}
stanzaThree = \lyricmode {
\set stanza = #"3. "
Mol -- ly wrote a neat re -- ply to Ir -- ish Pad -- dy O,
say -- ing, "\"Mike" Ma -- lon -- ny wants to mar -- ry me, and no
Leave the Strand and Pic -- ca -- dil -- ly, or you'll be to blame,
For love has fair -- ly drove me sil -- ly hop -- ing you're the "same!\""
}
\book {
% This is for printing
\score {
<<
\singerMelody
\new Lyrics \lyricsto "melody" { \stanzaOne }
\new Lyrics \lyricsto "melody" { \stanzaTwo }
\new Lyrics \lyricsto "melody" { \stanzaThree }
\new PianoStaff {
<<
\set PianoStaff.instrumentName = #"Piano "
\new Staff { \pianoUpper }
\pianoDynamics
\new Staff { \pianoLower }
>>
}
>>
\layout { }
}
% This is to create proper MIDI output
\score {
\singerMelody
\midi { }
}
}
- Wir legen für jede Strophe eine
\lyricmode
-Variable mit dem Gesangstext an.stanzaOne = \lyricmode { \set stanza = #"1. " Up to might -- ty Lon -- don came an Ir -- ish man one day, As the street are paved with gold, sure ev -- 'ry -- one was gay; Sing -- ing songs of Pic -- c -- dil -- ly, Strand and Leice -- ster Square, Till Pad -- dy got ex -- cit --es, then he shout -- ed to them there: } stanzaTwo = \lyricmode { ... } stanzaThree = \lyricmode { ... }
- Wir fügen die einzelnen Strophe der Gesangsmelodie zu. Dazu modifizieren wir wieder einmal die Score-Umgebung:
Wenn man genau hinsieht, findet man hier endlich die Erklärung, warum wir ganz am Anfang der Gesangsstimme den Kenner "\score { << \singerMelody \new Lyrics \lyricsto "melody" { \stanzaOne } \new Lyrics \lyricsto "melody" { \stanzaTwo } \new Lyrics \lyricsto "melody" { \stanzaThree }
melody
" hinzugefügt haben. Denn damit werden Musik und Text miteinander assoziert. lilypond kann jetz die Dauer der Silben aus der Melodie übernehmen und man muss diese nicht umständlich händisch im Gesangstext spezifizieren.
Ein paar Besonderheiten sind erwähnenswert:
- Verteilung einzelner Wortsilben auf verschiedene Noten: Trennen sie die Silben mit zwei Bindestrichen (Minus-Zeichen)
- Gedehnter Text bei langen Noten: Hängen sie zwei Underscores an die Textsilbe an.
- Gleicher Text für alle drei Strophen (Chorus): Schreiben sie den Text nur in einer Strophe. Lassen sie den Text in den anderen Strophen einfachen weg oder erzeugen sie Lücken mit
\skip
. - Nummerierung der Strophen: Fügen sie jeder Strophe eine Nummer hinzu:
\set stanza = #"1. "
- Alternative Enden von Wiederholungen: Vergessen sie beim Gesangstext die Sache mit
\repeat
und\alternative
. Schreiben sie einfach den Text durchgehend: Ende 1, Ende 2 etc.
Abschließende Optimierungen
Eigentlich wären wir jetzt fertig, aber zwei, drei oder noch mehr Probleme bleiben noch:
- Es sieht sozusagen "Scheiße" aus. Die Platzaufteilung auf der ersten Seite ist unbrauchbar, weil die Abstände zwischen den Notenzeilen zu groß sind. Und die letzte Seite ist mit lediglich zwei Zeilen nicht richtig ausgefüllt. Versuchen wir einmal, die Platzausnutzung zu optimieren:
- Der erste Schritt ist eigentlich überflüssig, wir definieren das Papierformat als A4 Hochkant. Den folgenden Text kann man auf der obersten Hierarchieebene des Quelltextes einschieben, etwa nach der Header-Sektion.
Wie gesagt, das ist eigentlich überflüssig, weil es die Standardeinstellung ist. Aber damit haben wir im Quellcode schon mal die Möglichkeit vorgesehen, das bei Bedarf zu ändern, z.B. von Hochformat auf Querformat umzustellen. Einfach\paper { #(set-paper-size "a4" 'portrait) }
landscape
an Stelle vonportrait
einsetzen, das war es schon. - Im konkreten Fall zielführender ist eine Änderung der horizontalen Abstände der Noten, so dass die Takte breiter oder schmaler gesetzt werden. Füllen wir unsere bislang inhaltsleere
\ayout
-Sektion mit mehr Inhalt:
Man kann jetzt versuchsweise den Bruch 1/24 variieren, etwa 1/16 oder 1/32 und erhält dann vielleicht einen Notensatz, der vier anstatt 3 Seiten benötigt. Ich weiß offengestanden nicht, was man mit diesem Parameter genau variiert, aber 1/24 liefert im konrekten Fall ein ansprechendes Ergebnis. Die erste Seite ist deutlich gleichmäßiger gefüllt und die Noten füllen auch die letzte Seite bis zum unteren Rand aus. Denken wir nicht weiter drüber nach und belassen es dabei.\layout { \context { \Score \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/24) } }
- Der erste Schritt ist eigentlich überflüssig, wir definieren das Papierformat als A4 Hochkant. Den folgenden Text kann man auf der obersten Hierarchieebene des Quelltextes einschieben, etwa nach der Header-Sektion.
- Sowohl Noten wie Text sind noch voller Fehler. Also einmal ausdrucken und kritisch prüfen.
Schaut man sich die erste Fassung mit Gesangstext weiter oben und die unten wiedergegebene Endfassung an, bemerkt man vielleicht, dass ich die Schreibweise von Apostrophen und Anführungszeichen angepasst habe. Betrachten wir als Beispiel Takt 13 wo in Strophe 2 "Gänsefüßchen oben" vor dem Namen Mike eine wörtliche Rede einleiten, also “Mike. Einfache doppelte Hochkommas haben leider in lilypond wie in vielen anderen Programmiersprachen eine syntaktische Funktion. Wir wollen sie aber als Schriftzeichen, nicht als Syntaxelement benutzen.
Der naive Ansatz wäre einfach einen Backslash davor zu setzen
\"Mike
, wie man es etwa in C macht. Aber das ist ein Syntaxfehler. Man muss den Ausdruck zusätzlich noch in doppelte Hochkommas einschließen. Versucht man es also mit"\""Mike
, dann gibt es immerhin keinen Übersetzungsfehler mehr, aber lilypond erzeugt zwischen den Hochkommas und dem Namen Mike einen unerwünschten Leerraum. Brauchbar sieht es erst aus, wenn man den Namen Mike mit in die doppelten Hochkommas reinnimmt:"\"Mike"
schreibt. Jetzt kleben die Hochkommas endlich am Namen Mike fest.Typografisch ist das ohnehin zweifelhaft und überflüssig. Der originale Notensatz des Tipperary-Songs benutzt keine einfachen, sondern typografische Anführungszeichen: “Blablabla”. Da die keinerlei syntaktische Funktion kann man die völlig unbedenklich wie ein normales Schriftzeichen benutzen, in unserem Beispiel:
“Mike
- Bislang stand vor den Klaviernoten zwar "Piano", aber dass die Gesangsmelodie Gesang ist, dass konnte man nur erraten. Um diesem Missstand zu begegnen machen wir im \score folgendes. War:
\singerMelody \new Lyrics \lyricsto "melody" { \stanzaOne } \new Lyrics \lyricsto "melody" { \stanzaTwo } \new Lyrics \lyricsto "melody" { \stanzaThree }
Wird jetzt geändert zu:
Nebenbei haben wir auch noch die fehlende Tempoangabe eingebaut. Die Metronomzahl stammt übrigens nicht aus dem Originalsatz. Das ist der generische Wert für Allegro. Eine Definitoin von con spirito habe ich mit schlampigen Googlen nicht gefunden.\new Staff \with { instrumentName = #"Voice" } { \tempo "Allegro con spirito" 4 = 120 - 168 \singerMelody } \new Lyrics \lyricsto "melody" { \stanzaOne } \new Lyrics \lyricsto "melody" { \stanzaTwo } \new Lyrics \lyricsto "melody" { \stanzaThree }
- Eine Sache ist offen geblieben: Der Teil im Quelltext, der die Erzeugung von Midi Daten steuern soll, ist unvollständig geblieben, deswegen habe ich ihn in der (vorläufigen) Endfassung wieder entfernt. In einfachen Fällen reicht es aus, in der
\score
Umgebung einfach
\midi { }
zu ergänzen. Sobald aber Wiederholungen ins Spiel kommen, wird die Sache komplizierter, besonders, wenn es sich um Da Capos handelt. Das strukturiert zu lösen erfordert einen größeren Umbau des Quelltextes, der im nächsten Abschnitt durchgeführt werden soll. Noch ist der aber nicht geschrieben ist; auf dieser Seite weiter runterscrollen lohnt sich also derzeit nicht.
Das war es dann auch schon. Mit etwas Übung kommt man innerhalb weniger Stunden zu einem brauchbaren Ergebnist:
Downloads: Quelltext - PDF-Datei
\version "2.18.2"
\header {
% The following fields are centered
%dedication = "Dedication"
title = "“It’s a long, long way to Tipperary”"
% subtitle = "subtitle"
%subsubtitle = "Subsubtitle"
% The following fields are evenly spread on one line
% the field "instrument" also appears on following pages
%instrument = \markup \with-color #green "Instrument"
% poet = "poet"
composer = "Written an Composed JACK JUDGE & HARRY WILLIAMS"
% The following fields are placed at opposite ends of the same line
% meter = "Meter"
% arranger = "arranger"
% The following fields are centered at the bottom
copyright = "Copyright 1912 by B. Feldmann & Co, London, Eng"
tagline = "Satz: Thomas Kneisel (lilypond 1.18.2 - www.lilypond.org)"
}
\paper {
#(set-paper-size "a4" 'portait)
}
singerMelody = \new Voice = "melody"
\relative c'' {
\clef "treble" \key bes \major \time 2/4
r2 |
r2 |
r2 |
r2 |
\repeat volta 2 {
r2^\markup { \musicglyph #"scripts.segno" } |
r2 |
r2 |
r2 |
}
bes8 d c bes |
g8 f d es |
f8 g f d |
f4. r8 |
bes8 d c bes |
g8 f d f |
a8 bes a e |
a4. r8 |
bes8 d c bes |
g8 f d f |
a8 bes a e |
a4. c8|
d8 c bes a |
c8 bes c d |
a8 g a bes |
c4\fermata \bar "||" d,8^\markup { \bold Chorus } es |
\repeat volta 2 {
f4 f~ |
f8 f g a |
bes 4 d~ |
d4 d8 c |
bes4 g~ |
g4 bes |
f2~ |
f8 r bes d, |
f4 f~ |
f8 f g a |
bes4 d~ |
d4 bes8 b |
c4 g |
a4 bes |
c2~ |
c4 r |
f,4 f~ |
f4 g8 a |
bes4 d~ |
d4 r |
es4 g, |
bes4 c |
d2~ |
d8 r bes c |
d4 d |
d8 bes c bes |
g2( |
f4) bes |
d4 bes~ |
bes4 c |
}
\alternative {
{
bes2~ |
bes8 r d, es |
}
{
bes'2~ |
bes8 r r4^\markup { \italic D.C. \small \musicglyph #"scripts.segno" } |
\bar "|."
}
}
}
pianoUpper = \new Voice \relative c' {
\clef "treble" \key bes \major \time 2/4
<d bes'>8 <d d'> < d c'> <d bes'> |
<d g>8 <d f> <bes d> <c es> |
<d f>8 <d g> <d f> d |
f8. f16 <es g>8 <es a> |
\repeat volta 2 {
bes'16. bes 32 bes 16. bes 32 bes16. c32 d16. es32 |
f16. g32 f16. g32 f16. d32 c16. bes32 |
c16. g32 g16. g32 g16. a32 bes16. c32 |
<d, d'>16. bes'32 <es, c'>16. a32 <d, bes'>8 <bes' d f bes>-> |
}
<d, bes'>8 <d d'> <d c'> <d bes'> |
<d g>8 <d f> <bes d> <c es> |
<bes d f>8 <bes d g> <gis d' f> <gis d'> |
<a es' f>8 <a es' fis> <bes es g> <c es a> |
<d bes'>8 <d d'> <d c'> <d bes'> |
<cis g'>8 <d f> <bes d> f' |
<cis g' a>8 <cis g' bes> <cis g' a> <cis e> |
<d f a>8 <d f> <c es g> <c es a> |
<d bes'>8 <d d'> <d c'> <d bes'> |
<d g>8 <d f> <bes d> <d f> |
<cis a'>8 <cis bes'> <cis a'> <cis e> |
<d f a>8 <c f a> <c e bes'> <c f c'> |
<< { d'8 c bes a } \\ { fis4 fis } >> |
<< { c'8 bes c d } \\ { <d, g>4 <d g> } >> |
<< { a'8 g a bes } \\ { e,4 e } >> |
<es f c'>4\fermata \bar "||" <bes d>8 <c es> |
\repeat volta 2 {
<d f>8-. <bes d f>-. <a d f>-. <g d' f>-. |
<f d' f>8 <f d' f> <g es' g > <a es' a> |
<< { bes'4 d~ d s } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 <d f> <bes' d> <a c> } >> |
<< { bes4 g~ g bes } \\ { r8 <es, g> r es r es r <es g> } >> |
<< { f8. g16 <d f>8 <bes d> } \\ { d4 s } >> |
<< { g8. a16 bes8 d, } \\ { cis4 d8 bes } >> |
<d f>8-. <bes d f>-. <a d f>-. <g d' f>-. |
<f d' f>8 <f d' f> <g es' g> <a es' a> |
<< { bes'4 d~ d } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 <d f> } >> < d g bes>8 <d g b> |
<< { c'4 g } \\ { r8 <e g> r <c e> } >> |
<< { a'4 bes } \\ { r8 <c, e> r <c e> } >> |
<< { c'8. d16 } \\ { es,4 } >> <es c'>8 <es a> |
<es g>8 <es f> <bes d> <c es> |
f8 d'16( c bes a g ges) |
<< { f4 } \\ { r8 <bes, d> } >> <es g> <es a> |
<< { bes'4 d~ d~ d } \\ { r8 <d, f>16 <d f> r8 <d f>16 <d f> <d f>8 bes' a as } >> |
<g es'>4 <es g>-> |
<g bes>4-> <g c>-> |
<fis d'>8 a16 gis a8 fis |
d8 r <d bes'> <es c'> |
<< { d'4 d } \\ { r8 <d, f> r <d f> } >> |
<d f d'>8 <d f bes> <d f c'> <d f bes> |
<< { g2( f4) bes } \\ { r8 <cis, e>16 <cis e> <cis e>8 <cis e> d4 <d f> } >> |
<< { d'4 bes~ bes c } \\ { r8 <d, g bes> r <d g> r <e g> r <es f> } >> |
}
\alternative {
{
< d f bes>8 c'16 d c8 bes16 a |
g8 f <bes, d> <c es> |
}
{
<d f bes>8 d16 es f8 <es a d>-> |
<d f bes>8 r <bes' d f bes>-> r |
\bar "|."
}
}
}
pianoLower = \new Voice \relative c' {
\clef "bass" \key bes \major \time 2/4
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, f' |
bes,8 <f' bes> f, <f' bes> |
c8 <a' c es> <f bes> <f c'> |
\repeat volta 2 {
<g bes d>4-> <g bes d>8<g bes d> |
<d f bes d>4-> <d f bes d>8 <d f bes d> |
<es g c>4 <es g c>8 <es g c> |
<f bes>8-> <f a>-> <bes, f' bes>-> <bes, bes'>-> |
}
bes'8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, f' |
bes,8 f' b, f' |
c8 f f, f' |
bes,8 <f' bes> f, <f' bes> |
<< { e8 f f4 } \\ { bes,8 bes bes4 } >> |
e8 a a, <g' a> |
<d a'>8 <d a'> <c f> <f, f'> |
bes8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, <f' bes> |
e8 <g a> a, <g'a> |
<d a'>8 <f, f'> <g g'> <a a'> |
<< { d8 f d' c } \\ { d,4~ d } >> |
<< { c'8 bes <g, g'>4 } \\ { g'4 s } >> |
<< { c8 bes a g } \\ { c,4 c } >> |
<< { a'4\fermata } \\ { f4 } >> \bar "||" r4 |
\repeat volta 2 {
bes,8 f' f, f' |
bes,8 f' f, f' |
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> d <f bes d> |
es8 <g bes> bes, <g' bes> |
es8 <g bes> es <g bes> |
\acciaccatura e8 <bes f'>4 \acciaccatura e8 <bes f'>4 |
<bes e >4 <bes f'>8 <bes f'> |
bes8 f' f, f' |
bes,8 f' f, f' |
bes,8 <f' bes> f, <f' bes> |
bes,8 <f' bes> <g, g'> <g g'> |
<c c'>4 <bes bes'> |
<a a'> <g g'> |
<f' a>4 <f a>8 <f c'> |
<f bes>8 <f a> <f, f'>4 |
bes8 <f' bes d> f, <f' bes d> |
bes,8 f' f, <f' a> |
bes,8 <f' bes> f, <f' bes> |
<< { bes, bes' c d } \\ { bes,2 } >> |
<es bes' es>4 <es bes'> |
<es bes' es>4 <es a es'> |
<d a' d>8 a'16 gis a8 f |
d8 r r4 |
bes8 <f' bes> f, <f' bes> |
bes,8 <f' bes> f, <f' bes> |
<< { bes,8 <g' bes> <g bes> <g bes> } \\ { bes,2 } >> |
<bes f' bes>4 <bes bes'> |
g8 <g' bes> g, <g' bes> |
c,8 <g' bes c> f, <f' a> |
}
\alternative {
{
<bes, f' bes>8 c'16 d c8 bes16 a |
g8 f <f, f'>4 |
}
{
<bes f' bes>8 d16 es f8 <f, f'> |
<bes f'>8 r <bes, bes'> r |
\bar "|."
}
}
}
pianoDynamics = \new Dynamics {
s8\f s s4 |
s2 |
s2 |
s2 |
\repeat volta 2 {
s2 |
s2 |
s2 |
s4 s8 s8\sfz |
}
s8\mp s s4 |
s2 |
s8\< s8\! s4 |
s8\> s s s\! |
s2 |
s2 |
s8\< s s s\!
s8\> s s s\! |
s2 |
s2 |
s2 |
s8\< s\! s\> s\! |
s2 |
s2 |
s2 |
s4 s8\p s\f |
\repeat volta 2 {
s2 |
s4 s8 \override Hairpin.to-barline = ##f s8\< |
s8\! \override Hairpin.to-barline = ##t s s4 |
s8\> s s\! s |
s2 |
s8\< s s s\! |
s2 |
s8\> s s s\! |
s2 |
s4 s8 \override Hairpin.to-barline = ##f s8\< |
s8\! \override Hairpin.to-barline = ##t s s s16 s\> |
s8 s \! s s |
s2 |
s8 \override Hairpin.to-barline = ##f s8\< s4 |
\override Hairpin.to-barline = ##t s4\! s4 |
s8\> s s s\! |
s2 |
s2 |
s2 |
s2 |
s8.\< s16\! s8 s |
s8 s s s\< |
s8 s16 s\! s4 |
s8\> s s s\! |
s2 |
s2 |
s2 |
s2 |
s2 |
s4 s8\< s |
}
\alternative {
{
s4 s8\! s |
s2 |
}
{
s8\< s s\! s |
s4 s8\fz s |
}
}
\bar "|."
}
stanzaOne = \lyricmode {
\set stanza = #"1. "
Up to might -- ty Lon -- don came an Ir -- ish man one day,
As the street are paved with gold, sure ev -- ’ry -- one was gay;
Sing -- ing songs of Pic -- ca -- dil -- ly, Strand and Leice -- ster Square,
Till Pad -- dy got ex -- cit -- ted, then he shout -- ed to them there:
}
stanzaTwo = \lyricmode {
\set stanza = #"2. "
Pad -- dy wrote a let -- ter to his Ir -- ish Mol -- ly O’,
Say -- ing, “Should you not re -- ceive it, write and let me know!
“If I make mis -- takes in “spell -- ing,” Mol -- ly dear,” said he,
“Re -- mem -- ber it’s the pen that's bad, don’t lay the blame on me”
“It’s a long way __ to Tip -- per -- ar -- y, __
It’s a long way __ to go; __
It’s a long way __ to Tip -- per -- ar -- y, __
To the sweet -- est girl I know! __
Good -- bye __ Pic -- ca -- dil -- ly, __
Fare -- well, Leices -- ter Square, __
It’s a long, long way to Tip -- per -- ary, __
But my heart’s __ right there!” __
“It’s a
there” __
}
stanzaThree = \lyricmode {
\set stanza = #"3. "
Mol -- ly wrote a neat re -- ply to Ir -- ish Pad -- dy O’,
say -- ing, “Mike Ma -- lon -- ney wants to mar -- ry me, and so
Leave the Strand and Pic -- ca -- dil -- ly, or you’ll be to blame,
For love has fair -- ly drove me sil -- ly hop -- ing you’re the same!”
}
\book {
% This is for printing
\score {
<<
\new Staff \with {
instrumentName = #"Voice"
}
{
\tempo "Allegro con spirito" 4 = 120 - 168
\singerMelody
}
\new Lyrics \lyricsto "melody" { \stanzaOne }
\new Lyrics \lyricsto "melody" { \stanzaTwo }
\new Lyrics \lyricsto "melody" { \stanzaThree }
\new PianoStaff {
<<
\set PianoStaff.instrumentName = #"Piano "
\new Staff { \pianoUpper }
\pianoDynamics
\new Staff { \pianoLower }
>>
}
>>
\layout {
\context {
\Score
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/24)
}
}
}
}
Weiter geht es im zweiten Teil Erzeugung von midi-Files