4.4.3 Eine Partitur von Grund auf erstellen

Wenn Sie einige Fertigkeit im Schreiben von LilyPond-Code gewonnen haben, werden Sie vielleicht feststellen, dass es manchmal einfacher ist, von Grund auf anzufangen, anstatt die fertigen Vorlagen zu verändern. Auf diese Art könne Sie auch Ihren eigenen Stil entwickeln, und ihn der Musik anpassen, die Sie notieren wollen. Als Beispiel wollen wir demonstrieren, wie man die Partitur für ein Orgelpräludium von Grund auf konstruiert.

Beginnen wir mit dem Kopf, dem header-Abschnitt. Hier notieren wir den Titel, den Namen des Komponisten usw. Danach schreiben wir die einzelnen Variablen auf und schließlich am Ende die eigentliche Partitur, den \score-Abschnitt. Beginnen wir mit einer groben Struktur, in die wir dann die Einzelheiten nach und nach eintragen.

Als Beispiel benutzen wir zwei Takte aus dem Orgelpräludium Jesu, meine Freude von J. S. Bach, notiert für zwei Manuale und Pedal. Sie können die Noten am Ende dieses Abschnittes sehen. Das obere Manual trägt zwei Stimmen, das untere und das Pedalsystem jeweils nur eine. Wir brauchen also vier Variablen für die Noten und eine, um Taktart und Tonart zu definieren.

\version "2.25.22"
\header {
  title = "Jesu, meine Freude"
  composer = "J S Bach"
}
keyTime = { \key c \minor \time 4/4 }
ManualOneVoiceOneMusic = { s1 }
ManualOneVoiceTwoMusic = { s1 }
ManualTwoMusic = { s1 }
PedalOrganMusic = { s1 }

\score {
}

Im Moment haben wir eine unsichtbare Note in jede Stimme eingesetzt (s1). Die Noten werden später hinzugefügt.

Als nächstes schauen wir uns an, was in die Partitur (die \score-Umgebung) kommt. Dazu wird einfach die Notensystemstruktur konstruiert, die wir benötigen. Orgelmusik wird meistens auf drei Systemen notiert, eins für jedes Manual und ein drittes für die Pedalnoten. Die Systeme für die Manuale werden mit einer geschweiften Klammer verbunden, wir benutzen hier also ein PianoStaff. Das erste Manualsystem braucht zwei Stimmen, das zweite nur eine.

\new PianoStaff <<
  \new Staff = "ManualOne" <<
    \new Voice {
      \ManualOneVoiceOneMusic
    }
    \new Voice {
      \ManualOneVoiceTwoMusic
    }
  >>  % Ende ManualOne Systemkontext
  \new Staff = "ManualTwo" <<
    \new Voice {
      \ManualTwoMusic
    }
  >>  % Ende ManualTwo Systemkontext
>>  % Ende PianoStaff Kontext

Als nächstes soll das System für das Pedal hinzugefügt werden. Es soll unter das Klaviersystem gesetzt werden, aber muss gleichzeitig mit ihm erscheinen. Wir brauchen also spitze Klammern um beide Definitionen. Sie wegzulassen würde eine Fehlermeldung in der Log-Datei hervorrufen. Das ist ein sehr häufiger Fehler, der wohl auch Ihnen früher oder später unterläuft. Sie können das fertige Beispiel am Ende des Abschnittes kopieren und die Klammern entfernen, um zu sehen, wie die Fehlermeldungen aussehen könnten, die Sie in solch einem Fall erhalten würden.

<<  % PianoStaff and Pedal Staff must be simultaneous
  \new PianoStaff <<
    \new Staff = "ManualOne" <<
      \new Voice {
        \ManualOneVoiceOneMusic
      }
      \new Voice {
        \ManualOneVoiceTwoMusic
      }
    >>  % end ManualOne Staff context
    \new Staff = "ManualTwo" <<
      \new Voice {
        \ManualTwoMusic
      }
    >>  % end ManualTwo Staff context
  >>  % end PianoStaff context
  \new Staff = "PedalOrgan" <<
    \new Voice {
      \PedalOrganMusic
    }
  >>
>>

Es ist nicht notwendig, die simultane Konstruktion << … >> innerhalb des zweiten Manualsystems und des Pedalsystems zu benutzen, denn sie enthalten nur eine Stimme. Andererseits schadet es nichts, sie zu schreiben, und es ist eine gute Angewohnheit, immer die spitzen Klammern nach einem \new Staff zu schreiben, wenn mehr als eine Stimme vorkommen könnten. Für Stimmen (Voice) dagegen gilt genau das Gegenteil: eine neue Stimme sollte immer von geschweiften Klammern ({ … }) gefolgt werden, falls Sie ihre Noten in mehrere Variable aufteilen, die nacheinander gesetzt werden sollen.

Fügen wir also diese Struktur zu der \score-Umgebung hinzu und bringen wir die Einzüge in Ordnung. Gleichzeitig wollen wir die richtigen Schlüssel setzen und die Richtung der Hälse und Bögen in den Stimmen des oberen Systems kontrollieren, indem die obere Stimme ein \voiceOne, die untere dagegen ein \voiceTwo erhält. Die Taktart und Tonart werden mit unserer fertigen Variable \keyTime eingefügt.

\score {
  <<  % PianoStaff and Pedal Staff must be simultaneous
    \new PianoStaff <<
      \new Staff = "ManualOne" <<
        \keyTime  % set key and time signature
        \clef "treble"
        \new Voice {
          \voiceOne
          \ManualOneVoiceOneMusic
        }
        \new Voice {
          \voiceTwo
          \ManualOneVoiceTwoMusic
        }
      >>  % end ManualOne Staff context
      \new Staff = "ManualTwo" <<
        \keyTime
        \clef "bass"
        \new Voice {
          \ManualTwoMusic
        }
      >>  % end ManualTwo Staff context
    >>  % end PianoStaff context
    \new Staff = "PedalOrgan" <<
      \keyTime
      \clef "bass"
      \new Voice {
        \PedalOrganMusic
      }
    >>  % end PedalOrgan Staff
  >>
}  % end Score context

Das Layout des Orgelsystems oben ist fast perfekt, es hat jedoch einen kleinen Fehler, den man nicht bemerken kann, wenn man nur ein einzelnes System betrachtet: Der Abstand des Pedalsystems zum System der linken Hand sollte in etwa der gleiche sein wie der Abstand zwischen den Systemen der linken und rechten Hand. Die Dehnbarkeit von Systemen in einem Klaviersystem (PianoStaff)-Kontext ist beschränkt (sodass der Abstand zwischen den Systemen der linken und rechten Hand nicht zu groß wird), und das Pedalsystem sollte sich genauso verhalten.

Die Spreizbarkeit von Systemen kann mit der staff-staff-spacing-Eigenschaft des VerticalAxisGroup-„graphischen Objekts“ (üblicherweise als „Grob“ innerhalb der LilyPond-Dokumentation bezeichnet) kontrolliert werden. An dieser Stelle brauchen Sie sich um die Details nicht zu sorgen, sie werden später erklärt. Sehr Neugierige können sich den Abschnitt Grundlagen zum Verändern von Eigenschaften anschauen. Im Moment kann man nicht nur die strechability (Spreizbarkeit)-Untereigenschaft verändern, darum müssen hier auch die anderen Untereigenschaften kopiert werden. Die Standardeinstellungen dieser Untereigenschaften finden sich in der Datei scm/define-grobs.scm in den Definitionen für den VerticalAxisGroup-Grob. Der Wert für strechability wird aus der Definition für das Klaviersystem (PianoStaff) entnommen (in der Datei ly/engraver-init.ly), damit die Werte identisch sind.

\score {
  <<  % PianoStaff and Pedal Staff must be simultaneous
    \new PianoStaff <<
      \new Staff = "ManualOne" <<
        \keyTime  % set key and time signature
        \clef "treble"
        \new Voice {
          \voiceOne
          \ManualOneVoiceOneMusic
        }
        \new Voice {
          \voiceTwo
          \ManualOneVoiceTwoMusic
        }
      >>  % end ManualOne Staff context
      \new Staff = "ManualTwo" \with {
        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
      } <<
        \keyTime
        \clef "bass"
        \new Voice {
          \ManualTwoMusic
        }
      >>  % end ManualTwo Staff context
    >>  % end PianoStaff context
    \new Staff = "PedalOrgan" <<
      \keyTime
      \clef "bass"
      \new Voice {
        \PedalOrganMusic
      }
    >>  % end PedalOrgan Staff
  >>
}  % end Score context

Damit ist das Grundgerüst fertig. Jede Orgelmusik mit drei Systemen hat die gleiche Struktur, auch wenn die Anzahl der Stimmen in einem System sich ändern kann. Jetzt müssen wir nur noch die Noten einfügen und alle Teile zusammenfügen, indem wir die Variablen mit einem Backslash in die Partitur einbauen.

\header {
  title = "Jesu, meine Freude"
  composer = "J S Bach"
}
keyTime = { \key c \minor \time 4/4 }
ManualOneVoiceOneMusic = \relative {
  g'4 g f ees |
  d2 c |
}
ManualOneVoiceTwoMusic = \relative {
  ees'16 d ees8~ 16 f ees d c8 d~ d c~ |
  8 c4 b8 c8. g16 c b c d |
}
ManualTwoMusic = \relative {
  c'16 b c8~ 16 b c g a8 g~ 16 g aes ees |
  f16 ees f d g aes g f ees d ees8~ 16 f ees d |
}
PedalOrganMusic = \relative {
  r8 c16 d ees d ees8~ 16 a, b g c b c8 |
  r16 g ees f g f g8 c,2 |
}

\score {
  <<  % PianoStaff and Pedal Staff must be simultaneous
    \new PianoStaff <<
      \new Staff = "ManualOne" <<
        \keyTime  % set key and time signature
        \clef "treble"
        \new Voice {
          \voiceOne
          \ManualOneVoiceOneMusic
        }
        \new Voice {
          \voiceTwo
          \ManualOneVoiceTwoMusic
        }
      >>  % end ManualOne Staff context
      \new Staff = "ManualTwo" \with {
        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
      } <<
        \keyTime
        \clef "bass"
        \new Voice {
          \ManualTwoMusic
        }
      >>  % end ManualTwo Staff context
    >>  % end PianoStaff context
    \new Staff = "PedalOrgan" <<
      \keyTime
      \clef "bass"
      \new Voice {
        \PedalOrganMusic
      }
    >>  % end PedalOrgan Staff context
  >>
}  % end Score context

[image of music]

Siehe auch

Glossar: system.


LilyPond Handbuch zum Lernen v2.25.22 (development-branch).