[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

3.4 Erweiterung der Vorlagen

@translationof Extending the templates

Sie haben sich durch das Tutorium gearbeitet, Sie wissen jetzt, wie Sie Notensatz produzieren, und Sie haben die grundlegenden Konzepte verstanden. Aber wie erhalten Sie genau die Systeme, die Sie brauchen? Es gibt eine ganze Anzahl an fertigen Vorlagen (siehe Vorlagen), mit denen Sie beginnen können. Aber was, wenn Sie nicht genau das finden, was Sie brauchen? Lesen Sie weiter.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

3.4.1 Sopran und Cello

@translationof Soprano and cello

Beginnen Sie mit der Vorlage, die Ihren Vorstellungen am nächsten kommt. Nehmen wir einmal an, Sie wollen ein Stück für Sopran und Cello schreiben. In diesem Fall könnten Sie mit der Vorlage „Noten und Text“ (für die Sopran-Stimme) beginnen.

 
\version "2.21.3"

melody = \relative {
  \clef "treble"
  \key c \major
  \time 4/4
  a4 b c d
}

text = \lyricmode {
  Aaa Bee Cee Dee
}

\score {
  <<
    \new Voice = "one" {
      \autoBeamOff
      \melody
    }
    \new Lyrics \lyricsto "one" \text
  >>
  \layout { }
  \midi { }
}

Jetzt wollen wir die Cello-Stimme hinzufügen. Schauen wir uns das Beispiel „Nur Noten“ an:

 
\version "2.21.3"

melody = \relative {
  \clef "treble"
  \key c \major
  \time 4/4
  a4 b c d
}

\score {
  \new Staff \melody
  \layout { }
  \midi { }
}

Wir brauchen den \version-Befehl nicht zweimal. Wir brauchen aber den melody-Abschnitt. Wir wollen keine zwei \score (Partitur)-Abschnitte – mit zwei \score-Abschnitten würden wir zwei Stimmen getrennt voneinander erhalten. In diesem Fall wollen wir sie aber zusammen, als Duett. Schließlich brauchen wir innerhalb des \score-Abschnittes nur einmal die Befehle \layout und \midi.

Wenn wir jetzt einfach zwei melody-Abschnitte in unsere Datei kopieren würden, hätten wir zwei melody-Variable. Das würde zu keinem Fehler führen, aber die zweite von ihnen würde für beide Melodien eingesetzt werden. Wir müssen ihnen also andere Bezeichnungen zuweisen, um sie voneinander zu unterscheiden. Nennen wir die Abschnitte also SopranNoten für den Sopran und CelloNoten für die Cellostimme. Wenn wir schon dabei sind, können wir textauch nach SoprText umbenennen. Denken Sie daran, beide Vorkommen der Bezeichnung zu ändern: einmal die Definition gleich am Anfang (melody = \relative { ) und dann auch noch die Benutzung der Variable innerhalb des \score-Abschnittes.

Gleichzeitig können wir auch noch das Notensystem für das Cello ändern – das Cello hat normalerweise einen Bassschlüssel. Wir ändern auch die Noten etwas ab.

 
\version "2.21.3"

SopranNoten = \relative {
  \clef "treble"
  \key c \major
  \time 4/4
  a4 b c d
}

SoprText = \lyricmode {
  Aaa Bee Cee Dee
}

CelloNoten = \relative {
  \clef "bass"
  \key c \major
  \time 4/4
  d4 g fis8 e d4
}

\score {
  <<
    \new Voice = "eins" {
      \autoBeamOff
      \SopranNoten
    }
    \new Lyrics \lyricsto "eins" \Soprantext
  >>
  \layout { }
  \midi { }
}

Das sieht schon vielversprechend aus, aber die Cello-Stimme erscheint noch nicht im Notensatz – wir haben vergessen, sie in den \score-Abschnitt einzufügen. Wenn die Cello-Stimme unterhalb des Soprans erscheinen soll, müssen wir

 
\new Staff \CelloNoten

unter dem Befehl für den Sopran hinzufügen. Wir brauchen auch die spitzen Klammern (<< und >>) um die Noten, denn damit wird LilyPond mitgeteilt, dass mehr als ein Ereignis gleichzeitig stattfindet (in diesem Fall sind es zwei Staff-Instanzen). Der \score-Abschnitt sieht jetzt so aus:

 
\score {
  <<
  <<
    \new Voice = "eins" {
      \autoBeamOff
      \SopranNoten
    }
    \new Lyrics \lyricsto "eins" \SoprText
  >>
  \new Staff \CelloNoten
  >>
  \layout { }
  \midi { }
}

Das sieht etwas unschön aus, vor allem die Einrückung stimmt nicht mehr. Das können wir aber schnell in Ordnung bringen. Hier also die gesamte Vorlage für Sopran und Cello:

 
 
\version "2.21.3"
sopranoMusic = \relative {
  \clef "treble"
  \key c \major
  \time 4/4
  a4 b c d
}

sopranoLyrics = \lyricmode {
  Aaa Bee Cee Dee
}

celloMusic = \relative {
  \clef "bass"
  \key c \major
  \time 4/4
  d4 g fis8 e d4
}

\score {
  <<
    <<
      \new Voice = "one" {
        \autoBeamOff
        \sopranoMusic
      }
      \new Lyrics \lyricsto "one" \sopranoLyrics
    >>
    \new Staff \celloMusic
  >>
  \layout { }
  \midi { }
}

[image of music]

Siehe auch

Die Vorlagen, mit denen wir begonnen haben, können im Anhang „Vorlagen“ gefunden werden, siehe Vorlagen für ein einzelnes System.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

3.4.2 Vierstimmige SATB-Partitur

@translationof Four-part SATB vocal score

Die meisten Partituren für vierstimmigen gemischten Chor mit Orchesterbegleitung (wie etwa Mendelssohns Elias oder Händels Messias) sind so aufgebaut, dass für jede der vier Stimmen ein eigenes System besteht und die Orchesterbegleitung dann als Klavierauszug darunter notiert wird. Hier ein Beispiel aus Händels Messias:

[image of music]

Achtung: Das vorliegende Layout kann sehr einfach erzeugt werden. Am Besten verwenden sie dafür das vordefinierte Beispiel satb.ly, siehe auch @ref{Built-in templates}. Zum Zweck der einfachen Handhabung wird der verwendete Kontextaufbau bewusst versteckt und sich darauf verlassen, dass LilyPond alles automatisch bereit stellt. Lassen sie uns zu Lehrzwecken probieren, das alles von Grund auf selbst zu entwickeln. Irgendwann werden sie das sowieso machen müssen, nämlich genau dann, wenn ein vorgegebenes Beispiel ihre Anforderungen nicht angemessen erfüllt.

Dem gewünschten Ergebnis am nächsten kommt sicher das SATB-Partitur und automatischer Klavierauszug – wir müssen diese Vorlage aber so anpassen, dass die Noten für das Klavier nicht automatisch aus dem Chorsatz generiert werden. Die Variablen für die Noten und den Text des Chores sind in Ordnung, wir müssen nun noch Variablen für die Klaviernoten hinzufügen.

Die Reihenfolge, in welcher die Variablen in das Chorsystem (ChoirStaff) eingefügt werden, entspricht nicht der in dem Beispiel oben. Wir wollen sie so sortieren, dass die Texte jeder Stimme direkt unter den Noten notiert werden. Alle Stimmen sollten als \voiceOne notiert werden, welches die Standardeinstellung ist; wir können also die \voiceXXX-Befehle entfernen. Wir müssen auch noch den Schlüssel für den Tenor ändern. Die Methode, mit der der Text den Stimmen zugewiesen wird, ist uns noch nicht bekannt, darum wollen wir sie umändern auf die Weise, die wir schon kennen. Wir fügen auch noch Instrumentbezeichnungen zu den Systemen hinzu.

Damit erhalten wir folgenden ChoirStaff:

 
\new ChoirStaff <<
  \new Staff = "sopranos" <<
    \set Staff.instrumentName = "Soprano"
    \new Voice = "sopranos" {
      \global
      \sopranoMusic
    }
  >>
  \new Lyrics \lyricsto "sopranos" {
    \sopranoWords
  }
  \new Staff = "altos" <<
    \set Staff.instrumentName = "Alto"
    \new Voice = "altos" {
      \global
      \altoMusic
    }
  >>
  \new Lyrics \lyricsto "altos" {
    \altoWords
  }
  \new Staff = "tenors" <<
    \set Staff.instrumentName = "Tenor"
    \new Voice = "tenors" {
      \global
      \tenorMusic
    }
  >>
  \new Lyrics \lyricsto "tenors" {
    \tenorWords
  }
  \new Staff = "basses" <<
    \set Staff.instrumentName = "Bass"
    \new Voice = "basses" {
      \global
      \bassMusic
    }
  >>
  \new Lyrics \lyricsto "basses" {
    \bassWords
  }
>>  % end ChoirStaff

Als nächstes müssen wir das Klaviersystem bearbeiten. Das ist einfach: wir nehmen einfach den Klavierteil aus der „Piano solo“-Vorlage:

 
\new PianoStaff <<
  \set PianoStaff.instrumentName = "Piano  "
  \new Staff = "upper" \upper
  \new Staff = "lower" \lower
>>

und fügen die Variablen upper und lower hinzu.

Das Chorsystem und das Pianosystem müssen mit spitzen Klammern kombiniert werden, damit beide übereinander erscheinen:

 
<<  % ChoirStaff und PianoStaff parallel kombinieren
  \new ChoirStaff <<
    \new Staff = "sopranos" <<
      \new Voice = "sopranos" {
        \global
        \sopranoMusic
      }
    >>
    \new Lyrics \lyricsto "sopranos" {
      \sopranoWords
     }
    \new Staff = "altos" <<
      \new Voice = "altos" {
        \global
        \altoMusic
      }
    >>
    \new Lyrics \lyricsto "altos" {
      \altoWords
    }
    \new Staff = "tenors" <<
      \clef "G_8"  % tenor clef
      \new Voice = "tenors" {
        \global
        \tenorMusic
      }
    >>
    \new Lyrics \lyricsto "tenors" {
      \tenorWords
    }
    \new Staff = "basses" <<
      \clef "bass"
      \new Voice = "basses" {
        \global
        \bassMusic
      }
    >>
    \new Lyrics \lyricsto "basses" {
      \bassWords
    }
  >>  % end ChoirStaff

  \new PianoStaff <<
    \set PianoStaff.instrumentName = "Piano"
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
  >>
>>

Alles miteinander kombiniert und mit den Noten für drei Takte sieht unser Beispiel nun so aus:

 
 
\version "2.21.3"
global = { \key d \major \time 4/4 }
sopranoMusic = \relative {
  \clef "treble"
  r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
}
sopranoWords = \lyricmode {
  Wor -- thy | is the lamb | that was slain |
}
altoMusic = \relative {
  \clef "treble"
  r4 a'2 a4 | fis4. fis8 a2 | g4 fis fis2 |
}
altoWords = \sopranoWords
tenorMusic = \relative {
  \clef "G_8"
  r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
}
tenorWords = \sopranoWords
bassMusic = \relative {
  \clef "bass"
  r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
}
bassWords = \sopranoWords
upper = \relative {
  \clef "treble"
  \global
  r4 <a' d fis>2 <a e' a>4 |
  <d fis d'>4. <d fis d'>8 <a d a'>2 |
  <g cis g'>4 <a d fis> <a cis e>2 |
}
lower = \relative {
  \clef "bass"
  \global
  <d, d'>4 <d d'>2 <cis cis'>4 |
  <b b'>4. <b' b'>8 <fis fis'>2 |
  <e e'>4 <d d'> <a' a'>2 |
}

\score {
  <<  % combine ChoirStaff and PianoStaff in parallel
    \new ChoirStaff <<
      \new Staff = "sopranos" <<
        \set Staff.instrumentName = "Soprano"
        \new Voice = "sopranos" {
          \global
          \sopranoMusic
        }
      >>
      \new Lyrics \lyricsto "sopranos" {
        \sopranoWords
      }
      \new Staff = "altos" <<
        \set Staff.instrumentName = "Alto"
        \new Voice = "altos" {
          \global
          \altoMusic
        }
      >>
      \new Lyrics \lyricsto "altos" {
        \altoWords
      }
      \new Staff = "tenors" <<
        \set Staff.instrumentName = "Tenor"
        \new Voice = "tenors" {
          \global
          \tenorMusic
        }
      >>
      \new Lyrics \lyricsto "tenors" {
        \tenorWords
      }
      \new Staff = "basses" <<
        \set Staff.instrumentName = "Bass"
        \new Voice = "basses" {
          \global
          \bassMusic
        }
      >>
      \new Lyrics \lyricsto "basses" {
        \bassWords
      }
    >>  % end ChoirStaff

    \new PianoStaff <<
      \set PianoStaff.instrumentName = "Piano  "
      \new Staff = "upper" \upper
      \new Staff = "lower" \lower
    >>
  >>
}

[image of music]


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

3.4.3 Eine Partitur von Grund auf erstellen

@translationof Building a score from scratch

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.21.3"
\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 (notation)Grundlagen zum Verändern von Eigenschaften in Abschnitt ‘Grundlagen zum Verändern von Eigenschaften’ in Notationsreferenz 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.

 
 
\version "2.21.3"
\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: (music-glossary)system in Abschnitt ‘system’ in Glossar.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

3.4.4 Tipparbeit durch Variablen und Funktionen einsparen

@translationof Saving typing with variables and functions

Bis jetzt wurde immer derartige Notation vorgestellt:

 
hornNotes = \relative { c''4 b dis c }

\score {
  {
    \hornNotes
  }
}

[image of music]

Sie können sich vorstellen, dass das etwa für minimalistische Musik sehr nützlich sein könnte:

 
fragmentA = \relative { a'4 a8. b16 }
fragmentB = \relative { a'8. gis16 ees4 }

violin = \new Staff {
  \fragmentA \fragmentA |
  \fragmentB \fragmentA |
}

\score {
  {
    \violin
  }
}

[image of music]

Diese Variablen (die man auch als Makros oder Benutzer-Befehl bezeichnet) können jedoch auch für eigene Anpassungen eingesetzt werden:

 
dolce = \markup { \italic \bold dolce }

centreText = { \once \override TextScript.self-alignment-X = #CENTER }

fthenp =_\markup {
  \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
}

violin = \relative {
  \repeat volta 2 {
    c''4._\dolce b8 a8 g a b |
    \centreText
    c4.^"hi there!" d8 e f g d |
    c4.\fthenp b8 c4 c-. |
  }
}

\score {
  {
    \violin
  }
}

[image of music]

Derartige Variablen sind offensichtlich sehr nützlich, sich Tipparbeit zu ersparen. Aber es lohnt sich schon, sie zu benutzen, wenn man sie nur einmal benutzen will, denn sie vereinfachen die Struktur einer Datei sehr stark. Hier das vorige Beispiel ohne jede Benutzung von Variablen. Es ist sehr viel schwerer lesbar, besonders die letzte Zeile.

 
violin = \relative {
  \repeat volta 2 {
    c''4._\markup { \italic \bold dolce } b8 a8 g a b |
    \once \override TextScript.self-alignment-X = #CENTER
    c4.^"hi there!" d8 e f g d |
    c4._\markup {
      \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
    }
    b8 c4 c-. |
  }
}

Bisher haben wir vor allem statische Ersetzungen betrachtet: wenn LilyPond etwa \centreText sieht, wird es ersetzt mit all dem Code, mit dem wir es definiert haben (also alles, was sich rechts von centreText= befindet).

LilyPond kann auch nicht-statische Ersetzungen bewältigen. Man kann sie sich als Funktionen vorstellen.

 
padText =
#(define-music-function
     (padding)
     (number?)
   #{
     \once \override TextScript.padding = #padding
   #})

\relative {
  c''4^"piu mosso" b a b
  \padText #1.8
  c4^"piu mosso" b a b
  \padText #2.6
  c4^"piu mosso" b a b
}

[image of music]

Die Benutzung von Variablen ist auch eine gute Möglichkeit, Arbeit zu vermeiden, wenn sich einmal die Syntax von LilyPond ändern sollte (siehe auch (usage)Dateien mit convert-ly aktualisieren in Abschnitt ‘Dateien mit convert-ly aktualisieren’ in Anwendungsbenutzung). Wenn man eine einzige Definition hat (wie etwa \dolce), die für alle Vorkommen in der Notation eingesetzt wird, muss man auch nur einmal diese Definition aktualisieren, anstatt dass man sie in jeder ‘.ly’-Datei einzeln ändern müsste.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

3.4.5 Partituren und Stimmen

@translationof Scores and parts

In Orchestermusik werden alle Noten zweimal gedruckt. Einmal in einer Stimme für die Spieler, und einmal ein der Partitur für den Dirigenten. Variablen können benutzen, um sich doppelte Arbeit zu ersparen. Die Noten werden nur einmal eingegeben und in einer Variable abgelegt. Der Inhalt der Variable wird dann benutzt um sowohl die Stimme als auch die Partitur zu erstellen.

Es bietet sich an, die Noten in einer extra Datei abzulegen. Nehmen wir an, dass die Datei ‘horn-music.ly’ folgende Noten eines Horn/Fagott-Duos enthält:

 
hornNotes = \relative {
  \time 2/4
  r4 f8 a | cis4 f | e4 d |
}

Eine Stimme wird also erstellt, indem man folgendes in eine Datei schreibt:

 
\include "horn-music.ly"

\header {
  instrument = "Horn in F"
}

{
 \transpose f c' \hornNotes
}

Die Zeile

 
\include "horn-music.ly"

ersetzt den Inhalt von ‘horn-music.ly’ an dieser Position in der Datei, sodass hornNotes im Folgenden definiert ist. Der Befehl \transpose f c' zeigt an, dass das Argument (\hornNotes) eine Quinte nach oben transponiert werden soll. Klingendes f wird als c', wie es die Stimmung eines normalen F-Hornes verlangt. Die Transposition kann in folgender Notenausgabe gesehen werden:

[image of music]

In Ensemblestücken sind manche Stimmen für viele Takte stumm. Das wird durch eine besondere Pause notiert, die Mehrtaktpause. Sie wird mit einem großen R notiert, gefolgt von der Dauer (1 für eine Ganze, 2 für eine Halbe usw.). Indem man die Dauern multipliziert, kann man auch längere Dauern erzeugen. Diese Pause etwa dauert drei Takte in einem 2/4-Takt:

 
R2*3

Wenn die Stimme gesetzt wird, sollen Mehrtaktpausen zusammen gefasst werden. Zu diesem Zweck gibt es eine Musik Funktion:

 
\compressMMRests { ... }

Angewendet auf hornNotes erhält man:

[image of music]

Die Partitur wird erstellt, indem man alle Noten kombiniert. Angenommen, die andere Stimme ist in bassoonNotes in der Datei ‘bassoon-music.ly’ definiert, würde eine Partitur erstellt mit:

 
\include "bassoon-music.ly"
\include "horn-music.ly"

<<
  \new Staff \hornNotes
  \new Staff \bassoonNotes
>>

woraus sich ergibt:

[image of music]

Siehe auch

Handbuch zum Lernen: Stücke durch Variablen organisieren.

Notationsreferenz: (notation)Transponieren in Abschnitt ‘Transponieren’ in Notationsreferenz, (notation)Orchesterstimmen erstellen in Abschnitt ‘Orchesterstimmen erstellen’ in Notationsreferenz, (notation)Ganztaktpausen in Abschnitt ‘Ganztaktpausen’ in Notationsreferenz, (notation)LilyPond-Dateien einfügen in Abschnitt ‘LilyPond-Dateien einfügen’ in Notationsreferenz.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]

Dieses Dokument wurde erzeugt von gub am 13. Juli 2020 durch texi2html 1.82.

Andere Sprachen: English, català, česky, español, français, magyar, italiano, 日本語, nederlands.
Über die automatische Sprachauswahl.