5.1.4 Tipparbeit sparen durch Bezeichner und Funktionen

Bis jetzt haben Sie immer etwa solche Noten gesehen:

HornNoten = \relative c'' { c4 b dis c }
\score {
  {
    \HornNoten
  }
}

[image of music]

Das könnte auch nützlich in Minimal-Music sein:

FramentA = \relative c'' { a4 a8. b16 }
FragmentB = \relative c'' { a8. gis16 ees4 }
Geige = \new Staff { \FramentA \FramentA \FragmentB \FramentA }
\score {
  {
    \Geige
  }
}

[image of music]

Sie können diese Bezeichner oder Variablen aber auch für (eigene) Einstellungen verwenden:

dolce = \markup{ \italic \bold dolce }
AbstandText = { \once \override TextScript #'padding = #5.0 }
FdannP=_\markup{ \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p }
Geige = \relative c'' {
  \repeat volta 2 {
    c4._\dolce b8 a8 g a b |
    \AbstandText
    c4.^"hi there!" d8 e' f g d |
    c,4.\FdannP b8 c4 c-. |
  }
}
\score {
  {
    \Geige
  }
\layout{ragged-right=##t}
}

[image of music]

Die Variablen haben in diesem Beispiel deutlich die Tipparbeit erleichtert. Aber es lohnt sich, sie zu einzusetzen, auch wenn man sie nur einmal anwendet, denn sie vereinfachen die Struktur. Hier ist das vorangegangene Beispiel ohne Variablen. Es ist sehr viel komplizierter zu lesen, besonders die letzte Zeile.

violin = \relative c'' {
  \repeat volta 2 {
    c4._\markup{ \italic \bold dolce } b8 a8 g a b |
    \once \override TextScript #'padding = #5.0
    c4.^"hi there!" d8 e' f g d |
    c,4.\markup{ \dynamic f \italic \small { 2nd }
      \hspace #0.1 \dynamic p } b8 c4 c-. |
  }
}

Bis jetzt wurde nur statische Substitution vorgestellt – wenn LilyPond den Befehl \padText findet, wird er ersetzt durch durch unsere vorherige Definition (alles, was nach dem padtext = kommt).

LilyPond kennt aber auch nicht-statische Substitutionen (man kann sie sich als Funktionen vorstellen).

AbstandText =
#(define-music-function (parser location padding) (number?)
  #{
    \once \override TextScript #'padding = #$padding
  #})

\relative c''' {
  c4^"piu mosso" b a b
  \AbstandText #1.8
  c4^"piu mosso" d e f
  \AbstandText #2.6
  c4^"piu mosso" fis a g
}

[image of music]

Die Benutzung von Variablen hilft auch, viele Schreibarbeit zu vermeiden, wenn die Eingabesyntax von LilyPond sich verändert (siehe auch Alte Dateien aktualisieren). Wenn nur eine einzige Definition (etwa \dolce) für alle Dateien verwendet wird (vgl. Stil-Dateien), muss nur diese einzige Definition verändert werden, wenn sich die Syntax ändert. Alle Verwendungen des Befehles beziehen sich dann auf die neue Definition.


Andere Sprachen: English, français, español.

Handbuch zum Lernen