| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@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.
| 3.4.1 Sopran und Cello | ||
| 3.4.2 Vierstimmige SATB-Partitur | ||
| 3.4.3 Eine Partitur von Grund auf erstellen | ||
| 3.4.4 Tipparbeit durch Variablen und Funktionen einsparen | ||
| 3.4.5 Partituren und Stimmen |
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@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 { } }
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] | [ ? ] |
@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:
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 >> >> }
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@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
Glossar: (music-glossary)system in Abschnitt ‘system’ in Glossar.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Saving typing with variables and functions
Bis jetzt wurde immer derartige Notation vorgestellt:
hornNotes = \relative { c''4 b dis c } \score { { \hornNotes } }
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 } }
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 } }
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 }
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] | [ ? ] |
@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:
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:
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:
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.