[ << Trucar la salida ] | [Arriba][Índice general][Índice][ ? ] | [ Plantillas >> ] | ||
[ < Convenciones de nombres de objetos y propiedades ] | [ Subir : Elementos de trucaje ] | [ La instrucción override > ] |
4.1.4 Métodos de trucaje
La instrucción \override
La instrucción \override | ||
La instrucción \revert | ||
El prefijo \once | ||
La instrucción \overrideProperty | ||
La instrucción \tweak |
[ << Trucar la salida ] | [Arriba][Índice general][Índice][ ? ] | [ Plantillas >> ] | ||
[ < Métodos de trucaje ] | [ Subir : Métodos de trucaje ] | [ La instrucción revert > ] |
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, véase Tipos de propiedades. Pero en esta sección usaremos sólo unas cuantas propiedades y valores sencillos que sean fáciles de entender, para ilustrar el formato y la utilización de estas instrucciones.
Las expresiones principales de LilyPond son elementos musicales como notas, duraciones y elementos de marcado. Las expresiones más básicas como números, cadenas de caracteres y listas se procesan en el ‘modo de Scheme’, que se invoca por medio del prefijo ‘#’ escrito antes del valor. Aunque los valores pueden tener a veces una representación válida en el modo de música de LilyPond, este manual utiliza siempre ‘#’ para la escritura, por coherencia. Para ver más información acerca del modo de Scheme, consulte Sintaxis del Scheme de LilyPond.
\override
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 |
[ << Trucar la salida ] | [Arriba][Índice general][Índice][ ? ] | [ Plantillas >> ] | ||
[ < La instrucción override ] | [ Subir : Métodos de trucaje ] | [ El prefijo once > ] |
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 |
[ << Trucar la salida ] | [Arriba][Índice general][Índice][ ? ] | [ Plantillas >> ] | ||
[ < La instrucción revert ] | [ Subir : Métodos de trucaje ] | [ La instrucción overrideProperty > ] |
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 anterior (que puede ser distinto de su valor
predeterminado si aún se está aplicando otra instrucción
\override
de sobreescritura). Utilizando el mismo ejemplo,
podemos cambiar el color de una sola nota de la siguiente manera:
c4 d \override NoteHead.color = #red e4 f | \once \override NoteHead.color = #green g4 a \revert NoteHead.color b c |
El prefijo \once
también se puede usar delante de muchas
instrucciones predefinidas para limitar su efecto a un solo momento
musical:
c4 d \once \stemDown e4 f | g4 a \once \hideNotes b c |
Sin embargo, las instrucciones predefinidas de la forma
\…Neutral
,
\…Off
y \un…
utilizan
internamente \revert
en vez de \override
, por lo que
añadir \once
como prefijo aquí no tiene ningún efecto.
[ << Trucar la salida ] | [Arriba][Índice general][Índice][ ? ] | [ Plantillas >> ] | ||
[ < El prefijo once ] | [ Subir : Métodos de trucaje ] | [ La instrucción tweak > ] |
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.
[ << Trucar la salida ] | [Arriba][Índice general][Índice][ ? ] | [ Plantillas >> ] | ||
[ < La instrucción overrideProperty ] | [ Subir : Métodos de trucaje ] | [ Manual de referencia de funcionamiento interno > ] |
La instrucción \tweak
La última instrucción de trucaje que está disponible es \tweak
.
Se debe utilizar cuando varios objetos tienen lugar
en el mismo momento musical pero solo queremos cambiar las propiedades
de algunos de ellos, como una sola nota dentro 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.
En su forma más sencilla es efectivo solamente sobre objetos
que se crean directamente
a partir del elemento siguiente, en esencia las cabezas y las
articulaciones.
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
. El contexto no se
debe especificar; de hecho, generaría un error hacerlo.
Tanto el contexto como el objeto de presentación
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
de la instrucción \tweak
en su forma sencilla es:
\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 porque la propia expresión trucada debe aplicarse
como una articulación. En el caso de más de una sobreescritura de dirección
(^
o _
), gana la sobreescritura situada más a la izquierda
porque se aplica en último lugar.
Los objetos tales como plicas y alteraciones accidentales se crean más
tarde, y no directamente a partir del evento que viene a continuación.
Aún es posible utilizar \tweak
sobre tales objetos creados
indirectamente mediante el nombrado explícito del objeto de
presentación, siempre y cuando LilyPond pueda rastrear su origen hasta
el evento original:
<\tweak Accidental.color #red cis4 \tweak Accidental.color #green es g>
Esta forma extensa de la instrucción \tweak
se puede describir
como
\tweak objeto-de-presentación.propiedad-de-presentación valor
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 \tuplet 3/4 { \tweak color #red \tuplet 3/2 { c8[ c c] } \tuplet 3/2 { c8[ c c] } \tuplet 3/2 { 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
:
\tuplet 3/2 { c8[ c c] } \once \override TupletNumber.text = #tuplet-number::calc-fraction-text \tuplet 3/2 { c8[ c] c8[ c] \once \override TupletNumber.transparent = ##t \tuplet 3/2 { c8[ c c] } \tuplet 3/2 { c8[ c c] } }
Véase también
Referencia de la notación: La instrucción tweak.
[ << Trucar la salida ] | [Arriba][Índice general][Índice][ ? ] | [ Plantillas >> ] | ||
[ < La instrucción overrideProperty ] | [ Subir : Métodos de trucaje ] | [ Manual de referencia de funcionamiento interno > ] |
Otros idiomas: English, česky, deutsch, français, italiano, 日本語, nederlands.
Acerca de la selección automática del idioma.