3.3.2 Verschiedene Editionen aus einer Quelldatei

Es gibt verschiedene Funktionen, die es möglich machen, unterschiedliche Versionen einer Partitur aus der gleichen Quelldatei zu produzieren. Variablen werden am besten eingesetzt, wenn es darum geht, längere Notenpassagen und/oder Anmerkungen/Textmarken miteinander auf verschiedene Weise zu kombinieren. Tag-Marken dagegen werden am besten eingesetzt, wenn eine von mehreren kurzen alternativen Notenabschnitten ausgewählt werden soll und können auch eingesetzt werden, um Musikabschnitte an unterschiedlichen Stellen zusammenzufügen.

Egal welche Methode am Ende eingesetzt wird: Es erleichtert die Arbeit in jedem Fall, wenn die eigentlichen Noten und die Struktur der Partitur voneinander getrennt notiert werden – so kann die Struktur geändert werden, ohne dass man Änderungen an den Noten vornehmen muss.


Variablen benutzen

Wenn Notenabschnitt in Variablen definiert werden, können sie an unterschiedlichen Stellen in der Partitur eingesetzt werden, siehe auch Stücke durch Bezeichner organisieren. Zum Beispiel enthält eine Vokalpartitur für ein a cappella Stück oft einen Klavierauszug, der das Einüben einfacher macht. Der Klavierauszug enthält die gleichen Noten, sodass man sie nur einmal notieren muss. Noten aus zwei Variablen können auf einem System kombiniert werden, siehe Automatische Kombination von Stimmen. Hier ein Beispiel:

sopranoMusic = \relative c'' { a4 b c b8( a) }
altoMusic = \relative g' { e4 e e f }
tenorMusic = \relative c' { c4 b e d8( c) }
bassMusic = \relative c' { a4 gis a d, }
allLyrics = \lyricmode {King of glo -- ry }
<<
  \new Staff = "Soprano" \sopranoMusic
  \new Lyrics \allLyrics
  \new Staff = "Alto" \altoMusic
  \new Lyrics \allLyrics
  \new Staff = "Tenor" {
    \clef "treble_8"
    \tenorMusic
  }
  \new Lyrics \allLyrics
  \new Staff = "Bass" {
    \clef "bass"
    \bassMusic
  }
  \new Lyrics \allLyrics
  \new PianoStaff <<
    \new Staff = "RH" {
      \set Staff.printPartCombineTexts = ##f
      \partcombine
      \sopranoMusic
      \altoMusic
    }
    \new Staff = "LH" {
      \set Staff.printPartCombineTexts = ##f
      \clef "bass"
      \partcombine
      \tenorMusic
      \bassMusic
    }
  >>
>>

[image of music]

Unterschiedliche Partituren, die entweder nur den Chor oder das Klavier zeigen, können produziert werden, indem die Struktur verändert wird; die Noten müssen dazu nicht verändert werden.

Für längere Partituren können Variablen in eigene Dateien notiert werden, die dann eingebunden werden, siehe LilyPond-Dateien einfügen.


Marken benutzen

Der \tag #'TeilA-Befehl markiert einen musikalischen Ausdruck mit der Bezeichnung TeilA. Ausdrücke, die auf diese Weise markiert werden, können mit ihrer Bezeichnung später ausgewählt bzw. ausgefiltert werden. Das geschieht mit den Befehlen \keepWithTag #'Bezeichnung bzw. \removeWithTag #'Bezeichnung. Die Wirkung dieser Filter auf die markierten Notenabschnitte ist wie folgt:

FilterResultat
Markierte Noten mit vorgesetztem \keepWithTag #'BezeichnungUnmarkierte Noten und Noten mit der Marke Bezeichnung werden gesetzt, Noten mit einer anderen Marke werden nicht angezeigt.
Markierte Noten mit vorgesetztem \removeWithTag #'BezeichnungUnmarkierte Noten und Noten mit einer anderen Marke als Bezeichnung wird angezeigt, Noten markiert mit Bezeichnung werden nicht angezeigt.
Markierte Noten, weder mit vorgesetztem \keepWithTag noch \removeWithTagAlle markierten und unmarkierten Noten werden angezeigt.

Die Argumente der Befehle \tag, \keepWithTag und \removeWithTag sollten ein Symbol sein (wie etwa #'score oder #'part), gefolgt von einem musikalischen Ausdruck.

Im folgenden Beispiel erscheinen zwei Versionen der Noten, eine zeigt Triller in normaler Notation, die andere zeigt sie ausgeschrieben:

music = \relative g' {
  g8. c32 d
  \tag #'trills { d8.\trill }
  \tag #'expand { \repeat unfold 3 { e32 d } }
  c32 d
 }

\score {
  \keepWithTag #'trills \music
}
\score {
  \keepWithTag #'expand \music
}

[image of music]

Entsprechend können auch Abschnitte ausgeschlossen werden; das erfordert manchmal weniger Schreibarbeit:

music = \relative g' {
  g8. c32 d
  \tag #'trills { d8.\trill }
  \tag #'expand {\repeat unfold 3 { e32 d } }
  c32 d
 }

\score {
  \removeWithTag #'expand
  \music
}
\score {
  \removeWithTag #'trills
  \music
}

[image of music]

Marken können auch auf Artikulationen, Text usw angewendet werden, indem man ihnen

-\tag #'your-tag

voranstellt (jedoch nach der Note, an die sie gebunden sind). Mit diesem Code etwa könnte man entweder Fingersatz oder aber einen Text ausgeben:

c1-\tag #'finger ^4
c1-\tag #'warn ^"Achtung!"

Mehrfache Marken können mithilfe von mehreren \tag-Befehlen notiert werden:

music = \relative c'' {
  \tag #'a \tag #'both { a4 a a a }
  \tag #'b \tag #'both { b4 b b b }
}
<<
\keepWithTag #'a \music
\keepWithTag #'b \music
\keepWithTag #'both \music
>>

[image of music]

Mehrfache \removeWithTag-Filter können auf einen musikalischen Ausdruck angewendet werden, um mehrere unterschiedliche markierte Abschnitte aus dem Druckbild zu entfernen.

music = \relative c'' {
\tag #'A { a4 a a a }
\tag #'B { b4 b b b }
\tag #'C { c4 c c c }
\tag #'D { d4 d d d }
}
{
\removeWithTag #'B
\removeWithTag #'C
\music
}

[image of music]

Zwei oder mehr \keepWithTag-Filter in einem musikalischen Ausdruck bewirken, dass alle markierten Abschnitte entfernt werden, weil der erste Befehl alle markierten Abschnitt außer dem im Befehl genannten wegfiltert und der zweite Befehl dann auch diesen eben genannten zusätzlich entfernt.

Manchmal will man Noten an einem bestimmen Platz in existierenden Noten einfügen. Dafür kann entweder \pushToTag oder \appendToTag benutzt werden, um Material hinter bzw. vor den Elementen (elements) der existierenden Noten einzufügen. Nicht alle musikalischen Konstruktionen haben Elemente, aber sequentielle und simultane Noten sind ziemlich gute Kandidaten:

test = { \tag #'here { \tag #'here <<c''>> } }

{
  \pushToTag #'here c'
  \pushToTag #'here e'
  \pushToTag #'here g' \test
  \appendToTag #'here c'
  \appendToTag #'here e'
  \appendToTag #'here g' \test
}

[image of music]

Beide Befehle erhalten einen Tag, das Material, das bei jedem Auftreten des Tags eingefügt werden soll und den Ausdruck, der mit dem Tag versehen ist. Der Befehl stellt sicher, dass alle Änderungen kopiert werden, sodass das ursprüngliche \test seine Bedeutung behält.

Siehe auch

Handbuch zum Lernen: Stücke durch Bezeichner organisieren.

Notationsreferenz: Automatische Kombination von Stimmen, LilyPond-Dateien einfügen.


Globale Einstellungen benutzen

Man kann globale Einstellungen aus einer externen Datei einfügen:

lilypond -dinclude-settings=MY_SETTINGS.ly MY_SCORE.ly

Einstellungsgruppen, wie etwa Seitengröße, Schriftart oder Schriftschnitt, können in eigenen Dateien gespeichert werden. Das ermöglicht es, aus der gleichen Partitur unterschiedliche Editionen zu erstellen bzw. Standardeinstellungen für eine ganze Anzahl von Partituren wiederzuverwenden, indem man einfach die entsprechende Einstellungsdatei angibt.

Diese Technik funktioniert auch gut für globale Formatierungen, wie behandelt in Globale Formatierung.

Siehe auch

Handbuch zum Lernen: Stücke durch Bezeichner organisieren, Globale Formatierung.

Notationsreferenz: LilyPond-Dateien einfügen.


Andere Sprachen: English, español, français, italiano, 日本語.
About automatic language selection.

LilyPond – Notationsreferenz