Ein zusätzliches System erscheint

Wenn Kontext nicht explizit mit \new oder \context erstellt werden, werden sie vom Programm erstellt, sobald ein Befehl angetroffen wird, der im aktuellen Kontext nicht funktioniert. In einfachen Partituren ist diese automatische Erstellung sehr nützlich und die meisten Beispiele der LilyPond-Handbücher benutzen diese Schreiberleicherterung. Manchmal jedoch kann es vorkommen, dass durch die automatische Erstellung von Systemen aufeinmal unerwartete Notensysteme erstellt werden. Beispielsweise könnte man annehmen, dass folgendes Beispiel alle Notenköpfe in dem Notensystem rot macht, aber als Resultat hat man zwei Systeme, während die Notenköpfe immernoch schwarz im unteren System erscheinen.

\override Staff.NoteHead.color = #red
\new Staff { a' }

[image of music]

Das liegt daran, dass kein Staff-Kontext existiert, wenn der \override-Befehl verarbeitet wird, sodass ein System für diesen Befehl erstellt wird. Dann aber erstellt \new Staff noch ein zusätzliches System, wo die Noten gesetzt werden. Die richtige Schreibweise wäre:

\new Staff {
  \override Staff.NoteHead.color = #red
  a'
}

[image of music]

Ein zweites Beispiel zeigt, dass ein \relative-Befehl innerhalb von \repeat zwei Systeme erstellt, wobei der zweite etwas verschoben ist. Das liegt daran, dass \repeat zwei \relative-Umgebungen erstellt, die jede implizit einen Staff- und Voice-Kontext erstellen.

\repeat unfold 2 {
  \relative { c'4 d e f }
}

[image of music]

Indem man die Voice-Kontexte explizit erstellt, kann das Problem umgangen werden.

\new Voice {
  \repeat unfold 2 {
    \relative { c'4 d e f }
  }
}

[image of music]


GNU LilyPond Programmbenutzung v2.25.22 (development-branch).