[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

4.5 Espaciado horizontal

@translationof Horizontal spacing


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

4.5.1 Panorámica del espaciado horizontal

@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
}

[image of music]

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 }

[image of music]

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:

[image of music]

Está contemplada la notación proporcional; consulte Notación proporcional.

Véase también

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.

Advertencias y problemas conocidos

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] [ ? ]

4.5.2 Sección de espaciado nueva

@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]
}

[image of music]

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]
}

[image of music]

Véase también

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] [ ? ]

4.5.3 Cambiar el espaciado horizontal

@translationof Changing horizontal spacing

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

[image of music]

 
\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)
    }
  }
}

[image of music]


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

Estiramiento uniforme de los grupos especiales

@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
    }
  }
}

[image of music]


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

Espaciado estricto de las notas

@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] }

[image of music]

Véase también

Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

4.5.4 Longitud de la línea

@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
}

Véase también

Fragmentos de código: (snippets)Spacing sección ‘Spacing’ en Fragmentos de código.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

4.5.5 Notación proporcional

@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:

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

[image of music]

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)
    }
  }
}

[image of music]

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)
    }
  }
}

[image of music]

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

[image of music]

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)
    }
  }
}

[image of music]

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

[image of music]

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
}

[image of music]

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
}

[image of music]

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
}

[image of music]

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:

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.

Véase también

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.