4.4.3 Objetos fuera del pentagrama
Los objetos fuera-del-pentagrama se sitúan automáticamente para evitar las colisiones. Existen varias formas de sobreescribir la colocación automática si el posicionado no resulta óptimo.
La propiedad outside-staff-priority (prioridad fuera del pentagrama) | ||
La instrucción \textLengthOn | ||
Posicionamiento de los matices dinámicos | ||
Escalado de un «Grob» |
[ << Trucar la salida ] | [Arriba][Índice general][Índice][ ? ] | [ Plantillas >> ] | ||
[ < Objetos fuera del pentagrama ] | [ Subir : Objetos fuera del pentagrama ] | [ La instrucción textLengthOn > ] |
La propiedad outside-staff-priority
(prioridad fuera del pentagrama)
Los objetos fuera-del-pentagrama se colocan automáticamente para
evitar las colisiones. Los objetos que tienen el valor más bajo de la
propiedad outside-staff-priority
se sitúan más cerca del
pentagrama, y entonces otros objetos fuera-del-pentagrama se elevan
tanto como sea necesario para evitar la colisión. La prioridad
outside-staff-priority
se defina en el grob-interface
y
así es una propiedad de todos los objetos de presentación. De forma
predeterminada se establece a #f
para todos los objetos
dentro-del-pentagrama, y a un valor numérico adecuado a cada objeto
fuera-del-pentagrama cuando se crea el objeto. La tabla siguiente
presenta los valores numéricos predeterminados para algunos de los
objetos fuera-del-pentagrama más comunes.
Observe los nombres algo inusuales de algunos de los objetos: los
objetos de extensión se crean automáticamente para controlar el
posicionamiento vertical de los grobs que (quizá) comienzan y terminan
en distintos momentos musicales, de manera que cualquier modificación
a la prioridad outside-staff-priority
del grob subyacente no
tiene ningún efecto. Por ejemplo, cambiar la
outside-staff-priority
del objeto de regulador Hairpin
no tiene efecto sobre la posición vertical de los reguladores: en
lugar de eso, tenemos que cambiar la outside-staff-priority
del
objeto asociado DynamicLineSpanner
. Esta sobreescritura se
debe escribir al comienzo del objeto de extensión, que podría incluir
varios reguladores o matices dinámicos encadenados.
Objeto de presentación | Prioridad | Controla la posición de: |
---|---|---|
RehearsalMark | 1500 | Letras de ensayo |
MetronomeMark | 1000 | Indicaciones metronómicas |
VoltaBracketSpanner | 600 | Cajetines de primera y segunda vez |
TextScript | 450 | Texto en elementos de marcado |
MultiMeasureRestText | 450 | Texto sobre silencios de compás completo |
OttavaBracket | 400 | Corchetes de octava alta y baja |
TextSpanner | 350 | Objetos de extensión de texto |
DynamicLineSpanner | 250 | Todas las indicaciones dinámicas |
VoltaBracketSpanner | 100 | Números de compás |
TrillSpanner | 50 | Trinos mantenidos |
He aquí un ejemplo que muestra la situación predeterminada de algunos de ellos.
% Set details for later Text Spanner \override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } % Place dynamics above staff \dynamicUp % Start Ottava Bracket \ottava #1 c'4 \startTextSpan % Add Dynamic Text and hairpin c4\pp\< c4 % Add Text Script c4^Text | c4 c % Add Dynamic Text and terminate hairpin c4\ff c \stopTextSpan | % Stop Ottava Bracket \ottava #0 c,4 c c c |
Este ejemplo también muestra cómo crear textos con extensión (Text
Spanners): textos con líneas extensoras por encima de una sección de
música. El extensor abarca desde la instrucción \startTextSpan
hasta la instrucción \stopTextSpan
, y el formado del texto se
define por medio de la instrucción \override TextSpanner
. Para
ver más detalles, consulte
Extensiones de texto.
También muestra la manera de crear corchetes de octava alta y baja.
Si los valores predeterminados de outside-staff-priority
no le
ofrecen las colocaciones deseadas se puede sobreescribir la prioridad
de cualquiera de los objetos. Suponga que quisiéramos que el corchete
de octava estuviera situado por debajo del elemento extensor de texto
en el ejemplo de arriba. Todo lo que debemos hacer es localizar la
prioridad de OttavaBracket
en el RFI o en las tablas
anteriores, y reducirlo a un valor inferior al de TextSpanner
,
recordando que OttavaBracket
se crea dentro del contexto de
Staff
:
% Set details for later Text Spanner \override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } % Place dynamics above staff \dynamicUp % Place following Ottava Bracket below Text Spanners \once \override Staff.OttavaBracket.outside-staff-priority = #340 % Start Ottava Bracket \ottava #1 c'4 \startTextSpan % Add Dynamic Text c4\pp % Add Dynamic Line Spanner c4\< % Add Text Script c4^Text | c4 c % Add Dynamic Text c4\ff c \stopTextSpan | % Stop Ottava Bracket \ottava #0 c,4 c c c |
Observe que algunos de estos objetos, concretamente los números de
compás, las indicaciones metronómicas y las letras de ensayo, se
alojan de forma predeterminada dentro del contexto Score
; así
pues, debe asegurarse de que utiliza el contexto adecuado cuando se
sobreescriben sus propiedades.
De forma predeterminada, las ligaduras de expresión están clasificadas
como objetos dentro-del-pentagrama, pero con frecuencia aparecen
encima del pentagrama si las notas que une son muy agudas. Ello puede
empujar a una posición muy elevada a los objetos fuera-del-pentagrama
como las articulaciones, pues la ligadura se colocará en primer lugar.
La propiedad avoid-slur
de la articulación se puede establecer
al valor 'inside
(por dentro) para llevarla al interior de la
ligadura, pero la propiedad avoid-slur
es efectiva solamente si
la prioridad outside-staff-priority
está también ajustada al
valor #f
. De forma alternativa, la prioridad
outside-staff-priority
de la ligadura se puede fijar en un
valor numérico para hacer que se sitúe en línea con otros objetos
fuera del pentagrama de acuerdo con este valor. He aquí un ejemplo
que muestra el efecto de los dos métodos:
c4( c^\markup { \tiny \sharp } d4.) c8 | c4( \once \override TextScript.avoid-slur = #'inside \once \override TextScript.outside-staff-priority = ##f c4^\markup { \tiny \sharp } d4.) c8 | \once \override Slur.outside-staff-priority = #500 c4( c^\markup { \tiny \sharp } d4.) c8 |
Los cambios en outside-staff-priority
también se pueden emplear
para controlar la situación vertical de los objetos individuales,
aunque los resultados pueden no siempre ser deseables. Suponga que
quiere que “Text3” se sitúe por encima de “Text4” en el ejemplo
bajo el epígrafe Comportamiento Automático de más arriba (véase
Comportamiento automático). Todo lo que debemos hacer es localizar la
prioridad de TextScript
en el RFI o en las tablas de arriba, y
aumentar la prioridad de “Text3” hasta un valor superior:
c2^"Text1" c2^"Text2" | \once \override TextScript.outside-staff-priority = #500 c2^"Text3" c2^"Text4" |
Esto, ciertamente, eleva a “Text3” por encima de “Text4” pero
también lo eleva por encima de “Text2”, y “Text4” ahora se
desploma hacia abajo. Quizá no sea tan buena idea. ¿Y si lo que
realmente queremos hacer es posicionar todas las anotaciones a la
misma distancia por encima del pentagrama? Para hacerlo, vamos a
necesitar claramente espaciar las notas en sentido horizontal para
hacer sitio para el texto. Esto se hace empleando la instrucción
textLengthOn
.
La instrucción \textLengthOn
De forma predeterminada, el texto producido mediante marcado no ocupa
ningún espacio horizontal en cuanto se refiere a la disposición de la
música. La instrucción \textLengthOn
invierte este
comportamiento, ocasionando que las notas resulten tan espaciadas como
sea necesario para acomodar el texto:
\textLengthOn % Cause notes to space out to accommodate text c2^"Text1" c2^"Text2" | c2^"Text3" c2^"Text4" |
La instrucción para volver al comportamiento predeterminado es
\textLengthOff
. De forma alternativa, se puede usar
\once
con \textLengthOn
si el efecto se ha de limitar a
un solo momento musical.
The corresponding spacing behavior for rehearsal marks and tempo
indications is independently controlled with the commands
\markLengthOn
and \markLengthOff
.
El texto de marcado también evita las notas que se proyectan por
encima del pentagrama. Si esto no es lo que deseamos, el
desplazamiento automático hacia arriba se puede desactivar mediante el
establecimiento de la prioridad a #f
. He aquí un ejemplo que
muestra cómo el texto de marcado interactúa con tales notas.
% This markup is short enough to fit without collision c2^"Tex" c'' | R1 | % This is too long to fit, so it is displaced upwards c,,2^"Text" c'' | R1 | % Turn off collision avoidance \once \override TextScript.outside-staff-priority = ##f c,,2^"Long Text " c'' | R1 | % Turn off collision avoidance \once \override TextScript.outside-staff-priority = ##f \textLengthOn % and turn on textLengthOn c,,2^"Long Text " % Spaces at end are honored c''2 |
[ << Trucar la salida ] | [Arriba][Índice general][Índice][ ? ] | [ Plantillas >> ] | ||
[ < La instrucción textLengthOn ] | [ Subir : Objetos fuera del pentagrama ] | [ Escalado de un «Grob» > ] |
Posicionamiento de los matices dinámicos
Las indicaciones de matiz dinámico normalmente se colocarán por debajo
del pentagrama, pero se pueden posicionar por encima con la
instrucción \dynamicUp
. Se situarán verticalmente respecto a la
nota a la que van adosadas, y flotarán por debajo (o por encima) de
todos los objetos dentro-del-pentagrama tales como ligaduras de fraseo
y números de compás. Esto puede ofrecer resultados bastante
aceptables, como muestra este ejemplo:
\clef "bass" \key aes \major \time 9/8 \dynamicUp bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! | ees,2.~\)\mf ees4 r8 |
Sin embargo, si las notas y sus indicaciones dinámicas adosadas están muy cerca, la colocación automática evitará las colisiones desplazando las marcas dinámicas posteriores más lejos, aunque este puede no ser el lugar óptimo, como muestra el siguiente ejemplo más bien artificial:
\dynamicUp a4\f b\mf a\mp b\p
Si se presentara una situación similar en música ‘real’, podría ser
preferible espaciar las notas un poco más entre sí, de forma que todas
las marcas dinámicas puedan caber a la misma distancia vertical desde
el pentagrama. Hemos sido capaces de hacer esto para el texto de
marcado utilizando la instrucción \textLengthOn
, pero no existe
una instrucción equivalente para las indicaciones de matiz dinámico.
Por tanto, tendremos que averiguar cómo hacerlo utilizando
instrucciones \override
.
[ << Trucar la salida ] | [Arriba][Índice general][Índice][ ? ] | [ Plantillas >> ] | ||
[ < Posicionamiento de los matices dinámicos ] | [ Subir : Objetos fuera del pentagrama ] | [ Espaciado vertical > ] |
Escalado de un «Grob»
En primer lugar debemos aprender cómo se especifica el tamaño de los
grobs. Todos los grobs tienen un punto de referencia definido dentro
de ellos que se usa para colocarlos respecto a su objeto padre.
Entonces, este punto del grob se posiciona a una distancia horizontal,
X-offset
, y una distancia vertical, Y-offset
, a partir
de su padre. La dimensión horizontal del objeto viene dada por una
pareja de números, X-extent
, que dice dónde están los límites
izquierdo y derecho respecto del punto de referencia. La amplitud
vertical se define de forma similar mediante una pareja de números,
Y-extent
. Éstas son propiedades de todos los grobs que
contemplan el grob-interface
.
De forma predeterminada, los objetos fuera-del-pentagrama reciben
una anchura cero, de manera que pueden solaparse en la dirección
horizontal. Esto se hace mediante el truco de hacer que la
dimensión más a la izquierda sea igual a infinito y que la
dimensión más a la derecha sea igual a menos infinito,
estableciendo el valor de extra-spacing-width
a
'(+inf.0 . -inf.0)
. Así, para asegurar que no se
superponen en la dirección horizontal tendremos que sobreescribir
este valor de extra-spacing-width
para darles un poco de
espacio adicional. Las unidades son el espacio entre dos líneas
del pentagrama, de forma que debería bastar mover el límite
izquierdo media unidad a la izquierda y el límite derecho media
unidad a la derecha:
\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
Veamos si funciona en nuestro ejemplo anterior:
\dynamicUp % Extend width by 1 staff space \override DynamicText.extra-spacing-width = #'(-0.5 . 0.5) a4\f b\mf a\mp b\p
Esto tiene un mejor aspecto, pero quizá habríamos preferido que
las indicaciones de dinámica estuvieran alineadas sobre la misma
línea de base en lugar de ir hacia arriba y hacia abajo con las
notas. La propiedad que lo hace es staff-padding
(relleno
de pentagrama) que se estudia en la sección dedicada a las
colisiones (véase Colisiones de objetos).
[ << Trucar la salida ] | [Arriba][Índice general][Índice][ ? ] | [ Plantillas >> ] | ||
[ < Posicionamiento de los matices dinámicos ] | [ Subir : Objetos fuera del pentagrama ] | [ Espaciado vertical > ] |
Otros idiomas: English, česky, deutsch, français, italiano, 日本語, nederlands.
Acerca de la selección automática del idioma.