[ << Grundbegriffe ] | [Top][Contents][Index] | [ Die Ausgabe verbessern >> ] |
[ < Vierstimmige SATB-Partitur ] | [ Up : Erweiterung der Vorlagen ] | [ Tipparbeit durch Variablen und Funktionen einsparen > ] |
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
Siehe auch
Glossar: system.
[ << Grundbegriffe ] | [Top][Contents][Index] | [ Die Ausgabe verbessern >> ] |
[ < Vierstimmige SATB-Partitur ] | [ Up : Erweiterung der Vorlagen ] | [ Tipparbeit durch Variablen und Funktionen einsparen > ] |