Anterior: Convenciones de nombres de objetos y propiedades, Arriba: Elementos 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 instrucciones importantes más.
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 visto 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.objeto_de_presentación #'propiedad_de_presentación = #valor
Esto establecerá la propiedad de nombre propiedad_de_presentación del objeto de presentación con el nombre objeto_de_presentació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:
c d \override NoteHead #'color = #red e f g \override NoteHead #'color = #green 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.objeto_de_presentació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:
c d \override NoteHead #'color = #red e f g \override NoteHead #'color = #green a \revert NoteHead #'color b 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:
c d \once \override NoteHead #'color = #red e f g \once \override NoteHead #'color = #green 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 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> <c e g>
Vemos que la sobreescritura con override afecta a todas 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. 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í:
a ^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[ c8 c8] } \times 2/3 { c8[ c8 c8] } \times 2/3 { c8[ c8 c8] } }
Encontrará más detalles de la instrucción \tweak
en
La instrucción tweak.
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 { c[ c] c[ c] \once \override TupletNumber #'transparent = ##t \times 2/3 { c8[ c c] } \times 2/3 { c8[ c c]} }
Esta página corresponde a LilyPond-2.11.58 (rama de desarrollo).
Informe de los fallos a través de la lista en español lilypond-es, o en inglés a través de http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.
Se agradecen las sugerencias para la documentación.
Otros idiomas: English.