Letzter Feinschliff
Wenden wir uns zuletzt den Dingen zu, die wir bislang ignoriert haben.
- Als erstes vervollständigen wir den
\header. Der Header-Bereich besteht bislang nur aus dem Liedtitel, kann aber noch weit mehr Informationen aufnehmen. Die einzelnen Elemente wiecomposeroderpoethaben unterschiedliche Formatierungen im Sinne von Schriftgrad, Ausrichtung etc. Man kann die Standardeinstellungen von lilypond verändern, ich habe das aber noch nie getan. Ich beschränke mich üblicherweise darauf, nicht benutzte Tags mit einem "%" auszukommentieren. - Nur weil es "header" heißt, bedeutet das nicht, dass die Informationen auch tatsächlich alle am oberen Ende ausgedruckt werden.
copyrightundtaglinewerden vielmehr am unteren Ende der ersten bzw. letzten Seite ausgegeben. Üblicherweise sind die Texte, die den Tags zugewiesen werden, einfache Strings in doppelten Hochkommas. Die Ausgabe ist einzeilig und ein automatischer Zeilenumbruch findet nicht statt. Da es anscheinend auch kein Äquivalent zum C-typischen\nfür newline zu scheint müssen sie, wenn sie einen mehrzeiligen Text haben wollen, auf eine etwas kompliziertere Konstruktion zurückgreifen:
\markup { \column { \line { ... } \line { ... } ... } }
Downloads: Quelltext - PDF-Datei
\version "2.24.4" \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 = "Instrument" % poet = "poet" composer = "Written and 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 = \markup { \tiny { \column \center-align { { \line { lilypond 2.24.4 - www.lilypond.org } \line { Thomas Kneisel } } } } } } keyTimeEtc = { \key bes \major \time 2/4 } singer = \relative c'' { \clef "treble" \keyTimeEtc r2 | r2 | r2 | r2 | \repeat segno 3 { \repeat volta 2 { r2 | 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 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 | } } } } lyricsLineOne = \lyricmode { \set stanza = #"1. " Up to might -- y 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: “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!” } lyricsLineTwo = \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” } lyricsLineThree = \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!” } pianoUpper = \relative c' { \clef "treble" \keyTimeEtc <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 segno 3 { \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 | } } } } pianoDynamics = { \keyTimeEtc r8\f r r4 | r2 | r2 | r2 | \repeat segno 3 { \repeat volta 2 { r2 | r2 | r2 | r4 r8 r8\sfz | } r8\mp r r4 | r2 | r8\< r8\! r4 | r8\> r r r\! | r2 | r2 | r8\< r r r\! r8\> r r r\! | r2 | r2 | r2 | r8\< r\! r\> r\! | r2 | r2 | r2 | r4 r8\p r\f | \repeat volta 2 { r2 | r4 r8 r8\< | % Problem: A hairpins ending after the first note of a bar % Solution 1: Add an additional note while keeping the overall duration r16 r\! r8 r4 | r8\> r r\! r | r2 | r8\< r r r\! | r2 | r8\> r r r\! | r2 | % Problem: A hairpin ending after the first note of a bar % Solution 2: Override lilypond's standard behaviour only once r4 r8 \once \override Hairpin.to-barline = ##f r8\< | r8\! r r r16 r\> | r8 r\! r r | r2 | % Problem: A hairpin ending after the first note of a bar % Solution 3: Override lilypond's standard behaviour for the rest of the score r8 \once \override Hairpin.to-barline = ##f r8\< r4 | r4\! r4 | r8\> r r r\! | r2 | s2 | r2 | r2 | r8.\< r16\! r8 r | r8 r r r\< | r8 r16 r\! r4 | r8\> r r r\! | r2 | r2 | r2 | r2 | r2 | r4 r8\< r | } \alternative { { r4 r8\! r | r2 | } { r8\< r r\! r | r4 r8\fz r | } } } \bar "|." } pianoLower = \relative c' { \clef "bass" \keyTimeEtc 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 segno 3 { \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 | } } } } \book { \paper { } \score { << \new Staff = "singer" \with { instrumentName = #"Voice" } { \new Voice = "singerVoice" { \singer } } \new Lyrics \lyricsto "singerVoice" { \lyricsLineOne } \new Lyrics \lyricsto "singerVoice" { \lyricsLineTwo} \new Lyrics \lyricsto "singerVoice" { \lyricsLineThree } \new PianoStaff \with { instrumentName = #"Piano " } { << \new Staff = "pianoUpper" { \new Voice { \pianoUpper } } \new Dynamics { \pianoDynamics } \new Staff = "pianoLower" { \new Voice { \pianoLower } } >> } >> \layout { } } }
Als nächstes ist unsere Variable keyEtc an der Reihe.
- Legen wir das Tempo fest.
\tempo "Allegro con spirito" 4 = 96
macht zweierlei. Es beschreibt das Tempo in Worten und definiert die Geschwindigkeit präzise in Zahlen (96 Viertelschläge pro Minute). Im Normalfall werden Text und Zahlen beide über allen Notensystemen ausgegeben. Sie können das eine oder das andere ohne weiteres weglassen. - Im Bereich der klassischen Musik werden Metronomzahlen eher nicht abgedruckt. Sofern bei ihrem Notenprojekt auch eine Midi-Datei abfallen soll, müssen sie allerdings eine angeben, denn damit wird die Geschwindigkeit festgelegt, mit der die Midi-Daten abgespielt werden. Sie können aber ihre Druckausgabe verhindern. Schreiben sie noch vor den
\tempoBefehl:
\set Score.tempoHideNote = ##t - Dafür gibt es in unserem Beispiel, dem Tipperary-Song gar keine Anwendung:
\set tieWaitForNote = ##t
Sie können damit mehrere Noten in Art eines Arpeggios an einen Akkord anbinden. Das sieht wie im folgenden Schnipsel aus:
c8~ e~ g~ bes~ <c, e g bes>2

Da mir solche Konstruktionen schon öfters begegnet sind, finde ich das eine praktische Sache. Leider ist es keine Vorgabe, weswegen ich das irgendwann in meinen Standardtext von\keyTimeEtcniedergeschrieben und kopiere das seitdem von Lied zu Lied weiter. Wenn es einmal stören sollte, dann kann ich es entweder auskommentieren oder von true##tauf false##fsetzen. Aber es steht drin und ich muss es mir nicht eigens merken. Das ist ähnlich wie mit den ungenutzen Variablen im/header. Wegkommentieren geht schneller als wieder in der online-Dokumentation suchen - Wir hatten bereits festgestellt, dass der Kehrvers bzw. Refrain noch gekennzeichnet werden muss. Eine Variante,
\set stanza = #"Kv "in den Liedtext einzufügen, hatte ich bereits erwähnt. Eine Alternative besteht in Text, der oberhalb der Notenzeilen eingefügt wird. Dazu dient der\markup-Befehl:
^\markup { \bold Chorus }
Wie man schon am vorgestellten Powerpfeilchen erkennen kann, ist es möglich Texte nicht nur ober- sondern auch unterhalb des jeweiligen Notensystems auszugeben. Der Text steht in der geschweiften Klammer und kann formatiert werden, beispielsweise mit\boldfür Fettdruck. Wir waren dem\markup-Befehl schon in unserem/headerbegegnet und dort kann man sich auch ansehen, wie man mehrzeiligen Text erzeugen kann.
Downloads: Quelltext - PDF-Datei
\version "2.24.4" \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 = "Instrument" % poet = "poet" composer = "Written and 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 = \markup { \tiny { \column \center-align { { \line { lilypond 2.24.4 - www.lilypond.org } \line { Thomas Kneisel } } } } } } keyTimeEtc = { \key bes \major \time 2/4 \set Score.tempoHideNote = ##t \tempo "Allegro con spirito" 4 = 96 \set tieWaitForNote = ##t } singer = \relative c'' { \clef "treble" \keyTimeEtc r2 | r2 | r2 | r2 | \repeat segno 3 { \repeat volta 2 { r2 | 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 | } } } } lyricsLineOne = \lyricmode { \set stanza = #"1. " Up to might -- y 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: “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!” } lyricsLineTwo = \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” } lyricsLineThree = \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!” } pianoUpper = \relative c' { \clef "treble" \keyTimeEtc <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 segno 3 { \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 | } } } } pianoDynamics = { \keyTimeEtc r8\f r r4 | r2 | r2 | r2 | \repeat segno 3 { \repeat volta 2 { r2 | r2 | r2 | r4 r8 r8\sfz | } r8\mp r r4 | r2 | r8\< r8\! r4 | r8\> r r r\! | r2 | r2 | r8\< r r r\! r8\> r r r\! | r2 | r2 | r2 | r8\< r\! r\> r\! | r2 | r2 | r2 | r4 r8\p r\f | \repeat volta 2 { r2 | r4 r8 r8\< | % Problem: A hairpins ending after the first note of a bar % Solution 1: Add an additional note while keeping the overall duration r16 r\! r8 r4 | r8\> r r\! r | r2 | r8\< r r r\! | r2 | r8\> r r r\! | r2 | % Problem: A hairpin ending after the first note of a bar % Solution 2: Override lilypond's standard behaviour only once r4 r8 \once \override Hairpin.to-barline = ##f r8\< | r8\! r r r16 r\> | r8 r\! r r | r2 | % Problem: A hairpin ending after the first note of a bar % Solution 3: Override lilypond's standard behaviour for the rest of the score r8 \once \override Hairpin.to-barline = ##f r8\< r4 | r4\! r4 | r8\> r r r\! | r2 | s2 | r2 | r2 | r8.\< r16\! r8 r | r8 r r r\< | r8 r16 r\! r4 | r8\> r r r\! | r2 | r2 | r2 | r2 | r2 | r4 r8\< r | } \alternative { { r4 r8\! r | r2 | } { r8\< r r\! r | r4 r8\fz r | } } } \bar "|." } pianoLower = \relative c' { \clef "bass" \keyTimeEtc 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 segno 3 { \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 | } } } } \book { \paper { } \score { << \new Staff = "singer" \with { instrumentName = #"Voice" } { \new Voice = "singerVoice" { \singer } } \new Lyrics \lyricsto "singerVoice" { \lyricsLineOne } \new Lyrics \lyricsto "singerVoice" { \lyricsLineTwo} \new Lyrics \lyricsto "singerVoice" { \lyricsLineThree } \new PianoStaff \with { instrumentName = #"Piano " } { << \new Staff = "pianoUpper" { \new Voice { \pianoUpper } } \new Dynamics { \pianoDynamics } \new Staff = "pianoLower" { \new Voice { \pianoLower } } >> } >> \layout { } } }
Wir nähern langsam unserem Ziel, einen vollständigen Klavierauszug mit Gesangsstimme und Liedtext zu erstellen. Der Inhalt ist bereitgs fertiggestellt, ein paar kleinere Optimierungen des Layouts sollen aber noch vorgenommen werden. Zunächst wenden wir uns der Seitenaufteilung zu, die unter \paper festgelegt wird:
- Auch wenn es nicht das typische Papierformat klassischer Notenhefte ist: Ich benutze DIN A4, weil das bei meinem handelsüblichen Laserdrucker der Standard ist. Und im Gegensatz zu Orgelnoten, die meistens im Querformat daherkommen, ist beim Klavier Hochformat am weitesten verbreitet.
#(set-paper-size "a4" 'portait)
Neben vordefinierten Formaten wie A4 kann man auch welche frei definieren. Wir werden darauf noch zurückkommen. - lilypond ermittelt selbständig die passende Anzahl von Seiten. Man kann das auch vorgeben. Wir wollen hier, dass alles nur auf zwei Seiten dargestellt wird. Wenn lilypond das mit den restlichen Einstellungen nicht hinkriegt, erhalten sie eine Fehlermeldung aber keine pdf!
page-count = 2 - Es ist nicht gesagt, dass ihr Lied die letzte Seite wirklich voll ausnutzt. Normalerweise bleibt dann der untere Teil der Seite leer, oft hätte man es aber lieber, wenn die noten auf der letzten Seite gleichmäßig auf der gesamten verfügbaren Fläche vertikal verteilt werden.
ragged-last-bottom = ##f - Damit bewirken sie, dass die Noten auf allen Seiten den verfügbaren Platz bis zum unteren Seitenende nutzt
ragged-bottom = ##f
Zum Schluss nehmen wir noch einige Einstellungen im /layout vor:
- Die Zahl der Seiten festzulegen nützt leider gar nichts, wenn die Notensysteme zu groß geraten sind. Die effektivste Art und Weise den Platzbedarf zu reduzieren und ein Lied auf weniger Seiten unterzubringen ist die Verwendung von
#(layout-set-staff-size 18)
Mit dieser Einstellung beeinflussen sie nicht nur die Schriftgröße sondern auch gleichermaßen die Größe der Noten und die Abstände der Notensysteme untereinander. Die Standardeinstellung beträgt 20.
Den Wert manipuliere ich hauptsächlich, um die Zahl der Seiten zu verkleinern. Wo immer möglich, versuche ich mit höchstens 5 A4 Seiten auszukommen, denn die kann man gerade noch aneinanderkleben und auf das Notenbrett des Klaviers stellen. Der Standardwert ist für den typischen Leseabstand am Klavier recht großzügig bemessen und gut lesbar, endet aber bei Liedern mit mehr als 100 Takten schnell bei sechs Seiten oder mehr. Mit kleineren Werte reduziert man die Seitenzahl recht effektiv, das hat aber seine Grenzen. Für meine alte Augen ist 15 noch ok, darunter wird alles für meinen Geschmack zu klein. - Der Anfang vieler Lieder besteht oftmals aus einem instrumentalen Vorspiel. Die Gesangsmelodie besteht während dessen nur aus Pausen. Mit
override VerticalAxisGroup.remove-empty = ##t
\override VerticalAxisGroup.remove-first = ##t
werden solcher Art leere Zeilen im Lied nicht mehr ausgedruckt. - In der Standardeinstellung von lilypond werden Triolen und n-Tolen (in lilypond
tupletgenannt) nur mit einer Zahl gekennzeichnet, die für meinen Geschmack recht leicht mit einer Ziffer des Fingersatzes verwechselt werden kann. Ich persönlich bevorzuge eine zusätzliche Klammer ober- oder unterhalb der Note. Mit der folgenden Anweisung bewirken sie die Ausgabe einer solchen eckigen Klammer
\override TupletBracket.bracket-visibility = ##t - Damit geben sie lilypond einen Hinweis, wie lange die kürzesten Noten zumeist dauern. Dieser Wert beeinflußt den waagrechten Abstand zwischen Noten.
\override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/8)
Downloads: Quelltext - PDF-Datei
\version "2.24.4" \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 = "Instrument" % poet = "poet" composer = "Written and 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 = \markup { \tiny { \column \center-align { { \line { lilypond 2.24.4 - www.lilypond.org } \line { Thomas Kneisel } } } } } } keyTimeEtc = { \key bes \major \time 2/4 \set Score.tempoHideNote = ##t \tempo "Allegro con spirito" 4 = 96 \set tieWaitForNote = ##t } singer = \relative c'' { \clef "treble" \keyTimeEtc r2 | r2 | r2 | r2 | \repeat segno 3 { \repeat volta 2 { r2 | 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 | } } } \bar "|." } lyricsLineOne = \lyricmode { \set stanza = #"1. " Up to might -- y 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: “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!” } lyricsLineTwo = \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” } lyricsLineThree = \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!” } pianoUpper = \relative c' { \clef "treble" \keyTimeEtc <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 segno 3 { \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 = \relative c' { \clef "bass" \keyTimeEtc 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 segno 3 { \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 { \keyTimeEtc s8\f s s4 | s2 | s2 | s2 | \repeat segno 3 { \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 s8\< | % Problem: A hairpins ending after the first note of a bar % Solution 1: Add an additional note while keeping the overall duration s16 s\! s8 s4 | s8\> s s\! s | s2 | s8\< s s s\! | s2 | s8\> s s s\! | s2 | % Problem: A hairpins ending after the first note of a bar % Solution 2: Override lilypond's standard behaviour only once s4 s8 \once \override Hairpin.to-barline = ##f s8\< | s8\! s s s16 s\> | s8 s \! s s | s2 | % Problem: A hairpins ending after the first note of a bar % Solution 3: Override lilypond's standard behaviour for the rest of the score s8 \once \override Hairpin.to-barline = ##f s8\< s4 | 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 "|." } \book { \paper { #(set-paper-size "a4" 'portait) page-count = 2 ragged-last-bottom = ##f ragged-bottom = ##f } \score { << \new Staff = "singerStaff" \with { instrumentName = #"Voice" } { \new Voice = "singerVoice" { \singer } } \new Lyrics \lyricsto "singerVoice" { \lyricsLineOne } \new Lyrics \lyricsto "singerVoice" { \lyricsLineTwo} \new Lyrics \lyricsto "singerVoice" { \lyricsLineThree } \new PianoStaff \with { instrumentName = #"Piano " } { << \new Staff = "pianoUpper" { \new Voice { \pianoUpper } } \pianoDynamics \new Staff = "pianoLower" { \new Voice { \pianoLower } } >> } >> \layout { #(layout-set-staff-size 18) \context { \Score } \context { \Staff \override VerticalAxisGroup.remove-empty = ##t \override VerticalAxisGroup.remove-first = ##t \override TupletBracket.bracket-visibility = ##t \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/8) } } } }
Ziel erreicht, wir sind fertig! Trotzdem geht es noch weiter, denn wenn man sich einmal die ganze Arbeit gemacht hat, möchte man aus den mühsam eingebenen Daten möglichst viel Nutzen ziehen. Warum nicht auch eine Midi-Datei erstellen? Oder ein Notenblatt für die Klavierbegleitung, bei dem wir die platzraubenden Gesangsnoten einfach weglassen.
Zurück zum fünften Teil: Dynamik ergänzen
Weiter geht es im siebten Teil: Midi-Output etc.