Manual de aprendizaje de GNU LilyPond: 4.1.4 Métodos de trucaje

### 4.1.4 Métodos de trucaje

La instrucción \override

Ya hemos visto las instrucciones `\set` y `\with`, que se usan para cambiar las propiedades de los contextos y para quitar y poner grabadores, en Modificar las propiedades de los contextos y Añadir y eliminar grabadores. Ahora debemos examinar algunas otras instrucciones importantes.

La instrucción que cambia las propiedades de los objetos de presentación es `\override`. Puesto que esta instrucción debe modificar propiedades internas que se encuentran en un lugar profundo dentro de LilyPond, su sintaxis no es tan simple como la del resto de las instrucciones que hemos usado hasta ahora. Tiene que saber exactamente qué propiedad de qué objeto y en qué contexto se debe modificar, y cuál debe ser su nuevo valor. Veamos cómo se hace.

La sintaxis genérica de esta instrucción es:

>     \override Contexto.ObjetoDePresentación  #'propiedad-de-presentación =
>     #valor

Esto establecerá la propiedad de nombre propiedad-de-presentación del objeto de presentación con el nombre ObjetoDePresentación, que es miembro del contexto Contexto, al valor valor.

El contexto se puede omitir (y normalmente así es) cuando el contexto requerido se encuentra implicado sin ambigüedad y es uno de los contextos del nivel más bajo, es decir: `Voice`, `ChordNames` o `Lyrics`, y lo omitiremos en muchos de los ejemplos siguientes. Veremos más tarde cuándo se debe especificar.

Las últimas secciones tratan de forma exhaustiva las propiedades y sus valores, pero para ilustrar el formato y utilización de estas instrucciones usaremos sólo unas cuantas propiedades y valores sencillos que sean fáciles de entender.

Por ahora no se preocupe por el `#'`, que debe anteponerse a la propiedad de presentación, y el `#`, que debe preceder al valor. Deben estar presentes siempre y de esa forma exacta. Es la instrucción de uso más común dentro del trucaje, y durante la mayor parte del resto de este capítulo presentaremos ejemplos de cómo se usa. A continuación hay un ejemplo sencillo para cambiar el color de una cabeza:

>     c4 d
>     \override NoteHead #'color = #red
>     e4 f |
>     \override NoteHead #'color = #green
>     g4 a b c |

La instrucción \revert

Una vez sobreescrita, la propiedad retiene su nuevo valor hasta que se sobreescribe de nuevo o se encuentra una instrucción `\revert`. La instrucción `\revert` tiene la siguiente sintaxis y ocasiona que el valor de la propiedad se devuelva a su valor predeterminado original; observe que no es a su valor previo si se han utilizado varias instrucciones `\override`.

>     \revert Contexto.ObjetoDePresentación #'propiedad-de-presentación

Una vez más, igual que Contexto dentro de la instrucción `\override`, con frecuencia no es necesario especificar el Contexto. Se omitirá en muchos de los ejemplos siguientes. Aquí devolvemos el color de la cabeza al valor predeterminado para las dos últimas notas:

>     c4 d
>     \override NoteHead #'color = #red
>     e4 f |
>     \override NoteHead #'color = #green
>     g4 a
>     \revert NoteHead #'color
>     b4 c |

El prefijo \once

Tanto la instrucción `\override` como `\set` se pueden preceder por `\once`. Esto ocasiona que la siguiente instrucción `\override` o `\set` sea efectiva solamente durante el tiempo musical en curso y antes de que la propiedad vuelva a tener otra vez su valor predeterminado. Utilizando el mismo ejemplo, podemos cambiar el color de una sola nota de la siguiente manera:

>     c4 d
>     \once \override NoteHead #'color = #red
>     e4 f |
>     \once \override NoteHead #'color = #green
>     g4 a b c |

La instrucción \overrideProperty

Hay otra forma para la instrucción de sobreescritura, `\overrideProperty`, que ocasionalmente es necesaria. La mencionamos aquí con un propósito de exhaustividad, pero para ver más detalles consulte Trucos difíciles.

La instrucción \tweak

La última instrucción de trucaje que está disponible es `\tweak`. Se debe utilizar para cambiar las propiedades de objetos que suceden en el mismo momento musical, como las notas de un acorde. El uso de `\override` para la sobreescritura afectaría a todas las notas del acorde, mientras que `\tweak` afecta solamente al siguiente elemento del flujo de entrada.

He aquí un ejemplo. Suponga que queremos cambiar el tamaño de la cabeza de la nota intermedia (el Mi) en un acorde de Do mayor. En primer lugar, veamos lo que haría `\once \override`:

>     <c e g>4
>     \once \override NoteHead #'font-size = #-3
>     <c e g>4
>     <c e g>4

Vemos que la sobreescritura con override afecta a todas las cabezas de las notas del acorde. Esto es así porque todas las notas de un acorde ocurren en el mismo momento musical, y la acción de `\once` es aplicar la sobreescritura a todos los objetos de presentación del tipo especificado que ocurren en el mismo momento musical que la propia instrucción de sobreescritura `\override`.

La instrucción `\tweak` opera de una forma distinta. Actúa sobre el elemento inmediatamente siguiente dentro del flujo de entrada. Sin embargo, es efectivo solamente sobre objetos que se crean directamente a partir del flujo de entrada, en esencia las cabezas y las articulaciones; los objetos como las plicas y las alteraciones se crean con posterioridad y no se pueden trucar de esta forma. Es más, cuando se aplica a las cabezas de las notas, éstas deben estar dentro de un acorde, es decir, dentro de ángulos simples, así que para trucar una sola nota la instrucción `\tweak` se debe colocar dentro de ángulos simples junto con la nota.

Así pues, volviendo a nuestro ejemplo, el tamaño de la nota intermedia se cambiaría de la siguiente forma:

>     <c e g>4
>     <c \tweak #'font-size #-3 e g>4

Observe que la sintaxis de `\tweak` no es igual que la de `\override`. Ni el contexto ni el objeto de presentación se deben especificar; de hecho, generaría un error hacerlo. Los dos están implícitos por el siguiente elemento del flujo de entrada. Observe también que no debe haber un signo igual. Así que la sintaxis genérica de la instrucción `\tweak` es, simplemente,

>     \tweak #'propiedad-de-presentación #valor

Una instrucción `\tweak` también se puede usar para modificar sólo una de una serie de articulaciones, como se muestra aquí:

>     a4^"Black"
>       -\tweak #'color #red ^"Red"
>       -\tweak #'color #green _"Green"

Observe que la instrucción `\tweak` debe venir precedida de una marca de articulación como si ella misma fuera una articulación.

La instrucción `\tweak` también se debe usar para cambiar la apariencia de uno solo de un conjunto de grupos especiales anidados que comiencen en el mismo instante musical. En el siguiente ejemplo, el corchete del tresillo largo y el primero de los tres corchetes cortos empiezan en el mismo momento musical, y por ello cualquier instrucción `\override` se aplicaría a los dos. En el ejemplo se usa `\tweak` para distinguir entre ellos. La primera instrucción `\tweak` especifica que el corchete del tresillo largo se debe colocar por encima de las notas y el segundo especifica que el número del tresillo se debe imprimir en rojo sobre el corchete del primer tresillo corto.

>     \tweak #'direction #up
>     \times 4/3 {
>       \tweak #'color #red
>       \times 2/3 { c8[ c c] }
>       \times 2/3 { c8[ c c] }
>       \times 2/3 { c8[ c c] }
>     }

Si los grupos anidados no comienzan en el mismo momento, su apariencia se puede modificar de la forma usual mediante instrucciones `\override`:

>     \times 2/3 { c8[ c c] }
>     \once \override TupletNumber
>       #'text = #tuplet-number::calc-fraction-text
>     \times 2/3 {
>       c8[ c]
>       c8[ c]
>       \once \override TupletNumber #'transparent = ##t
>       \times 2/3 { c8[ c c] }
>       \times 2/3 { c8[ c c] }
>     }

#### Véase también

Referencia de la notación: La instrucción tweak.

Otros idiomas: English, česky, deutsch, français, italiano, 日本語, nederlands.

#### LilyPond — Manual de aprendizaje