5.4.6 Objetos de extensión
Muchos objetos de notación musical abarcan varias notas o incluso varios compases. Son ejemplos los crescendi, trinos, corchetes de grupo especial y corchetes de primera y segunda vez. Estos objetos se llaman “spanners” u «objetos de extensión», y tienen propiedades especiales para controlar su apariencia y comportamiento. Algunas de estas propiedades son comunes a todos los objetos de extensión; otras se limitan a un subconjunto de los extensores.
Todos los objetos de extensión contemplan el interface
spanner-interface
. Algunos, básicamente aquellos que trazan
una línea recta entre los dos objetos, contemplan también el interface
line-spanner-interface
.
[ << Cambiar los valores por omisión ] | [Arriba][Índice general][Índice][ ? ] | [ Tablas del manual sobre notación >> ] | ||
[ < Objetos de extensión ] | [ Subir : Objetos de extensión ] | [ > ] |
Uso del spanner-interface
Este interface proporciona dos propiedades que se aplican a varios extensores.
La propiedad minimum-length
La longitud mínima del objeto de extensión se especifica a través de
la propiedad minimum-length
. Su aumento suele producir el
efecto necesario de aumentar el espaciado de las notas entre los dos
puntos extremos. Sin embargo, esta sobreescritura no tiene ningún
efecto sobre muchos extensores, pues su longitud está determinada por
otras consideraciones. Más abajo se muestran algunos ejemplos de
dónde es efectiva.
a~a a % increase the length of the tie -\tweak #'minimum-length #5 ~a
a1 \compressFullBarRests 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 \!
Esta sobreescritura se puede usar también para aumentar la longitud de las ligaduras de expresión y de fraseo:
a( a) a -\tweak #'minimum-length #5 ( a) a\( a\) a -\tweak #'minimum-length #5 \( a\)
Para algunos objetos de presentación, la propiedad
minimum-length
es efectiva sólo si se llama explícitamente al
procedimiento set-spacing-rods
. Para hacerlo, se debe fijar la
propiedad springs-and-rods
al valor
ly:spanner::set-spacing-rods
. Por ejemplo, la longitud mínima
de un glissando no tiene efecto a no ser que se establezca la
propiedad springs-and-rods
:
% 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'
Lo mismo se puede decir del objeto Beam
:
% not effective alone \once \override Beam #'minimum-length = #20 e8 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 e8 e e e
The to-barline
property
La segunda propiedad útil del spanner-interface
es
to-barline
. De forma predeterminada tiene el valor cierto,
haciendo que los reguladores y otros objetos de extensión que terminan
sobre la primera nota de un compás, en vez de eso terminen en la línea
divisoria inmediatamente precedente. Si se establece al valor falso,
el extensor llegará más allá de la barra de compás y terminará
exactamente sobre la nota:
a \< a a a a \! a a a \break \override Hairpin #'to-barline = ##f a \< a a a a \! a a a
Esta propiedad no es efectiva para todos los extensores. Por ejemplo,
su establecimiento a #t
no tienen ningún efecto sobre las
ligaduras de expresión o de fraseo, o sobre otros extensores para los
que terminar en la barra de compás no tendría ningún significado.
[ << Cambiar los valores por omisión ] | [Arriba][Índice general][Índice][ ? ] | [ Tablas del manual sobre notación >> ] | ||
[ < ] | [ Subir : Objetos de extensión ] | [ Visibilidad de los objetos > ] |
Uso del line-spanner-interface
Entre los objetos que contemplan el interface
line-spanner-interface
se encuentran
-
DynamicTextSpanner
-
Glissando
-
TextSpanner
-
TrillSpanner
-
VoiceFollower
La rutina responsable de dibujar los sellos de estos extensores es
ly:line-interface::print
. esta rutina determina la
localización exacta de los dos puntos extremos y traza una línea entre
ellos, en el estilo solicitado. Las posiciones de los dos puntos
extremos del extensor se calculan al vuelo, pero es posible
sobreescribir sus coordenadas Y. Las propiedades que se deben
especificar están anidadas a dos niveles de profundidad en la
jerarquía de propiedades, pero la sintaxis de la instrucción
\override
es bastante sencilla:
e2 \glissando b \once \override Glissando #'(bound-details left Y) = #3 \once \override Glissando #'(bound-details right Y) = #-2 e2 \glissando b
Las unidades para la propiedad Y
son staff-space
s,
siendo el punto del cero la línea central del pentagrama. Para el
glissando, esto es el valor de Y
en la coordenada X que
corresponde al punto central de cada cabeza de nota si nos imaginamos
que la línea se extiende hasta allí.
Si no está fijado Y
, su valor se calcula a partir de la
posición vertical del punto de anclaje correspondiente del extensor.
En caso de salto de línea, los valores para los puntos extremos se
especifican por las sub-listas left-broken
y
right-broken
de bound-details
. Por ejemplo:
\override Glissando #'breakable = ##t \override Glissando #'(bound-details right-broken Y) = #-3 c1 \glissando \break f1
Un número de propiedades adicionales de las sub-listas left
y
right
de la propiedad bound-details
se pueden
especificar de la misma forma que Y
:
-
Y
Establece la coordenada Y del punto extremo, en desplazamientos de
staff-space
s desde la línea central del pentagrama. De forma predeterminada es el centro del objeto ancla, y así un glissando apunta al centro vertical de la cabeza de la nota.Para extensores horizontales como los extensores de texto y los trinos, está inamoviblemente codificado como 0.
-
attach-dir (dirección de anclaje)
Determina dónde comienza y termina la línea en la dirección X, con relación al objeto ancla. Sí, un valor de
-1
(oLEFT
, izquierda) hace que la línea comience o termine en el lado izquierdo de la cabeza de la nota a la que está anclado.-
X
Es la coordenada X absoluta del punto extremo. Se suele calcular al vuelo, y su sobreescritura no tiene un efecto útil.
-
stencil (sello)
Los extensores de línea pueden tener símbolos al comienzo o al final, lo que está contenido en esta sub-propiedad. Esto es para uso interno; se recomienda en su lugar el uso de
text
.-
text (texto)
Es un elemento de marcado que se evalúa para dar lugar al sello. Se usa para escribir cresc., tr y otros textos sobre los objetos de extensión horizontales.
\override TextSpanner #'(bound-details left text) = \markup { \small \bold Slower } c2\startTextSpan b c a\stopTextSpan
-
stencil-align-dir-y (alineación del sello en y)
-
stencil-offset (desplazamiento del sello)
Si no se modifican uno u otro, el sello se coloca sencillamente en el punto extremo, centrado sobre la línea, como viene definido por las subpropiedades
X
eY
. Si se fijanstencil-align-dir-y
ostencil-offset
se moverá el símbolo del borde verticalmente con relación al extremo de la línea:\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" c4^\startTextSpan c c c \stopTextSpan
Observe que los valores negativos mueven el texto hacia arriba, al contrario de lo que podría esperarse, pues el valor de
-1
oDOWN
(abajo) significa alinear el borde inferior del texto con la línea de extensión. Un valor de1
oUP
(arriba) alinea el borde superior del texto con la línea extensora.-
arrow (flecha)
Al establecer esta sub-propiedad a
#t
se produce una punta de flecha en el extremo de la línea.-
padding (relleno)
Esta sub-propiedad controla el espacio entre el punto extremo especificado de la línea y el extremo real. Sin relleno, un glissando empezaría y terminaría en el centro de la cabeza de las notas.
La función musical \endSpanners
finaliza de forma prematura el
extensor que comienza sobre la nota que sigue inmediatamente a
continuación. Se termina después de una nota exactamente, o en la
siguiente barra de compás si to-barline
es verdadero y se
produce una divisoria antes de la siguiente nota.
\endSpanners c2 \startTextSpan c2 c2 \endSpanners c2 \< c2 c2
Si se usa \endSpanners
no es necesario cerrar \startTextSpan
con \stopTextSpan, ni cerrar los reguladores con \!
.
Véase también
Referencia de funcionamiento interno: TextSpanner, Glissando, VoiceFollower, TrillSpanner, line-spanner-interface.
[ << Cambiar los valores por omisión ] | [Arriba][Índice general][Índice][ ? ] | [ Tablas del manual sobre notación >> ] | ||
[ < ] | [ Subir : Objetos de extensión ] | [ Visibilidad de los objetos > ] |