[ << Standardeinstellungen verändern ] | [Top][Contents][Index] | [ Notationsübersicht >> ] |
[ < Eigenschaften des Staff-Symbols ] | [ Up : Nützliche Konzepte und Eigenschaften ] | [ Sichtbarkeit von Objekten > ] |
5.4.5 Strecker
Viele Objekte der Musiknotation erstrecken sich über mehrere Objekte oder gar mehrere Takte. Beispiele hierfür sind etwa Bögen, Balken, Triolenklammern, Volta-Klamern in Wiederholungen, Crescendo, Triller und Glissando. Derartige Objekte werden als „Strecker“ bezeichnet. Sie haben spezielle Eigenschaften, mit welchen ihre Eigenschaften und ihr Verhalten beeinflusst werden kann. Einige dieser Eigenschaften gelten für alle Strecker, andere beschränken sich auf eine Untergruppe der Strecker.
Alle Strecker unterstützen das spanner-interface
(Strecker-Schnittstelle).
Ein paar, insbesondere die, die zwischen zwei Objekten eine
gerade Linie ziehen, unterstützen auch das
line-spanner-interface
(Strecker-Linienschnittstelle).
Das spanner-interface
benutzen
Diese Schnittstelle stellt zwei Eigenschaften zur Verfügung, die sich auf mehrere Strecker auswirken:
Die minimum-length
-Eigenschaft
Die Mindestlänge eines Streckers wird durch die
minimum-length
-Eigenschaft definiert. Wenn diese
Eigenschaft vergrößert wird, muss in den meisten Fällen
auch der Abstand der Noten zwischen den zwei Endpunkten
eines Streckers verändert werden. Eine Veränderung dieser
Eigenschaft hat jedoch auf die meisten Strecker keine Auswirkung,
weil ihre Länge aus anderen Berechnungen hervorgeht.
Einige Beispiele, wo die Eigenschaft benutzt wird, sind
unten dargestellt.
a~a a % increase the length of the tie -\tweak minimum-length #5 ~a
a1 \compressEmptyMeasures R1*23 % increase the length of the rest bar \once \override MultiMeasureRest.minimum-length = #20 R1*23 a1
a \< a a a \! % increase the length of the hairpin \override Hairpin.minimum-length = #20 a \< a a a \!
Diese Veränderung kann auch eingesetzt werden, um die Länge von Legato- und Phrasierungsbögen zu verändern:
a( a) a -\tweak minimum-length #5 ( a) a\( a\) a -\tweak minimum-length #5 \( a\)
Im Falle einiger Layoutobjekte wirkt sich die
minimum-length
-Eigenschaft erst dann aus, wenn die
set-spacing-rods
-Prozedur explizit aufgerufen wird.
Um das zu tun, sollte die springs-and-rods
-Eigenschaft
auf ly:spanner::set-spacing-rods
gesetzt werden. Die
Mindestlänge eines Glissandos etwa wird erst aktiv, wenn
die springs-and-rods
-Eigenschaft gesetzt ist:
% default e' \glissando c'' % not effective alone \once \override Glissando.minimum-length = #20 e' \glissando c'' % effective only when both overrides are present \once \override Glissando.minimum-length = #20 \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods e' \glissando c''
Das gilt auch für das Beam
-(Balken-)Objekt:
% not effective alone \once \override Beam.minimum-length = #20 e'8 e' e' e' % effective only when both overrides are present \once \override Beam.minimum-length = #20 \once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods e'8 e' e' e'
Die to-barline
-Eigenschaft
Die zweite nützliche Eigenschaft des spanner-interface
ist
to-barline
(bis zum Taktstrich). In den Standardeinstellungen
ist diese Eigenschaft auf „wahr“ gesetzt, was bedeutet, dass
ein Strecker, etwa eine Crescendo-Klammer, der an der ersten Noten
eines Taktes beendet wird, sich nur bis zum vorhergehenden
Taktstrich erstreckt. Wenn die Eigenschaft auf „falsch“ gesetzt
wird, erstrecken sich die Strecker entsprechend über die Taktlinie
hinüber und enden erst an der entsprechenden Note:
\relative { a' \< a a a a \! a a a \break \override Hairpin.to-barline = ##f a \< a a a a \! a a a }
Diese Eigenschaft wirkt sich nicht auf alle Strecker aus. Im Falle von Legato- oder Phrasierungsbögen etwa hat diese Eigenschaft keinen Effekt. Das gilt auch für alle anderen Streckern, bei denen es nicht sinnvoll währe, sie an einer Taktlinie abzuschließen.
Das line-spanner-interface
benutzen
Objekte, die das line-spanner-interface
unterstützen,
sind unter Anderem:
-
DynamicTextSpanner
-
Glissando
-
TextSpanner
-
TrillSpanner
-
VoiceFollower
Die Routine, die das Setzen der Matrizen dieser Strecker
hervorruft, ist ly:line-interface::print
. Diese
Routine bestimmt die exakte Position der zwei Endpunkte
und zeichnet eine Linie zwischen ihnen, in dem erforderlichen
Stil. Die Position der zwei Endpunkte des Streckers wird
in Echtzeit errechnet, aber es ist möglich, ihre
Y-Koordinaten zu verändern. Die Eigenschaften, die angegeben
werden müssen, sind zwei Ebenen in der Objekthierarchie
tiefer angeordnet, aber die Syntax des \override
-Befehls
ist ziemlich einfach:
e''2 \glissando b' \once \override Glissando.bound-details.left.Y = #3 \once \override Glissando.bound-details.right.Y = #-2 e''2 \glissando b'
Die Einheiten für die Y
-Eigenschaft werden in
Notenlinienabständen angegeben, wobei die Mittellinie des
Notensystems die Null darstellt. Für das Glissando ist
der Wert von Y
am entsprechenden X-Koordinatenpunkt
entsprechend dem Mittelpunkt des Notenkopfes, wenn die
Linie bis in die Noten hinein weitergeführt werden würde.
Wenn Y
nicht gesetzt wird, wird der Wert aus der
vertikalen Position des entsprechenden Anknüpfpunkts des
Streckers errechnet.
Im Fall eines Zeilenumbruchs werden die Werte der Endpunkte
in den Unterlisten left-broken
bzw. right-broken
von bound-details
abgelegt. Zum Beispiel:
\override Glissando.breakable = ##t \override Glissando.bound-details.right-broken.Y = #-3 c''1 \glissando \break f''1
Eine Anzahl weitere Eigenschaft der left
- und
right
-Unterlisten der bound-details
-Eigenschaft
kann auf gleiche Weise wie Y
verändert werden:
Y
Hiermit wird der Y-Koordinationspunkt des Endpunktes in Notenlinienabständen vom Mittelpunkt des Notensystems ausgehend angegeben. Der Endpunkt ist normalerweise der Mittelpunkt des Elternobjektes, sodass Glissandos vertikal auf den Mittelpunkt eines Notenkopfes weist.
Für horizontale Strecker, wie Textstrecker und Trillerstrecker ist sein Wert mit 0 definiert.
attach-dir
Das entscheidet, wo die Linie auf der X-Achse beginnt und endet, relativ zum Elternobjekt. Ein Wert
-1
(oderLEFT
) lässt die Linie an der linken Seite der Noten beginnen/enden, mit der sie verknüpft ist.X
Das ist der absolute X-Koordinatenpunkt des Endpunktes. Der Wert wird normalerweise in Echtzeit errechnet, und ihn zu verändern ist normalerweise nicht nützlich.
stencil
Linienstrecker können Symbole am Ende oder zu Anfang des Streckers haben, die in dieser Untereigenschaft definiert werden. Die Eigenschaft ist für interne Benutzung, es wird empfohlen, die Eigenschaft
text
zu benutzen.text
Das ist eine Textbeschriftung, die ausgewertet wird und die
stencil
-Eigenschaft überschreibt. Sie wird eingesetzt, um cresc., tr oder andere Texte an horizontale Strecker zu setzen.\override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } \relative { c''2\startTextSpan b c a\stopTextSpan }
stencil-align-dir-y
stencil-offset
Wenn keine dieser beiden Eigenschaften gesetzt wird, wird die Matrize (engl. stencil) einfach am Endpunkt des Streckers, auf seiner Mittellinie (wie durch
X
undY
definiert) zentriert, ausgegeben. Wenn entwederstencil-align-dir-y
oderstencil-offset
gesetzt werden, wird das Symbol am Rand vertikal entsprechend des Endpunktes der Linie verschoben:\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2 \override TextSpanner.bound-details.right.stencil-align-dir-y = #UP \override TextSpanner.bound-details.left.text = "ggg" \override TextSpanner.bound-details.right.text = "hhh" \relative { c'4^\startTextSpan c c c \stopTextSpan }
Dabei sollte beachtet werden, dass negative Werte das Objekt nach oben verschieben, anders als man erwarten könnte, weil der Wert
-1
oderDOWN
bedeutet, dass die Unterkante des Textes mit der Streckerlinie ausgerichtet wird. Ein Wert1
oderUP
richtet die Oberkante des Textes mit der Streckerlinie aus.arrow
Wenn diese Untereigenschaft auf
#t
gesetzt wird, wird ein Pfeilkopf am Ende der Linie erstellt.padding
Diese Eigenschaft kontrolliert den Abstand zwischen dem angegebenen Endpunkt der Linie und dem wirklichen Ende. Ohne Füllung (engl. padding) würde ein Glissando in der Mitte eines Notenkopfes beginnen und enden.
Die musikalische Funktion \endSpanners
beschließt
den Strecker, der an der direkt folgenden Note beginnt,
bevor er eigentlich zu ende wäre. Er wird exakt nach
einer Note beendet, oder am nächsten Taktstrich, wenn
to-barline
auf wahr gesetzt ist und eine Taktlinie
vor der nächsten Note erscheint.
\relative c'' { \endSpanners c2 \startTextSpan c2 c2 \endSpanners c2 \< c2 c2 }
Wenn man \endSpanners
benutzt, ist es nicht
nötig, den Befehl \startTextSpan mit \stopTextSpan
zu beenden, und es ist auch nicht nötig, Crescendo-Klammern
mit \!
zu beenden.
Siehe auch
Referenz der Interna: TextSpanner, Glissando, VoiceFollower, TrillSpanner, line-spanner-interface.
[ << Standardeinstellungen verändern ] | [Top][Contents][Index] | [ Notationsübersicht >> ] |
[ < Eigenschaften des Staff-Symbols ] | [ Up : Nützliche Konzepte und Eigenschaften ] | [ Sichtbarkeit von Objekten > ] |