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.


Uso del spanner-interface

Este interface proporciona dos propiedades que se aplican a varios extensores.

La propiedad minimum-length (longitud mínima)

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'

[image of music]

\relative \compressMMRests {
  a'1
  R1*23
  % increase the length of the rest bar
  \once \override MultiMeasureRest.minimum-length = #20
  R1*23
  a1
}

[image of music]

\relative {
  a' \< a a a \!
  % increase the length of the hairpin
  \override Hairpin.minimum-length = #20
  a \< a a a \!
}

[image of music]

Esta sobreescritura se puede usar también para aumentar la longitud de las ligaduras de expresión y de fraseo:

\relative {
  a'( g)
  a
  -\tweak minimum-length #5
  ( g)

  a\( g\)
  a
  -\tweak minimum-length #5
  \( g\)
}

[image of music]

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''

[image of music]

Lo mismo se puede decir del objeto Beam:

% 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'

[image of music]

La propiedad to-barline

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:

\relative {
  a' \< a a a a \! a a a \break
  \override Hairpin.to-barline = ##f
  a \< a a a a \! a a a
}

[image of music]

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.


Uso del line-spanner-interface

Entre los objetos que contemplan el interface line-spanner-interface se encuentran

La rutina responsable de dibujar los sellos de estos extensores es ly:line-spanner::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:

e''2 \glissando b'
\once \override Glissando.bound-details.left.Y = #3
\once \override Glissando.bound-details.right.Y = #-2
e''2 \glissando b'

[image of music]

Las unidades para la propiedad Y son staff-spaces, 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
c''1 \glissando \break
f''1

[image of music]

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-spaces 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 (o LEFT, 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 }
\relative { c''2\startTextSpan b c a\stopTextSpan }

[image of music]

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 e Y. Si se fijan stencil-align-dir-y o stencil-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"

\relative { c'4^\startTextSpan c c c \stopTextSpan }

[image of music]

Observe que los valores negativos mueven el texto hacia arriba, al contrario de lo que podría esperarse, pues el valor de -1 o DOWN (abajo) significa alinear el borde inferior del texto con la línea de extensión. Un valor de 1 o UP (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.

\relative c'' {
  \endSpanners
  c2 \startTextSpan c2 c2
  \endSpanners
  c2 \< c2 c2
}

[image of music]

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.


LilyPond — Referencia de la notación v2.24.4 (rama estable).