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:

Verwendete Software

Im folgenden verwende ich im wesentlichen nur zwei Programme:

  1. lilypond: Das eigentliche Notensatzprogramm
  2. 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:

  1. http://lilypond.org/
  2. https://www.frescobaldi.org/
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

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?

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:

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:

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 { }
  }
}

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 { }
  }
}
Das Verfahren ist aber im Prinzip das gleiche, als würde man eine neue Stimme erzeugen. Auch hier schreiben wir die musikalische Information nicht direkt in den Score, sondern weisen ihn zunächst einer Variablen zu. Diese Variable wird zwischen die Notenzeilen für linke und rechte Hand geschoben.

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 { }
  }
}
  1. 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 {
       ...
    }
    
  2. Wir fügen die einzelnen Strophe der Gesangsmelodie zu. Dazu modifizieren wir wieder einmal die Score-Umgebung:
    \score {
        <<
          \singerMelody
             \new Lyrics \lyricsto "melody" { \stanzaOne }
             \new Lyrics \lyricsto "melody" { \stanzaTwo }
             \new Lyrics \lyricsto "melody" { \stanzaThree }
    
    Wenn man genau hinsieht, findet man hier endlich die Erklärung, warum wir ganz am Anfang der Gesangsstimme den Kenner "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:

Abschließende Optimierungen

Eigentlich wären wir jetzt fertig, aber zwei, drei oder noch mehr Probleme bleiben noch:

  1. 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.
      \paper {
         #(set-paper-size "a4" 'portrait)
      }
      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 landscape an Stelle von portrait 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:
      \layout {
         \context {
            \Score
            \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/24)
          }
      }
      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.
  2. Sowohl Noten wie Text sind noch voller Fehler. Also einmal ausdrucken und kritisch prüfen.
  3. 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

  4. 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:
    \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 }
    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.
  5. 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