5.4.6 Objectes d’extensió
Molts objectes de notació musical abasten diverses notes o fins i tot diversos compassos. Són exemples els crescendi, trins, claus de grups especials i claus de primera i segona veu. Aquests objectes s’anomenen “spanners” o «objectes d’extensió», i tenen propietats especials per controlar la seva aparença i comportament. Algunes d’aquestes propietats són comunes a tots els objectes d’extensió; d’altres es limiten a un subconjunt dels extensors.
Tots els objectes d’extensió donen suport a la interfície
spanner-interface
. Alguns, bàsicament aquells que tracen
una línia recta entre els dos objectes, donen suport també la
interfície line-spanner-interface
.
Ús de la spanner-interface | ||
Ús de la line-spanner-interface |
Ús de la spanner-interface
Aquesta interfície proporciona dues propietats que s’apliquen a diversos extensors.
La propietat minimum-length
(longitud mínima)
La longitud mínima de l’objecte d’extensió s’especifica a través
de la propietat minimum-length
. El seu augment sol produir
l’efecte necessari d’augmentar l’espaiat de les notes entre els
dos punts extrems. Malgrat això, aquesta sobreescriptura no té
cap efecte sobre molts extensors, atès que la seva longitud està
determinada per altres consideracions. Més a sota es mostren
exemples de a on és efectiva.
a'~ a' a' % incrementa la longitud de la lligadura d'unió -\tweak minimum-length #5 ~ a'
\relative \compressMMRests { a'1 R1*23 % incrementa la longitud del compàs d'espera \once \override MultiMeasureRest.minimum-length = #20 R1*23 a1 }
\relative { a' \< a a a \! % incrementa la longitud de les marques expressives \override Hairpin.minimum-length = #20 a \< a a a \! }
Aquesta sobreescriptura es pot usar també per augmentar la longitud de les lligadures d’expressió i de fraseig:
\relative { a'( g) a -\tweak minimum-length #5 ( g) a\( g\) a -\tweak minimum-length #5 \( g\) }
Per alguns objectes de presentació, la propietat
minimum-length
és efectiva sols si es crida explícitament
al procediment set-spacing-rods
. Para fer-lo, s’ha de
fixar la propietat springs-and-rods
al valor
ly:spanner::set-spacing-rods
. Per exemple, la longitud
mínima d’un glissando no té efecte a no ser que s’estableixi la
propietat springs-and-rods
:
% default e' \glissando c'' % no és efectiu per si sol \once \override Glissando.minimum-length = #20 e' \glissando c'' % sols efectiu si estan presents els dos overrida \once \override Glissando.minimum-length = #20 \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods e' \glissando c''
El mateix es pot dir de l’objecte Beam
:
% no és efectiu per si sol \once \override Beam.minimum-length = #20 e'8 e' e' e' % sols efectiu si estan presents els dos overrida \once \override Beam.minimum-length = #20 \once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods e'8 e' e' e'
La propietat to-barline
La segona propietat útil del spanner-interface
és
to-barline
. De forma predeterminada té el valor CERT, fent
que els reguladors i altres objectes d’extensió que acaben sobre
la primera nota d’un compàs, en comptes d’això acabin a la línia
divisòria immediatament precedent. Si s’estableix al valor FALS,
l’extensor arribarà més enllà de la barra de compàs i acabarà
exactament sobre la nota:
\relative { a' \< a a a a \! a a a \break \override Hairpin.to-barline = ##f a \< a a a a \! a a a }
Aquesta propietat no és efectiva per tots els extensors. Per
exemple, el seu establiment a #t
no té cap efecte sobre les
lligadures d’expressió o de fraseig, o sobre altres extensors per
als que terminar a la barra de compàs no tindria cap significat.
Ús de la line-spanner-interface
Entre els objectes que donen suport a l’interfície
line-spanner-interface
es troben:
-
DynamicTextSpanner
-
Glissando
-
TextSpanner
-
TrillSpanner
-
VoiceFollower
La rutina responsable de dibuixar els segells d’aquests extensors és
ly:line-spanner::print
. Aquesta rutina determina la
localització exacta de les dues punts extrems i traça una línia
entre ells, a l’estil sol·licitat. Les posicions dels dos punts
extrems de l’extensor es calculen al vol, però és possible
sobreescriure les seves coordenades Y. Les propietats que s’ha
d’especificar estan niuades a deus nivells de profunditat a la
jerarquia de propietats, però la sintaxi de profunditat a la
jerarquia de propietats, però la sintaxi de l’ordre
\override
és força senzilla:
e''2 \glissando b' \once \override Glissando.bound-details.left.Y = #3 \once \override Glissando.bound-details.right.Y = #-2 e''2 \glissando b'
Les unitats per a la propietat Y
són els espais
staff-space
, sent el punt del zero la linia central del
pentagrama. Per al glissando, això és el valor de Y
a la
coordenada X que correspon al punt central de cada cap de nota si
ens imaginem que la línia s’estén fins aquí.
SI no està fixat Y
, els seu valor es calcula a partir de la
posició vertical del punt ancoratge corresponen ¡t de l’extensor.
En cas de salt de línia, els valors per als punts extrems
s’especifiquen per les sub-llistes left-broken
i
right-broken
de bound-details
. Per exemple:
\override Glissando.breakable = ##t \override Glissando.bound-details.right-broken.Y = #-3 c''1 \glissando \break f''1
Un nombre de propietats addicionals de les sub-llistes left
i right
de la propietat bound-details
es poden
especificar de la mateixa forma que Y
:
-
Y
Estableix la coordenada Y del punt extrem, en desplaçaments de espais
staff-space
des de la línia central del pentagrama. De forma predeterminada és el centre de l’objecte àncora, i així un glissando apunta al centre vertical del cap de la nota.Per extensors horitzontals com els extensors de text i els trins, està fixat a 0 sense possibilitat de canviar-lo.
-
attach-dir (direcció d'ancoratge)
Determina on comença i acaba la línia de la direcció X, amb relació a l’objecte àncora. Sí, un valor de
-1
(oLEFT
, esquerra) Fa que la línia comenci a acabi en cantó esquerre del cap de la nota a la que està ancorada.-
X
És la coordenada X absoluta del punt extrem. Se sol calcular al vol, i la seva sobreescriptura no té un efecte útil.
-
stencil (segell)
Els extensors de línia poden tenir símbols al començament o al final, i això està contingut a aquesta sub-propietat. Això és per a ús intern; es recomana enlloc d’això l’ús de
text
.-
text (texto)
És un element de marcatge que s’avalua per donar al lloc al segell. S’usa per escriure cresc., tr i altres textos sobre els objectes d’extensió horitzontals.
\override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } \relative { c''2\startTextSpan b c a\stopTextSpan }
-
stencil-align-dir-y (alineació del segell en y)
-
stencil-offset (desplaçament del segell)
Si no es modifiquen l’un o l’altre, el segell es col·loca senzillament al punt extrem, centrat sobre la línia, com ve definit per les sub-propietats
X
iY
. Si s’estableixenstencil-align-dir-y
ostencil-offset
es mourà el símbol de la vora verticalment amb relació a l’extrem de la línia:\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 }
Observeu que els valors negatius mouen el text cap amunt, al contrari del podria esperar-se, atès que el valor de
-1
oDOWN
(avall) significa alinear la vora inferior del text amb la línia d’extensió. Un valor de1
oUP
(amunt) alinea la vora superior del text amb la línia extensora.-
arrow (fletxa)
En establir aquesta sub-propietat a
#t
es produeix una punta de fletxa a l’extrem de la línia.-
padding (farcit)
Aquesta sub-propietat controla l’espai entre el punt extrem especificat de la línia i l’extrem real. Sense farcit, un glissando començaria i acabaria al centre del cap de les notes.
La funció musical \endSpanners
finalitza de forma prematura
l’extensor que comença sobre la nota que segueix immediatament a
continuació. S’acaba després d’una nota exactament, o en la
següent barra de compàs si to-barline
és vertader i es
produeix una divisòria abans de la nota següent.
\relative c'' { \endSpanners c2 \startTextSpan c2 c2 \endSpanners c2 \< c2 c2 }
Si s’usa \endSpanners
no cal tancar \startTextSpan amb
\stopTextSpan, ni tancar els reguladors amb \!
.
Vegeu també
Referència de funcionament intern: TextSpanner, Glissando, VoiceFollower, TrillSpanner, line-spanner-interface.