| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Collisions of objects
| 4.6.1 Verschieben von Objekten | ||
| 4.6.2 Überlappende Notation in Ordnung bringen | ||
| 4.6.3 Beispiel aus dem Leben |
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Moving objects
Es wird vielleicht eine Überraschung sein, aber LilyPond ist nicht perfekt. Einige Notationselemente können sich überschneiden. Das ist nicht schön, aber zum Glück sehr selten. Normalerweise müssen die Objekte zur Klarheit oder aus ästhetischen Gründen verschoben werden – sie könnten besser aussehen, wenn sie etwas zusätzlichen Platz erhalten.
Es gibt im Grunde drei Herangehensweisen, überlappende Notation zu verbessern. Man sollte sie in der folgenden Reihenfolge anwenden:
\override-Befehl positioniert werden. Die Vorteile
von Änderungen dieser Art sind a) dass einige Objekte
automatisch verschoben werden, wenn es nötig ist Platz zu
schaffen und b) ein einziges \override sich auf
alle Fälle eines Objekttyps bezieht. Zu diesen Eigenschaften
gehören:
direction (Richtung)
Das wurde schon detailliert behandelt, siehe within-staff (Objekte innerhalb des Notensystems).
padding, right-padding, staff-padding (Verschiebung)
Wenn ein Objekt platziert wird, bestimmt der Wert seiner
padding-(Füllungs)-Eigenschaft die Größe des
Abstandes, der zwischen dem Objekt selber und dem
Objekt, relativ zu welchem es positioniert wird, gelassen
werden muss. Dabei zählt der padding-Wert
des Objektes, das platziert werden soll, der padding-Wert
des Objektes, das schon gesetzt wurde, wird hingegen
ignoriert. Abstände mit padding können zu
allen Objekten hinzugefügt werden, die das
side-position-interface unterstützen.
Anstelle von padding wird die Position von
Versetzungszeichengruppen durch die Eigenschaften
right-padding bestimmt. Diese Eigenschaft wird im
AccidentalPlacement-(Versetzungszeichen-Positionierungs)-Objekt
gefunden, das sich innerhalb des Staff-Kontexts
befindet. Während des Notensatzes werden die Notenköpfe
zuerst gesetzt und dann die Versetzungszeichen, wenn denn
welche gesetzt werden, durch die right-padding-Eigenschaft
auf die linke Seite der Notenköpfe positioniert, um die Entfernung
von den Notenköpfen und zwischen den einzelnen Versetzungszeichen zu
bestimmen. Also nur die right-padding-(Verschiebung nach rechts)-Eigenschaft
des AccidentalPlacement-Objekts hat Einfluss auf die
Positionierung der Versetzungszeichen.
Die staff-padding-(Verschiebung zum System)-Eigenschaft
ist sehr ähnlich wie die padding-Eigenschaft:
padding bestimmt den Minimalabstand zwischen
einem Objekt, das das side-position-interface
unterstützt, und dem nächsten anderen Objekt (normalerweise
die Note oder Notenlinie); staff-padding dagegen
wirkt nur auf Objekte die immer außerhalb des Notensystems
sind – damit wird der minimale Abstand bestimmt, der
zwischen dem Objekt und dem Notensystem gelassen werden
soll. staff-padding hat also keinen Einfluss
auf Objekte, die relativ zu einer Note positioniert werden, sondern
nur auf solche, die zum System relativ stehen. Wenn es mit einem
anderen Objekt eingesetzt wird, erhält man keine Fehlermeldung, aber
der Befehl hat auch keine Auswirkungen.
Um herauszufinden, welche padding-Eigenschaft für
das bestimmte Objekt nötig, ist, das Sie verschieben wollen,
müssen Sie in der IR nach den Objekt-Eigenschaften schauen.
Dabei sollten Sie bedenken, dass sich die padding-Eigenschaften
nicht unbedingt in dem Objekt selber befinden, schauen Sie
also auch in Objekten nach, die offensichtlich Ähnlichkeiten
haben.
Alle padding-Werte werden in Notenlinienabständen
gemessen. Für die meisten Objekte ist der Wert ungefähr auf
1.0 oder weniger gesetzt (das variiert von Objekt zu Objekt).
Der Wert kann geändert werden, wenn ein größerer (oder
kleinerer) Abstand gewünscht wird.
self-alignment-X (Selbstpositionierung)
Diese Eigenschaft kann benutzt werden, um ein Objekt
nach links, rechts oder zentriert an dem Referenzpunkt des Objekts
auszurichten, an das es verknüpft ist. Es kann bei allen
Objekten benutzt werden, die das self-alignment-interface
unterstützen. Das sind üblicherweise Objekte, die Text
enthalten. Die möglichen Werte der Eigenschaft sind LEFT,
RIGHT oder CENTER. Alternativ kann ein
numerischer Wert zwischen -1 und +1
bestimmt werden: -1 heißt linksbündig, +1
rechtsbündig und Zahlen dazwischen bewegen den Text
schrittweise von links nach rechts. Zahlen größer als
1 können angegeben werden, um den Text
noch weiter nach links zu bewegen, oder weniger als -1,
um ihn weiter nach rechts zu schieben. Eine Änderung
um 1 des Wertes entspricht einer Bewegung um
die halbe Textbreite.
extra-spacing-width (zusätzliche Breite)
Diese Eigenschaft steht für alle Objekte zur Verfügung, die
das item-interface unterstützen. Es braucht zwei
Zahlen als Argument, die erste wird zur rechten Ausdehnung,
die zweite zur linken Ausdehnung hinzugerechnet. Negative
Zahlen verschieben die Ausdehnung nach rechts, positive nach
links, um also ein Objekt zu verbreitern, muss die erste
Zahl negativ und die zweite positiv sein. Allerdings beachten
nicht alle Objekte beide Zahlen. Das
accidental-(Versetzungszeichen)-Objekt etwa beachtet
nur erste Zahl für die linke Ausdehnung.
staff-position (Notensystempositionierung)
staff-position ist eine Eigenschaft des
staff-symbol-referencer-interface, die von Objekten unterstützt
wird, die relativ zum Notensystem (engl. staff) positioniert werden.
Hiermit wird die vertikale Position eines Objekts relativ zur
Mittellinie des Systems in halben Notenlinienabständen angegeben.
Das ist sehr nützlich, um Zusammenstöße zwischen Layout-Objekten
wie Ganztaktpausen, Bögen und Noten in verschiedenen Stimmen
zu lösen.
horizontal-shift (horizontale Verschiebung)
Innerhalb einer Stimme werden alle Noten, die zeitgleich stattfinden,
zu einer Gruppe zusammen gefasst, einem sog. NoteColumn Objekt.
Dieses Objekt dient dem Zweck, diese Gruppe von Noten horizontal zu
positionieren (siehe auch „Notenkolumnen“ in Stimmen explizit beginnen).
Genau dann, wenn zwei oder mehr Notenkolumnen innerhalb eines
Systemkontexts, die beide jeweils die Hälse in die gleiche Richtung haben
und auch zur gleichen Zeit stattfinden, werden die Werte ihrer
horizontal-shift-Eigenschaften nach Größe sortiert und die Objekte
dann mit einer Ordnungsnummer versehen. Je größer diese Ordnungsnummer,
desto stärker wird ein Objekt verschoben um eine Kollision der Notenköpfe
zu vermeiden. Diese Eigenschaft wird mit den \voiceXXX-Befehlen
gesetzt und kann direkt durch einen \override-Befehl, oder was für
gewöhnlich häufiger vorkommt, durch einen \shiftOn-Befehl gesetzt
werden. Bedenken sie bitte, diese Eigenschaft dient lediglich dazu, den
Notenkolumnen eine Ordnungsnummer zuzuweisen - sie bestimmt in
keinster Weise die Größe der jeweiligen Verschiebung. Die steigt mit
zunehmender Ordnungsnummer in festen Schritten. Die Schrittweite ist
für gewöhnlich eine halbe Notenkopfbreite. Bei sehr eng platzierten Notengruppen
kann sie aber auch mal eine ganze Notenkopfbreite betragen.
force-hshift (horizontale Verschiebung erzwingen)
Die force-hshift-(erzwinge horizontale Verschiebung)-Eigenschaft
ist eine Eigenschaft von NoteColumn (bzw. vom
note-column-interface). Eine Veränderung dieser Eigenschaft
macht es möglich, eine Notenkolumne zu verschieben, wenn sie mit anderen
überlappt. Diese Eigenschaft hat keinerlei Auswirkungen, wenn keine
Überlappung vorliegt. Veränderungen werden in einer Einheit angegeben,
die zu der Notenkolumne passt, d.h. der Breite des Notenkopfes der Note
der ersten Stimme. Diese Eigenschaft sollte in denjenigen komplexen
Fällen verwendet werden, die sich nicht mit dem normalen \shiftOn-Befehle
(siehe auch Stimmen explizit beginnen) lösen lassen.
Sie ist auf jeden Fall der Verwendung der extra-offset-Eigenschaft
vorzuziehen, weil man die richtige Entfernung nicht
in Notenlinienabständen ausrechnen muss. Wenn eine Note in eine
Notenkolumne oder aus ihr heraus geschoben wird, werden auch andere
Funktionen beeinflusst, wie etwa die Verschmelzung von Notenköpfen.
extra-offset (zusätzlicher Abstand)Diese Eigenschaft gehört zu jedem Layout-Objekt, das das
grob-interface unterstützt. Sie braucht ein Zahlenpaar,
das die exakte Verschiebung in horizontaler und vertikaler Richtung
bezeichnet. Negative Zahlen verschieben das Objekt nach links oder
unten. Die Einheit sind Notenlinienabstände. Die zusätzliche
Positionierung wird vorgenommen, nachdem alle anderen Objekte
platziert sind, weshalb ein Objekt irgendwohin verschoben werden
kann, ohne den restlichen Satz zu beeinflussen.
positions (Position)Diese Eigenschaft ist am sinnvollsten, um die Steigung und die
Höhe von Balken, Bögen und Triolenklammern anzupassen.
Sie braucht ein Zahlenpaar, das die Position des rechten und linken
Endes relativ zur Mittellinie des Notensystems bestimmt. Die
Einheit sind Notenlinienabstände. Bögen allerdings können nicht
beliebig weit weg positioniert werden. LilyPond erstellt zunächst eine
Liste an möglichen Positionen für den Bogen und findet normalerweise
die Version, die „am besten aussieht“. Wenn die
positions-Eigenschaft verändert worden ist, wird der
Bogen aus der Liste gewählt, der der gewünschten Position am
nächsten kommt.
Ein bestimmtes Objekt hat vielleicht nicht alle dieser Eigenschaften. Darum ist es nötig, in der IR nachzuschlagen, welche Eigenschaften ein bestimmtes Objekt unterstützt.
Hier ist eine Liste an Objekten, die am wahrscheinlichsten an einer Kollision beteiligt sind, daneben findet sich die Bezeichnung des Objektes, mit der Sie es in der IR finden, um zu bestimmen, welche Eigenschaften benutzt werden können, um es zu verschieben.
| Objekttyp | Objektbezeichnung |
|---|---|
| Articulationszeichen | Script |
| Balken | Beam |
| Dynamikzeichen (vertikal) | DynamicLineSpanner |
| Dynamikzeichen (horizontal) | DynamicText |
| Fingersatz | Fingering |
| Übungs-/Textmarken | RehearsalMark |
| Legatobögen | Slur |
Text z. B. ^"text" | TextScript |
| Bindebögen | Tie |
| N-tolen | TupletBracket |
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Fixing overlapping notation
Hier soll nun gezeigt werden, wie die Eigenschaften, die im vorigen Abschnitt vorgestellt wurden, bei der Problemlösung mit sich überschneidenden Notationselementen eingesetzt werden können.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
padding-Eigenschaft (auffüllen)@translationof The padding property
Die padding-(Verschiebungs-)Eigenschaft kann benutzt
werden, um den Abstand zwischen Symbolen zu vergrößern (oder
zu verkleinern), die über oder unter den Noten gesetzt werden.
c'2\fermata \override Script.padding = #3 b2\fermata
% This will not work, see below \override MetronomeMark.padding = #3 \tempo 4 = 120 c'1 | % This works \override Score.MetronomeMark.padding = #3 \tempo 4 = 80 d'1 |
Im zweiten Beispiel können Sie sehen, wie wichtig es ist den richtigen
Kontext anzugeben. Weil das MetronomeMark-Objekt
sich im Score-Kontext befindet, werden Eigenschaftsänderungen
im Voice-Kontext einfach ignoriert. Für mehr Einzelheiten siehe
(notation)Eigenschaften verändern in Abschnitt ‘Eigenschaften verändern’ in Notationsreferenz.
Wenn die padding-Eigenschaft eines Objektes erhöht wird, das
sich in einem Stapel von Objekten befindet, die nach ihrer
Außersystempriorität (outside-staff-priority) positioniert werden,
werden das Objekt und alle, die sich außerhalb davon befinden,
entsprechend verschoben.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
right-padding-Eigenschaft (rechts auffüllen)@translationof The right-padding property
Die right-padding-Eigenschaft wirkt sich auf den Abstand
zwischen einem Versetzungszeichen und der Note, auf das sie sich
bezieht, aus. Sie wird nicht sehr oft benötigt, aber die
Standardanordnung kann für einige spezielle Versetzungszeichen-Glyphen
oder Kombinationsglyphen,
wie sie für Mikrotonale Musik benutzt werden, falsch sein. Derartige
Glyphen müssen notiert werden, indem man den Stencil des
Versetzungszeichens mit einer Textbeschriftung (Markup) ersetzt,
wie im folgenden Beispiel:
sesquisharp = \markup { \sesquisharp } \relative { c''4 % This prints a sesquisharp but the spacing is too small \once \override Accidental.stencil = #ly:text-interface::print \once \override Accidental.text = #sesquisharp cis4 c % This improves the spacing \once \override Score.AccidentalPlacement.right-padding = #0.6 \once \override Accidental.stencil = #ly:text-interface::print \once \override Accidental.text = #sesquisharp cis4 }
Dazu ist aber ein \override-Befehl für den Stencil des
Versetzungszeichens nötig, der bisher nicht behandelt wurde.
Der Typ des Stencils muss eine Prozedur sein, die hier geändert
wurde, um den Inhalt der text-Eigenschaft des
Accidental (Versetzungszeichen)-Objekts zu setzen. Die
text-Eigenschaft wiederum wird als sesquisharp-Glyph
definiert. Dieser Glyph wird dann weiter vom Notenkopf entfernt
durch die Veränderung von right-padding mit einem
\override-Befehl.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
staff-padding-Eigenschaft (Systemfüllungseigenschaft)@translationof The staff-padding property
staff-padding kann
verwendet werden um Objekte wie Dynamikzeichen an einer
Grundlinie mit einem festen (Mindest-) Abstand zum System auszurichten,
wenn keine anderen Notationsobjekte einen noch weiteren Abstand erfordern.
Diese Verschiebung ist keine Eigenschaft
von DynamicText, sondern von DynamicLineSpanner.
Das liegt daran, dass die Grundlinie sich gleicherweise auf
alle Dynamikzeichen beziehen soll, also auch auf die,
die als Strecker erstellt wurden. Hier also die Lösung, die Dynamikzeichen
aus dem Beispiel des vorigen Abschnitts auszurichten:
\override DynamicLineSpanner.staff-padding = #3 \relative { a'4\f b\mf a\p b\mp }
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
self-alignment-X-Eigenschaft (Selbstausrichtung-X-Eigenschaft)@translationof The self-alignment-X property
Das nächste Beispiel zeigt, wie man die Position einer Fingersatzbezeichnung relativ zu einem Notenhals justieren kann, indem dessen rechte Kante an dem Referenzpunkt der zugehörigen Note ausgerichtet wird:
\voiceOne <a''\2> \once \override StringNumber.self-alignment-X = #RIGHT <a''\2>
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
staff-position-Eigenschaft (Position innerhalb des Systems)@translationof The staff-position property
Mehrtaktpausen in einer Stimmen können mit Noten in anderen Stimmen kollidieren. Da diese Pausen zentriert zwischen den Taktstriche gesetzt werden, würde es für LilyPond eine recht große Anstrengung bedeuten herauszufinden, welche Noten mit ihnen zusammenstoßen könnten, denn alle Kollisionsvermeidung für Noten und Pausen funktioniert nur für Noten bzw. Pausen, die zur selben Zeit auftreten. Hier ein typisches Beispiel für eine Kollision dieser Art:
<< \relative { c'4 c c c } \\ { R1 } >>
Die beste Lösung ist es hier, die Ganztaktpause nach unten zu
schieben, denn die Pause ist in der zweiten Stimme. Per
Standardeinstellung für die zweite Stimme (\voiceTwo,
also die zweite Stimme in der
<<{…} \\ {…}>>-Konstruktion) wird die
Position auf dem System (staff-position) auf -4
für MultiMeasureRest, in unserem Beispiel muss
es also bspw. auf die Position -8 gesetzt werden,
d.h. vier halbe Notenlinienabstände weiter nach unten:
<< \relative { c'4 c c c } \\ \override MultiMeasureRest.staff-position = #-8 { R1 } >>
Das ist besser, als etwa extra-offset zu benutzen, denn
in unserem Fall wird die Hilfslinie der Pause automatisch gesetzt.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
extra-offset-Eigenschaft (Genaues Positionieren)@translationof The extra-offset property
Die extra-offset-Eigenschaft bietet vollständige Kontrolle
über die Positionierung von Objekten in horizontaler und vertikaler
Richtung.
Im Beispiel unten ist das zweite Fingersatzzeichen (Fingering) etwas nach
links und 1,8 Notenlinienabstände nach unten verschoben:
f'4-5 \once \override Fingering.extra-offset = #'(-0.3 . -1.8) f'4-5
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
positions-Eigenschaft (Ausrichtungseigenschaft)@translationof The positions property
Die positions-Eigenschaft ermöglicht es, die vertikale Position
und damit implizit die Neigung von N-tolen, Legato- und Phrasierungsbögen
sowie Balken manuell zu steuern.
Im folgenden Beispiel überlappen der Legato- und er Phrasierungsbogen:
\relative { a'8 \( ( a'16 ) a \) }
Ein Möglichkeit wäre es, die beiden Endpunkte des Phrasierungsbogen weiter nach oben zu verschieben. Wir probieren einmal das linke Ende 2.5 Staff-Einheiten über die Mittellinie und das rechte Ende 4.5 Einheiten darüber zu fixieren und überlassen es LilyPond, einen zu diesen Endpunkten passenden Phrasierungsbogen auszuwählen:
\once \override PhrasingSlur.positions = #'(2.5 . 4.5) a'8 \( ( a''16 ) a'' \)
Auf jeden Fall eine Verbesserung, aber warum das rechte Ende des
Legatobogens nicht ein wenig nach unten verschieben? Wenn Sie es
versuchen werden sie feststellen, es ist auf diesem Wege nicht
möglich, und das liegt daran, dass LilyPond von sich aus keinen
Bogen erzeugt, der niedriger läge, als der, den es bereits auswählt.
In solch einem Fall hat eine Änderung der positions-Eigenschaft
keinerlei Auswirkung. Allerdings können Binde-, Legato- und
Phrasierungsbögen bei Bedarf sehr exakt positioniert und auch geformt
werden. Unter
(notation)Bögen verändern in Abschnitt ‘Bögen verändern’ in Notationsreferenz können sie lernen, wie.
Hier noch ein weiteres Beispiel. Wie zu sehen ist, stößt der Balken mit den oberen Bögen zusammen:
{ \time 4/2 << \relative { c'1~ 2. e8 f } \\ \relative { e''8 e e e e e e e f2 g } >> << \relative { c'1~ 2. e8 f } \\ \relative { e''8 e e e e e e e f2 g } >> }
Das kann manuell gelöst werden, indem beide Enden des Balkens von ihrer Position 1.81 Notenlinienabstände unter der Mittellinie hoch geschoben werden, etwa auf 1:
{ \time 4/2 << \relative { c'1~ 2. e8 f } \\ \relative { \override Beam.positions = #'(-1 . -1) e''8 e e e e e e e f2 g } >> << \relative { c'1~ 2. e8 f } \\ \relative { e''8 e e e e e e e f2 g \revert Beam.positions } >> }
Hier ist zu beobachten, dass die Veränderung sich auch auf den die zweite Stimme des weiteren Taktes mit Achtelnoten auswirkt, während sie keine Auswirkung auf die Hälse der ersten Stimme hat. Sobald das override nicht mehr benötigt wird, sollte es wie zu sehen reverted werden.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
force-hshift-Eigenschaft (horizontale Verschiebunseigenschaft)@translationof The force-hshift property
An diesem Punkt können wir den letzten Feinschliff an unserem Chopin-Beispiel vornehmen, das wir behandelt haben in Ich höre Stimmen. Wir hatten es in folgende Form gebracht:
\new Staff \relative { \key aes \major << { c''2 aes4. bes8 } \\ { <ees, c>2 des } \\ \\ { aes'2 f4 fes } >> | <c ees aes c>1 | }
Die inneren Noten des ersten Akkordes (also das As in der vierten Stimme)
müssen nicht mit shift verschoben aus der Noten-Kolumne der höheren Stimme
verschoben werden, daher verwenden wir \shiftOff.
Im zweiten Akkord wollen wir, dass das F sich am As orientiert und die
tiefste Note leicht nach rechts verschoben wird, damit ein Zusammenstoß
der Hälse vermieden wird. Das erreicht man mit force-hshift in
NoteColumn des unteren Des, um es einen halben
Notenlinienzwischenraum nach rechts zu verschieben und gleichzeitig
force-hshift für das F auf Null.
Ihnen ist sicher aufgefallen, dass wir \once verwenden damit
die Veränderung nicht über den konkreten Fall hinaus wirkt, auch wenn
im konkreten kleinen Beispiel \once und das zweite \override
in der vierten Stimme weggelassen werden könnte. Das wäre aber
schlechter Stil.
Hier das Endergebnis:
\new Staff \relative { \key aes \major << { c''2 aes4. bes8 } \\ { <ees, c>2 \once \override NoteColumn.force-hshift = 0.5 des } \\ \\ { \once \shiftOff aes'2 \once \shiftOff f4 fes } >> | <c ees aes c>1 | }
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Real music example
Das Kapitel zu Optimierungen soll mit einem komplizierten Beispiel beendet werden, in dem verschiedene Optimierungen vorgenommen werden müssen, bis das Ergebnis gut aussieht. Das Beispiel wurde ganz bewusst gewählt um die Benutzung der Notationsreferenz zu zeigen, wenn ungewöhnliche Notationsprobleme gelöst werden müssen. Es ist nicht repräsentativ für normale Notationsprojekte, lassen Sie sich also nicht durch dieses Beispiel entmutigen! Zum Glück sind Probleme wie die hier gezeigten nicht sehr häufig.
Das Beispiel stammt aus Chopins Premiére Ballade, Op. 23, Takte 6–9, der Übergang vom Lento der Einleitung zum Moderato. Hier zunächst der Satz, wie er aussehen soll, allerdings ohne Dynamik, Fingersatz und Pedalbezeichnung, um das Beispiel nicht zu kompliziert zu machen.
Die erste Überlegung ist, dass das System für die rechte Hand im dritten Takt vier Stimmen braucht. Das sind die fünf Achtelnoten mit Balken, das übergebundene C, die Halbe D, die mit der Achtel D verschmolzen ist, und die punktierte Viertel Fis, die auch mit einer Achtelnote verschmolzen ist. Alles andere ist eine einzige Stimme, es ist also am einfachsten, die zusätzlichen drei Stimmen nur zeitweise zu erstellen, wenn sie auftreten. Wenn Sie vergessen haben, wie man das anstellt, schauen Sie sich nochmal den Abschnitt Ich höre Stimmen und Stimmen explizit beginnen an. Hier wollen wir explizit begonnene Stimmen für die polyphone Stelle benutzen, weil LilyPond Kollisionen besser vermeidet, wenn alle Stimmen auf diese Weise explizit begonnen werden.
Wir wollen anfange, indem wir die Noten in zwei Variablen
notieren und dann die Systemstruktur in einer
\score-Umgebung erstellen. Das ist, was LilyPond
erstellt:
rhMusic = \relative { \new Voice { r2 c''4. g8 | bes1~ | \time 6/4 bes2. r8 % Start polyphonic section of four voices << { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo c,8~ 2 } \new Voice { \voiceThree s8 d2 } \new Voice { \voiceFour s4 fis4. } >> | g2. % continuation of main voice } } lhMusic = \relative { r2 <c' g ees>2 | <d g, d>1 | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
Alle Noten sind richtig, aber die Positionierung sehr verbesserungsbedürftig. Der Bindebogen kollidiert mit der veränderten Taktart zusammen, einige Noten werden nicht verschmolzen und einige Notationselemente fehlen ganz. Behandeln wir zunächst die einfacheren Dinge. Der Balken kann durch eine manuelle Begrenzung einfach korrigiert werden, und auch der Legatobogen der linken Hand und der Phrasierungsbogen der rechten Hand sind schnell gesetzt, denn sie wurden schon in der Übung erklärt. Damit haben wir folgendes Notenbild:
rhMusic = \relative { \new Voice { r2 c''4.\( g8 | bes1~ | \time 6/4 bes2. r8 % Start polyphonic section of four voices << { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo c,8~ 2 } \new Voice { \voiceThree s8 d2 } \new Voice { \voiceFour s4 fis4. } >> | g2.\) % continuation of main voice } } lhMusic = \relative { r2 <c' g ees>2( | <d g, d>1) | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
Der erste Takt stimmt jetzt schon. Der zweite Takt enthält ein
Arpeggio und wird mit einem doppelten Taktstrich beschlossen.
Wie können wir diese notieren, denn sie sind im Handbuch zum
Lernen nicht vorgekommen? Hier brauchen wir jetzt die
Notationsreferenz. Ein Blick in den Index zeigt uns die
Einträge für „Arpeggio“ und „Taktstriche“: ein
Arpeggio also erstellt man mit dem Befehl \arpeggio
hinter einem Akkord und einen doppelten Taktstrich wird mit dem
Befehl \bar "||" erstellt. Das ist einfach. Als nächstes
muss der Zusammenstoß des Bindebogens mit der Taktartbezeichnung
gelöst werden. Das geht am besten, indem wir den Bogen nach
oben verschieben. Wie man Objekte verschiebt wurde schon
behandelt in Verschieben von Objekten, wo stand, dass Objekte
die relativ zum System positioniert werden, vertikal verschoben werden
können, indem ihre staff-position-Eigenschaft
geändert wird, die in halben Notenlinienabständen relativ
zur Mittellinie angegeben wird. Dieser \override-Befehl
also, direkt vor die erste über gebundene Note gestellt, verschiebt
den Bindebogen (tie) 3,5 halbe Notenlinienabstände
über die Mittellinie:
\once \override Tie.staff-position = #3.5
Damit ist auch der zweite Takt vollständig:
rhMusic = \relative { \new Voice { r2 c''4.\( g8 | \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 bes2. r8 % Start polyphonic section of four voices << { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo c,8~ 2 } \new Voice { \voiceThree s8 d2 } \new Voice { \voiceFour s4 fis4. } >> | g2.\) % continuation of main voice } } lhMusic = \relative { r2 <c' g ees>2( | <d g, d>1)\arpeggio | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
In Takt drei beginnt der Moderato-Abschnitt. In der
Übung wurde behandelt, wie man ein Tempobezeichnung mittels des
\tempo-Befehls eingibt. Damit ist das hinzufügen des
„Moderato“ einfach. Wie aber werden Noten
verschmolzen? Hier nehmen wir wieder die Notationsreferenz
zu Hilfe. Die Suche nach „Verschmelzen“ (engl. merge)
im Index führt uns zu den Befehlen, um Noten mit
unterschiedlichen Köpfen und unterschiedlichen Punkten
zu verschmelzen, in
(notation)Auflösung von Zusammenstößen in Abschnitt ‘Auflösung von Zusammenstößen’ in Notationsreferenz. In unserem
Beispiel müssen sowohl unterschiedliche Köpfe also auch
unterschiedliche Punktierung verschmolzen werden, wir
brauchen also die Befehle
\mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn |
aus der Notationsreferenz, die wir an den Beginn unseres Abschnittes stellen und
\mergeDifferentlyHeadedOff \mergeDifferentlyDottedOff |
um das Verhalten wieder auszuschalten. Das sieht so aus:
Mit diesen Veränderungen wurden die beiden Fis-Noten
verschmolzen, aber nicht die zwei Ds. Warum nicht? Die
Antwort befindet sich im gleicher Abschnitt der Notationsreferenz:
Noten, die verschmolzen werden, müssen Hälse in entgegengesetzte
Richtungen aufweisen und zwei Noten können nicht verschmolzen
werden, wenn eine dritte Noten in der gleichen Kolumne
stört. In unserem Fall weisen beide Hälse nach oben und es
befindet sich zur gleichen Zeit auch noch eine dritte Note, das C.
Wie die Richtung von Hälsen geändert wird, wissen wir schon:
mit \stemDown, und in der Notationsreferenz findet
sich auch Information, wie das C verschoben werden kann: mit
dem \shift-Befehl. Aber welcher von ihnen? Das C
befindet sich in der zweiten Stimme, die „shift off“ hat,
die zwei Ds sind in den Stimmen eins und drei, die „shift
off“ bzw. „shift on“ haben. Das C muss also noch eine
Stufe weiter verschoben werden mit \shiftOnn, damit
es die Verschmelzung der Ds nicht stört. Das sieht jetzt so
aus:
rhMusic = \relative { \new Voice { r2 c''4.\( g8 | \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 bes2.\tempo "Moderato" r8 \mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn % Start polyphonic section of four voices << { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo % Move the c2 out of the main note column % so the merge will work c,8~ \shiftOnn c2 } \new Voice { \voiceThree % Stem on the d2 must be down to permit merging s8 \stemDown d2 } \new Voice { \voiceFour s4 fis4. } >> | \mergeDifferentlyHeadedOff \mergeDifferentlyDottedOff g2.\) % continuation of main voice } } lhMusic = \relative { r2 <c' g ees>2( | <d g, d>1)\arpeggio | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
Fast schon geschafft. Nur noch ein Problem ist übrig: Der Hals nach
unten des verschmolzenen sollte nicht da sein, und das C sähe
besser auf der rechten Seite des Ds aus. Beides können wir mit den
gelernten Optimierungsmethoden erreichen. Den Hals machen
wir durchsichtig und das C verschieben wir mit der
force-hshift-Eigenschaft. Hier ist das Endergebnis:
rhMusic = \relative { \new Voice { r2 c''4.\( g8 | \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 bes2.\tempo "Moderato" r8 \mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn % Start polyphonic section of four voices << { c,8 d fis bes a } % continuation of main voice \new Voice { \voiceTwo c,8~ % Reposition the c2 to the right of the merged note \once \override NoteColumn.force-hshift = #1.0 % Move the c2 out of the main note column % so the merge will work \shiftOnn c2 } \new Voice { \voiceThree s8 % Stem on the d2 must be down to permit merging \stemDown % Stem on the d2 should be invisible \tweak Stem.transparent ##t d2 } \new Voice { \voiceFour s4 fis4. } >> | \mergeDifferentlyHeadedOff \mergeDifferentlyDottedOff g2.\) % continuation of main voice } } lhMusic = \relative { r2 <c' g ees>2( | <d g, d>1)\arpeggio | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] |
Dieses Dokument wurde erzeugt von gub am 13. Juli 2020 durch texi2html 1.82.
Andere Sprachen: English, català, español, français, italiano, 日本語, nederlands.
Über die automatische Sprachauswahl.