| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Horizontal spacing
| 4.5.1 Panorámica del espaciado horizontal | ||
| 4.5.2 Sección de espaciado nueva | ||
| 4.5.3 Cambiar el espaciado horizontal | ||
| 4.5.4 Longitud de la línea | ||
| 4.5.5 Notación proporcional |
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Horizontal spacing overview
El motor de espaciado traduce las diferencias en las duraciones a
distancias ampliables (‘muelles’) de distintas longitudes. Las
duraciones más largas reciben un espacio mayor y las duraciones
más cortas reciben menos. Las duraciones más breves reciben un
espacio de tamaño fijo (que se controla mediante
shortest-duration-space en el objeto
(internals)SpacingSpanner sección ‘SpacingSpanner’ en Referencia de Funcionamiento Interno). Cuanto más larga es la duración,
más espacio recibe: al doblar una duración se suma
spacing-increment al espacio que ocupa la nota.
Por ejemplo, la pieza siguiente contiene numerosas blancas, negras y corcheas; la corchea va seguida de un ancho de cabeza de blanca (ACB). La negra va seguida de 2 ACB, la blanca por 3 ACB, etc.
\relative c' { c2 c4. c8 c4. c8 c4. c8 c8 c c4 c c }
Normalmente, el valor de spacing-increment está establecido
en 1.2 espacios de pentagrama, lo que es aproximadamente el ancho
de una cabeza, y shortest-duration-space está establecido
en 2.0, lo que significa que la nota más breve recibe 2.4 espacios
de pentagrama (2.0 multiplicado por el spacing-increment)
de espacio horizontal. Este espacio se cuenta a partir del borde
izquierdo del símbolo, de manera que las notas más breves van
seguidas generalmente por un espacio de 1 ACB.
Si siguiésemos el procedimiento anterior exactamente, entonces la adición de una sola fusa a una partitura que usa corcheas y semicorcheas, aumentaría enormemente la anchura de la partitura completa. La nota más breve ya no es la semicorchea, sino la fusa, añadiendo así 1 ACB a cada una de las notas. Para evitarlo, la duración más breve a efectos de espaciado no es la nota más breve de la partitura, sino la que ocurre con más frecuencia.
La duración más breve que es más común se determina de la
siguiente manera: en cada compás se determina la duración más
breve. La menor duración más común se toma como base para el
espaciado, habiendo estipulado que esta duración menor siempre
debe ser igual o menor que una corchea. La duración más breve se
imprime cuando se ejecuta lilypond con la opción
‘--verbose’.
Estas duraciones también se pueden personalizar. Si establecemos
la common-shortest-duration en
(internals)SpacingSpanner sección ‘SpacingSpanner’ en Referencia de Funcionamiento Interno,
entonces éste establece la duración base para el espaciado. La
duración máxima para esta base (normalmente una corchea), se fija
a través de base-shortest-duration.
Las notas que son aún más breves que la nota común más breve van seguidas por un espacio proporcional a su duración en relación con la nota común más breve. Así pues, si fuésemos a añadir tan sólo algunas semicorcheas al ejemplo anterior, irían seguidas por medio ACB:
\relative { c''2 c4. c8 | c4. c16[ c] c4. c8 | c8 c c4 c c }
Como se explicó en el Ensayo sobre grabado musical
automatizado, las direcciones de las plicas influyen en el
espaciado (véase
(essay)Espaciado óptico sección ‘Espaciado óptico’ en Ensayo) y se puede ajustar con
la propiedad stem-spacing-correction del objeto
(internals)NoteSpacing sección ‘NoteSpacing’ en Referencia de Funcionamiento Interno. Estos se generan para cada uno de los
contextos de
(internals)Voice sección ‘Voice’ en Referencia de Funcionamiento Interno.
El objeto StaffSpacing (generado en el contexto de
(internals)Staff sección ‘Staff’ en Referencia de Funcionamiento Interno) contiene la misma propiedad para controlar el
espaciado de las líneas de plica o divisorias.
El ejemplo siguiente muestra estas correcciones, una vez con los valores predeterminados y otra con un ajuste exagerado:
Está contemplada la notación proporcional; consulte Notación proporcional.
Ensayo sobre grabado musical automatizado: (essay)Espaciado óptico sección ‘Espaciado óptico’ en Ensayo.
Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.
Referencia de funcionamiento interno: (internals)SpacingSpanner sección ‘SpacingSpanner’ en Referencia de Funcionamiento Interno, (internals)NoteSpacing sección ‘NoteSpacing’ en Referencia de Funcionamiento Interno, (internals)StaffSpacing sección ‘StaffSpacing’ en Referencia de Funcionamiento Interno, (internals)NonMusicalPaperColumn sección ‘NonMusicalPaperColumn’ en Referencia de Funcionamiento Interno.
No existe ningún mecanismo conveniente para sobreescribir el espaciado manualmente. Se puede usar el siguiente rodeo para insertar espacio adicional en una partitura, ajustando el valor del relleno en la medida necesaria.
\override Score.NonMusicalPaperColumn.padding = #10 |
No existe ningún rodeo para disminuir la magnitud de la separación.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof New spacing section
Se pueden iniciar secciones nuevas con diferentes parámetros de
espaciado, con la instrucción newSpacingSection. Esto es
útil para las secciones que tienen distinta noción de las notas
‘largas’ y ‘cortas’. La instrucción \newSpacingSection
crea un nuevo objeto SpacingSpanner en ese momento musical.
En el ejemplo siguiente, el cambio de compás introduce una sección nueva, y por ello las semicorcheas se separan automáticamente de manera ligeramente más amplia.
\relative c' { \time 2/4 c4 c8 c c8 c c4 c16[ c c8] c4 \newSpacingSection \time 4/16 c16[ c c8] }
Si los ajustes de espaciado automáticos no dan el espaciado
deseado, pueden aplicarse sobreescrituras manuales a sus
propiedades con \override. Las sobreescrituras se deben
aplicar en el mismo momento musical que la propia instrucción
\newSpacingSection y afectarán entonces al espaciado de
toda la música que venga a continuación hasta que las propiedades
se cambien en una nueva sección de espaciado, por ejemplo:
\relative c' { \time 4/16 c16[ c c8] \newSpacingSection \override Score.SpacingSpanner.spacing-increment = #2 c16[ c c8] \newSpacingSection \revert Score.SpacingSpanner.spacing-increment c16[ c c8] }
Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.
Referencia de funcionamiento interno: (internals)SpacingSpanner sección ‘SpacingSpanner’ en Referencia de Funcionamiento Interno.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Changing horizontal spacing
| Estiramiento uniforme de los grupos especiales | ||
| Espaciado estricto de las notas |
Se puede alterar el espaciado horizontal con la propiedad
base-shortest-duration. Aquí compararemos la misma música,
una vez sin alterar la propiedad, y luego alterándola. Los
valores mayores de ly:make-moment producen música más
pequeña. Observe que ly:make-moment construye una
duración, por lo que 1 4 es una duración mayor que 1
16.
\score {
\relative {
g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
}
}
|
\score {
\relative {
g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
}
\layout {
\context {
\Score
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
}
}
}
|
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Uniform stretching of tuplets
De forma predeterminada, el espaciado en los grupos de valoración
especial depende de varios factores ajenos a la duración (como
alteraciones, cambios de clave, etc.). Para pasar por alto estos
símbolos y forzar un espaciado de duraciones iguales uniforme, use
Score.SpacingSpanner.uniform-stretching. Esta propiedad
sólo puede cambiarse al principio de la partitura:
\score { << \new Staff \relative c' { \tuplet 5/4 { c8 c c c c } c8 c c c } \new Staff \relative c' { c8 c c c \tuplet 5/4 { c8 c c c c } } >> \layout { \context { \Score \override SpacingSpanner.uniform-stretching = ##t } } }
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Strict note spacing
Cuando se establece strict-note-spacing, las notas se
separan sin tener en cuenta las claves, líneas divisorias ni notas
de adorno:
\override Score.SpacingSpanner.strict-note-spacing = ##t \new Staff \relative { c''8[ c \clef alto c \grace { c16 c } c8 c c] c32[ c] }
Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Line width
Los ajustes más básicos que influyen en el espaciado son
indent y line-width. Se definen en el bloque
\layout. Controlan el sangrado de la primera línea de
música y la longitud de las líneas.
Si se fija un valor verdadero para ragged-right en el
bloque \layout, entonces los sistemas terminan en su
longitud horizontal natural, en lugar de repartirse
horizontalmente hasta llenar toda la línea. Esto es útil para
fragmentos cortos, y para comprobar qué tan apretado es el
espaciado natural. El valor normal predeterminado es falso, pero
si la partitura tiene un solo sistema, el valor predeterminado es
verdadero.
La opción ragged-last es similar a ragged-right,
pero afecta sólo a la última línea de la pieza. No se efectúa
ninguna restricción sobre dicha línea. El resultado es similar al
formateo de los párrafos de texto. En un párrafo, la última línea
sencillamente ocupa su longitud horizontal natural.
\layout {
indent = #0
line-width = #150
ragged-last = ##t
}
|
Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Proportional notation
LilyPond contempla la notación proporcional, un tipo de espaciado horizontal en el que cada nota consume una medida horizontal que equivale exactamente a su duración rítmica. Este tipo de espaciado proporcional es comparable al espaciado horizontal hecho sobre un papel milimetrado. Ciertas partituras del finales del s.XX y principios del s.XXI utilizan notación proporcional para clarificar relaciones rítmicas complejas o para facilitar la colocación de líneas cronométricas u otros gráficos directamente en la partitura.
LilyPond contempla cinco ajustes distintos para la notación proporcional, que se pueden usar solos o combinados:
proportionalNotationDuration
uniform-stretching
strict-note-spacing
\remove "Separating_line_group_engraver"
\override PaperColumn.used = ##t
En los ejemplos que siguen, exploramos el uso de estos cinco ajustes de la notación proporcional y examinamos la forma en que interactúan.
Comenzamos con el siguiente ejemplo de un solo compás, que usa un espaciado clásico sin justificación por la derecha.
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> }
Observe que la blanca que inicia el compás ocupa mucho menos de la mitad de todo el espacio horizontal del compás. De forma similar, las semicorcheas y el cinquillo de semicorcheas con que finaliza el compás ocupan en conjunto mucho más de la mitad de todo el espacio horizontal del compás.
En el grabado clásico, este espaciado puede ser exactamente el que deseamos porque podemos tomar prestado el espacio horizontal de la blanca y conservar el espacio horizontal a lo largo del compás como un todo.
Por otro lado, si queremos insertar una línea de tiempo graduada o
algún otro gráfico encima o debajo de la partitura, necesitamos la
notación proporcional. Se activa la notación proporcional con el
ajuste proportionalNotationDuration.
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/20) } } }
La blanca al principio del compás y las notas rápidas de la segunda mitad del compás ocupan ahora cantidades iguales de espacio horizontal. Podríamos colocar una línea de tiempo graduada o un gráfico encima o debajo de este ejemplo.
El ajuste proportionalNotationDuration es un ajuste de
contexto que reside en Score. Recordemos que los ajustes
de contexto aparecen en uno de tres posibles lugares del archivo
de entrada: en un bloque \with, en un bloque
\context, o directamente entre la música precedido por la
instrucción \set. Como con todos los ajustes de contexto,
el usuario puede elegir en cuál de los tres lugares diferentes
prefiere establecer el valor de
proportionalNotationDuration.
El ajuste proportionalNotationDuration acepta un solo
argumento, que es la duración de referencia contra el que se
aplica el espaciado de toda la música. La función Scheme de
LilyPond make-moment acepta dos argumentos: un numerador y
un denominador que, juntos, expresan una cierta fracción de
redonda. La llamada (ly:make-moment 1/20), por tanto,
produce una duración de referencia de una nota de un veinteavo de
redonda (semicorcheas de cinquillo). Son también posibles valores
como (ly:make-moment 1/16), (ly:make-moment 1/8) y
(ly:make-moment 3/97).
¿Cómo seleccionamos la duración correcta de referencia para
pasarla a proportionalNotationDuration? Normalmente
mediante un proceso de ensayo y error, comenzando con una duración
cercana a la más rápida (o más breve) duración de la pieza. Las
duraciones de referencia más pequeñas aplican un espaciado más
suelto; las duraciones de referencia más largas aplican un
espaciado más apretado.
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/8) } } } \score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/16) } } } \score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/32) } } }
Observe que una duración de referencia demasiado grande (como la corchea, en el ejemplo de arriba) produce un espaciado excesivamente apretado y puede ser causa de colisiones entre las cabezas de nota. Observe también que la notación proporcional en general ocupa más espacio horizontal que el espaciado clásico. El espaciado proporcional aporta claridad rítmica a expensas del espacio horizontal.
Ahora veremos cómo espaciar de forma óptima grupos de valoración especial que se superponen.
Empezamos por examinar qué le ocurre a nuestro ejemplo original, con espaciado clásico, cuando añadimos un segundo pentagrama con un tipo diferente de grupo especial.
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } \new RhythmicStaff { \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 } } >> }
El espaciado es defectuoso porque las notas regularmente
espaciadas del pentagrama inferior no se amplían de manera
uniforme. Los grabados clásicos incluyen muy pocos tresillos
complejos y así las reglas del grabado clásico pueden generar este
tipo de resultado. El establecimiento de
proportionalNotationDuration lo soluciona.
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } \new RhythmicStaff { \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/20) } } }
Pero si observamos con mucho cuidado podremos ver que las notas de
la segunda mitad del 9-illo están espaciadas de forma ligeramente
más ancha que las de la primera mitad del 9-illo. Para asegurar
una ampliación uniforme, activamos uniform-stretching, que
es una propiedad de SpacingSpanner.
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } \new RhythmicStaff { \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/20) \override SpacingSpanner.uniform-stretching = ##t } } }
Nuestro ejemplo de dos pentagramas ahora está espaciado exactamente, nuestras relaciones rítmicas son visualmente claras, y podemos incluir una línea de tiempo graduada o un gráfico, si queremos.
Observe que el paquete de notación proporcional de LilyPond espera
que todas las partituras proporcionales establezcan el atributo
uniform-stretching de SpacingSpanner al valor ##t.
El establecimiento de proportionalNotationDuration sin
ajustar también el atributo uniform-stretching de
SpacingSpanner al valor ##t causará, por ejemplo, que los
desplazamientos (skips) consuman una cantidad de espacio
horizontal incorrecta.
El SpacingSpanner es un grob abstracto que reside en el
contexto de Score. Como con nuestros ajustes de
proportionalNotationDuration, las sobreescrituras al
SpacingSpanner sólo pueden ocurrir en uno de estos tres
lugares dentro del archivo de entrada: en el bloque \with,
en el bloque \context o directamente dentro de la escritura
de notas.
De manera predeterminada, sólo hay un SpacingSpanner por
Score. Esto supone que, por omisión,
uniform-stretching está activado para la partitura completa
o desactivado para la partitura completa. Sin embargo, podemos
sobreescribir este comportamiento y activar distintas
posibilidades de espaciado en distintos lugares de la partitura.
Lo hacemos con la instrucción \newSpacingSection. Consulte
Sección de espaciado nueva para más información.
A continuación examinamos los efectos del grabador
Separating_line_group_engraver y veremos por qué las
partituras proporcionales con frecuencia eliminan este grabador.
El ejemplo siguiente muestra que hay una pequeña cantidad de
espacio “preliminar” justo antes de la primera nota de cada
sistema.
\paper { indent = #0 } \new Staff { c'1 \break c'1 }
Esta cantidad de espacio preliminar es la misma ya sea después de
una indicación de compás, una armadura o una clave. El grabador
Separating_line_group_engraver es responsable de este
espacio. La eliminación de Separating_line_group_engraver
reduce este espacio a cero.
\paper { indent = #0 } \new Staff \with { \remove "Separating_line_group_engraver" } { c'1 \break c'1 }
Los elementos no musicales como la indicación de compás, la armadura, la clave y las alteraciones son problemáticos en notación proporcional. Ninguno de estos elementos tiene duración rítmica. Pero todos ellos consumen espacio horizontal. Las distintas partituras proporcionales abordan este problema de distinta manera.
Sería posible evitar los problemas de espaciado con las armaduras, simplemente evitando tenerlas. Esta es una opción válida pues casi todas las partituras proporcionales son música contemporánea. Lo mismo puede valer para las indicaciones de compás, especialmente para las partituras que incluyen una línea de tiempo graduada u otro gráfico. Pero estas partituras son excepcionales y casi todas las partituras proporcionales incluyen al menos unas pocas indicaciones de compás. Las claves y las alteraciones son aún más esenciales.
Así pues ¿qué estrategias existen para el espaciado de los
elementos no musicales en un contexto proporcional? Una buena
opción es la propiedad strict-note-spacing de
SpacingSpanner. Compare las dos partituras siguientes:
\new Staff { \set Score.proportionalNotationDuration = #(ly:make-moment 1/16) c''8 8 8 \clef alto d'2 2 } \new Staff { \set Score.proportionalNotationDuration = #(ly:make-moment 1/16) \override Score.SpacingSpanner.strict-note-spacing = ##t c''8 8 8 \clef alto d'2 2 }
Las dos partituras son proporcionales, pero el espaciado de la
primera es muy suelto a causa del cambio de clave. Sin embargo, el
espaciado de la segunda partitura se mantiene estricto, porque
strict-note-spacing está activado. La activación de
strict-note-spacing hace que el ancho de las indicaciones
de compás, armaduras, cambios de clave y alteraciones no tomen
parte en el algoritmo de espaciado.
Además de los ajustes dados aquí, hay otros que aparecen con frecuencia en las partituras proporcionales. Entre ellos están:
\override SpacingSpanner.strict-grace-spacing = ##t
\set tupletFullLength = ##t
\override Beam.breakable = ##t
\override Glissando.breakable = ##t
\override TextSpanner.breakable = ##t
\remove "Forbid_line_break_engraver" in the Voice context
Estos ajustes dan a las notas de adorno un espaciado estricto, extienden los corchetes de grupo especial para que marquen tanto los puntos de comienzo como de final, y permiten que los elementos de extensión se dividan entre los sistemas y las páginas. Consulte las partes respectivas del manual para ver estos ajustes relacionados.
Referencia de la notación: Sección de espaciado nueva.
Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] |
Este documento ha sido generado por gub el el 13 julio 2020 utilizando texi2html 1.82.
Otros idiomas: English, català, deutsch, français, italiano, 日本語.
Acerca de la selección automática del idioma.