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' }
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' }
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 } }
Indem man die Voice
-Kontexte explizit erstellt, kann das Problem
umgangen werden.
\new Voice { \repeat unfold 2 { \relative { c'4 d e f } } }