5.7.1 Mover objetos (Manual de aprendizaje de GNU LilyPond)

#### 5.7.1 Mover objetos

Aunque pueda sorprenderle, LilyPond no es perfecto. Ciertos elementos de notación se pueden superponer, lo que es una lástima, pero en realidad es bastante poco frecuente. Normalmente la necesidad de mover objetos es por claridad o razones estéticas: el aspecto es mejor con un poco más o un poco menos de espacio de separación.

Existen tres enfoques principales que llevan a la resolución de superposiciones en la notación. Se deben considerar en el siguiente orden:

1. La dirección de uno de los objetos que se superponen se puede cambiar usando las instrucciones predefinidas que se vieron anteriormente para los objetos dentro-del-pentagrama (véase Objetos interiores al pentagrama). Se pueden recolocar fácilmente las plicas, ligaduras de expresión y de unión, barras de corchea, indicaciones dinámicas, texto y grupos de valoración especial de esta forma. La limitación es que solo tiene la posibilidad de elegir entre dos posiciones, y podría ser que ninguna de ellas sea la adecuada.
2. Las propiedades del objeto, que LilyPond usa cuando está colocando los objetos de presentación, se pueden modificar usando la instrucción de sobreescritura `\override`. Las ventadas de hacer cambios a este tipo de propiedad son: a) que algún otro objeto se moverá automáticamente si es necesario, para dejarle sitio, y b) una única sobreescritura se puede aplicar a todas las instancias del mismo tipo de objeto. Entre tales propiedades se encuentran:
   - `direction` (dirección)

     Ya se ha estudiado con cierto detalle: see Objetos interiores al pentagrama.

   - `padding` (relleno), `right-padding` (relleno por la derecha), `staff-padding` (relleno de pentagrama)

     Según un objeto se está colocando, el valor de su propiedad de relleno `padding` especifica el espacio intermedio que se debe dejar entre él mismo y el límite más próximo del objeto contra el que se está colocando. Observe que es el valor de `padding` del objeto que se está colocando el que se usa; el valor de `padding` del objeto que ya está colocado se ignora. Los espacios intermedios especificados mediante `padding` se pueden aplicar a todos los objetos que contemplan la interfaz `side-position-interface`.

     En lugar de con `padding`, la colocación de los grupos de alteraciones se controla con `right-padding`. Esta propiedad se encuentra en el grob `AccidentalPlacement` que, observe, vive dentro del contexto de Staff. Durante el proceso tipográfico, las cabezas de las notas se componen tipográficamente en primer lugar, y después las alteraciones, si existen, se añaden a la izquierda de las cabezas utilizando la propiedad de relleno por la derecha `right-padding` para determinar la separación entre la alteración y la cabeza, y de las alteraciones entre sí. Así pues, solo la propiedad de relleno por la derecha `right-padding` del objeto `AccidentalPlacement` tiene efecto sobre la colocación de las alteraciones.

     La propiedad `staff-padding` está estrechamente relacionada con la propiedad `padding`: `padding` controla la separación mínima entre cualquier objeto que contemple la interfaz `side-position-interface` y el objeto más cercano (generalmente la nota o las líneas del pentagrama); `staff-padding` se aplica solo a los objetos que siempre se sitúan fuera del pentagrama: controla la separación mínima entre dicho objeto y el pentagrama. Observe que `staff-padding` no tiene ningún efecto sobre objetos que se posicionan respecto a la nota en vez de hacerlo respecto al pentagrama, incluso aunque puede ser sobreescrito sin error por tales objetos: simplemente se ignora.

     Para descubrir qué propiedad de relleno se necesita para el objeto que quiere recolocar, debe volver al manual de RFI y buscar las propiedades del objeto. Tenga cuidado porque las propiedades de relleno podrían no estar en el objeto más obvio, así que busque en los objetos que puedan tener alguna relación con él.

     Todos los valores de relleno se miden en espacios del pentagrama. Para la mayor parte de los objetos el valor se establece de forma predeterminada en aproximadamente 1.0 o menos (varía con cada objeto). Se puede sobreescribir si se necesita una separación intermedia mayor (o menor).

   - `self-alignment-X` (auto-alineamiento en el eje X)

     Use esta propiedad para alinear el objeto a la izquierda, a la derecha, o centrarlo con respecto al punto de referencia del objeto «padre». Se puede usar con todos los objetos que contemplan la interfaz `self-alignment-interface`. En general son objetos que contienen texto. Los valores son `LEFT`, `RIGHT` o `CENTER`. De forma alternativa se puede especificar un valor numérico entre `-1` y `+1`, donde `-1` es alineado por la izquierda, `+1` es alineado por la derecha, y los números intermedios mueven el texto progresivamente desde alineado por la izquierda hasta alineado por la derecha. Se pueden especificar valores numéricos mayores de `1` para mover el texto incluso más lejos hacia la izquierda, o menos de `-1` para alejarlo más hacia la derecha. Un cambio en `1` en el valor corresponde a un movimiento de la mitad de la longitud total del propio texto.

   - `extra-spacing-width` (anchura de separación adicional)

     Esta propiedad está disponible para todos los objetos que contemplan la interfaz `item-interface`. Toma dos números, el primero se suma al límite izquierdo y el segundo se suma al límite derecho. Los números negativos desplazan el límite a la izquierda y los positivos a la derecha, por lo que para ensanchar un objeto el primer número debe ser negativo y el segundo positivo. Observe que no todos los objetos ostentan los dos números. Por ejemplo, el objeto `Accidental` (alteración) solo toma nota del primer número (el borde izquierdo).

   - `staff-position` (posición de pentagrama)

     `staff-position` es una propiedad de la interfaz `staff-symbol-referencer-interface`, que está contemplado por los objetos que se colocan con relación al pentagrama. Especifica la posición vertical del objeto con relación a la tercera línea del pentagrama en medios espacios de pentagrama. Es útil en la resolución de colisiones entre objetos de presentación como silencios multi-compás, ligaduras de unión y notas en distintas voces.

   - `horizontal-shift` (desplazamiento horizontal)

     Dentro de una voz, todas las notas que se producen en el mismo moemtno se agrupan en una columna de notas, y se crea un objeto `NoteColumn` para controlar el posicionamiento horizonal de dicho grupo de notas (véase “Columnas de nota” en Voces explícitas). Si y solo si dos o más columnas de nota dentro de un solo contexto de pauta (`Staff`), las dos con las plicas en la misma dirección, aparecen en el mismo momento musical, los valores de sus propiedades `horizontal-shift` se usan para asignarles una puntuación y las columnas con puntuaciones más altas se desplazan progresivamente para evitar las colisiones entre las cabezas de las notas. Esta propiedad se establece con las instrucciones `\voiceXXX` y se pueden sobreescribir directamente con una instrucción `\override` o, de forma más común con las instrucciones `\shiftOn`. Observe que esta propiedad se usa para calificar las columnas de nota o para aplicar desplazamientos: no especifica la magnitud del desplazamiento, que se va incrementando progresivamente en pasos basándolse en la anchura de las cabezas de nota para cada puntuación. Los pasos son normalmente de la mitad de la anchura de una cabeza de nota, pero puede ser el ancho completo de la cabeza de una nota cuando está implicado un grupo de notas muy apretadas entre sí.

   - `force-hshift` (forzar desplazamiento horizontal)

     La propiedad `force-hshift` forma parte de los grobs `NoteColumn` (realmente de la interfaz `note-column-interface`). Modificarlo permite mover una columna de notas en situaciones donde las columnas de notas se superponen. Observe que no tiene efecto sobre las columnas de nota que no se superponen. Se especifica en unidades adecuadas a una columna de notas, por ejemplo la anchura de la cabeza de la nota de la primera voz. Se debe usar en situaciones complejas donde las instrucciones `\shiftOn` normales (see Voces explícitas) no resuelven el conflicto entre las notas de forma satisfactoria. Es preferible a la propiedad `extra-offset` para este propósito porque no hay necesidad de averiguar la distancia en espacios de pentagrama, y mover las notas dentro o fuera de una `NoteColumn` afecta a otras acciones como a la fusión entre cabezas de nota.

3. Finalmente, cuando todo lo demás falla, los objetos se pueden reposicionar manualmente con relación a la tercera línea del pentagrama verticalmente, o desplazándolas una cierta distancia a una nueva posición. Las desventajas son que los valores correctos para el reposicionamiento se deben adivinar, a menudo por ensayo y error, para cada objeto individual y, puesto que el movimiento se hace después de que LilyPond ha colocado todos los demás objetos es usuario es responsable de evitar cualquier colisión que pudiera producirse. Sin embargo la dificultar principal con este enfoque es que los valores de reposicionado podrían tener que ser vueltos a calcular si la música se modifica más tarde. Las propiedades que se pueden usar para este tipo de posicionamiento manual son como sigue.
   - `extra-offset` (desplazamiento adicional)

     Esta propiedad se aplica a cualquier objeto de presentación que contemple el `grob-interface`. Toma una pareja de números que especifican el desplazamiento adicional en las direcciones horizontal y vertical. Los números negativos mueven el objeto a la izquierda o hacia abajo. Las unidades son espacios de pentagrama. El desplazamiento adicional se hace después de que la composición tipográfica de los objetos ha terminado, así que un objeto puede ser reposicionado a cualquier lugar sin afectar a ninguna otra cosa.

   - `positions` (posiciones)

     Ésta es de la mayor utilidad para ajustar manualmente la inclinación y la altura de las barras de corchea, ligaduras de expresión y corchetes de grupos de valoración especial. Toma una pareja de números que dan la posición de los extremos izquierdo y derecho de la barra, ligadura, etc. con relación a la tercera línea del pentagrama. Las unidades son espacios de pentagrama. Observe, sin embargo, que las ligaduras de expresión y de fraseo no se pueden reposicionar en cantidades arbitrariamente grandes. LilyPond en primer lugar genera una lista de posiciones posibles para la ligadura y de forma predeterminada encuentra la ligadura que tiene “mejor aspecto”. Si la propiedad `positions` se ha sobreescrito, la ligadura que está más cerca de las posiciones que se han solicitado, se selecciona de la lista.

Un objeto en particular podría no tener todas estas propiedades. Es necesario ir al manual RFI para buscar qué propiedades se encuentran disponibles para el objeto en cuestión.

Aquí presentamos una lista de los objetos que es más probable que estén implicados en colisiones, con el nombre del objeto que habría que buscar en el RFI para descubrir qué propiedades se deben usar para moverlos.

> Tipo de objeto | Nombre del objeto
> --- | ---
> articulaciones (p.ej. ‘`->`’) | `Script`
> barras | `Beam`
> dinámica (verticalmente) | `DynamicLineSpanner`
> dinámica (horizontalmente) | `DynamicText`
> digitaciones | `Fingering`
> Letras o números de ensayo | `RehearsalMark`
> marcas de texto | `TextMark`
> ligaduras de expresión | `Slur`
> texto (p.ej. ‘`^"texto"`’) | `TextScript`
> ligaduras de unión | `Tie`
> grupos de valoración especial | `TupletBracket`

#### Manual de aprendizaje de GNU LilyPond v2.26.0 (stable-branch).

- 1 Installing
  - 1.1 Graphical setup
  - 1.2 Command line setup
- 2 Tutorial
  - 2.1 Compilación del archivo
  - 2.2 Cómo escribir archivos de entrada
    - 2.2.1 Notación sencilla
      - Alturas
      - Duraciones (valores rítmicos)
      - Silencios
      - Indicación de compás
      - Indicaciones de tempo
      - Clave
      - Todo junto
    - 2.2.2 Trabajar sobre los archivos de entrada
  - 2.3 Tratar con los errores
    - 2.3.1 Consejos generales de solución de problemas
    - 2.3.2 Algunos errores comunes
  - 2.4 Cómo leer los manuales
    - 2.4.1 Material omitido
    - 2.4.2 Ejemplos con enlace
    - 2.4.3 Panorámica de los manuales
- 3 Notación corriente
  - 3.1 Notación en un solo pentagrama
    - 3.1.1 Líneas divisorias y comprobaciones de compás
      - Líneas divisorias
      - Comprobaciones de compás
    - 3.1.2 Alturas y armaduras
      - Alteraciones accidentales
      - Armaduras
      - Advertencia: armaduras y alturas
    - 3.1.3 Ligaduras de unión y de expresión
      - Ligaduras de unión
      - Ligaduras de expresión
      - Ligaduras de fraseo
      - Advertencias: ligaduras de expresión frente a ligaduras de unión
    - 3.1.4 Articulaciones y matices dinámicos
      - Articulaciones
      - Indicaciones de digitación
      - Matices dinámicos
    - 3.1.5 Añadir texto
    - 3.1.6 Barras automáticas y manuales
    - 3.1.7 Instrucciones rítmicas avanzadas
      - Compás parcial
      - Grupos especiales
      - Notas de adorno
  - 3.2 Varias notas a la vez
    - 3.2.1 Explicación de las expresiones musicales
      - Analogía: expresiones matemáticas
      - Expresiones musicales simultáneas: varios pentagramas
      - Expresiones musicales simultáneas: un solo pentagrama
    - 3.2.2 Varios pentagramas
    - 3.2.3 Grupos de pentagramas
    - 3.2.4 Combinar notas para formar acordes
    - 3.2.5 Polifonía en un solo pentagrama
  - 3.3 Canciones
    - 3.3.1 Elaborar canciones sencillas
    - 3.3.2 Alineación de la letra a una melodía
    - 3.3.3 Letra en varios pentagramas
  - 3.4 Retoques finales
    - 3.4.1 Organizar las piezas mediante variables
    - 3.4.2 Añadir títulos
    - 3.4.3 Nombres de nota absolutos
    - 3.4.4 Más allá del tutorial
- 4 Conceptos fundamentales
  - 4.1 Cómo funcionan los archivos de entrada de LilyPond
    - 4.1.1 Introducción a la estructura de los archivos de LilyPond
    - 4.1.2 La partitura es una (única) expresión musical compuesta
    - 4.1.3 Anidado de expresiones musicales
    - 4.1.4 Estructura de un elemento de nota
    - 4.1.5 Acerca de la no anidabilidad de llaves y ligaduras
  - 4.2 Las voces contienen música
    - 4.2.1 Oigo voces
    - 4.2.2 Voces explícitas
    - 4.2.3 Voces y música vocal
  - 4.3 Contextos y grabadores
    - 4.3.1 Explicación de los contextos
    - 4.3.2 Crear contextos
    - 4.3.3 Explicación de los grabadores
    - 4.3.4 Modificar las propiedades de los contextos
    - 4.3.5 Añadir y eliminar grabadores
  - 4.4 Extender las plantillas
    - 4.4.1 Soprano y violoncello
    - 4.4.2 Partitura vocal a cuatro voces SATB
    - 4.4.3 Crear una partitura partiendo de cero
    - 4.4.4 Ahorrar tecleo mediante variables y funciones
    - 4.4.5 Partituras y particellas
- 5 Trucar la salida
  - 5.1 Elementos de trucaje
    - 5.1.1 Objetos e interfaces
    - 5.1.2 Convenciones de nombres de objetos y propiedades
    - 5.1.3 Métodos de trucaje
      - La instrucción `\override`
      - La instrucción `\revert`
      - El prefijo `\once`
      - Las instrucciones `\tweak` y `\offset`
      - El prefijo `\single`
  - 5.2 Manual de referencia de funcionamiento interno
    - 5.2.1 Propiedades de los objetos de presentación
    - 5.2.2 Propiedades de las interfaces
    - 5.2.3 Tipos de propiedades
  - 5.3 Apariencia de los objetos
    - 5.3.1 Visibilidad y color de los objetos
      - La propiedad `stencil` (sello)
      - La propiedad `break-visibility` (visibilidad en el salto)
      - La propiedad `transparent` (transparente)
      - La propiedad `color`
    - 5.3.2 Tamaño de los objetos
    - 5.3.3 Longitud y grosor de los objetos
  - 5.4 Desplazamientos y alineaciones
  - 5.5 Colocación de los objetos
    - 5.5.1 Comportamiento automático
    - 5.5.2 Objetos interiores al pentagrama
      - La propiedad `direction` (dirección)
      - Digitaciones
    - 5.5.3 Objetos fuera del pentagrama
      - La propiedad `outside-staff-priority` (prioridad fuera del pentagrama)
      - La instrucción `\textLengthOn`
      - Posicionamiento de los matices dinámicos
      - Escalado de un «Grob»
  - 5.6 Espaciado vertical
  - 5.7 Colisiones de objetos
    - 5.7.1 Mover objetos
    - 5.7.2 Arreglar notación con superposiciones
      - La propiedad `padding` (relleno)
      - La propiedad `right-padding` (relleno por la derecha)
      - La propiedad `staff-padding` (relleno de pentagrama)
      - La propiedad `self-alignment-X` (auto-alineación en X)
      - La propiedad `staff-position` (posición en el pentagrama)
      - La propiedad `extra-offset` (desplazamiento adicional)
      - La propiedad `positions` (posiciones)
      - La propiedad `force-hshift` (forzar desplazamiento horizontal)
    - 5.7.3 Ejemplos reales de música
  - 5.8 Trucajes adicionales
    - 5.8.1 Otras aplicaciones de los trucos
      - Unir notas entre voces distintas
      - Simulación de un calderón en el MIDI
    - 5.8.2 Uso de variables para los ajustes de disposición
    - 5.8.3 Hojas de estilo
    - 5.8.4 Otras fuentes de información
    - 5.8.5 Trucos avanzados con Scheme
- Appendix A Plantillas
  - A.1 Plantillas incorporadas
    - A.1.1 Plantilla coral SATB
    - A.1.2 Plantilla coral SSAATTBB
  - A.2 Plantillas de pentagrama único
    - A.2.1 Sólo notas
    - A.2.2 Notas y letra
    - A.2.3 Notas y acordes
    - A.2.4 Notas, letra y acordes
  - A.3 Plantillas de piano
    - A.3.1 Piano solo
    - A.3.2 Piano y melodía con letra
    - A.3.3 Piano con letra centrada
  - A.4 Plantillas de cuarteto de cuerda
    - A.4.1 Cuarteto de cuerda simple
    - A.4.2 Particellas de cuarteto de cuerda
  - A.5 Plantillas de conjuntos vocales
    - A.5.1 Partitura vocal SATB
    - A.5.2 Partitura vocal SATB y reducción para piano automática
    - A.5.3 SATB con contextos alineados
    - A.5.4 SATB sobre cuatro pentagramas
    - A.5.5 Estrofas a solo y estribillo a dos voces
    - A.5.6 Melodías de himnos
    - A.5.7 Salmos
  - A.6 Plantillas orquestales
    - A.6.1 Orquesta, coro y piano
  - A.7 Plantillas para notación antigua
    - A.7.1 Transcripción de música mensural
    - A.7.2 Plantilla para transcripción de canto gregoriano
  - A.8 Otras plantillas
    - A.8.1 Combo de jazz
- Appendix B GNU Free Documentation License
- Appendix C Índice