Siguiente: Modificar los complementos (plug-ins) de contexto, Anterior: Crear contextos, Arriba: Contextos de interpretación
Cada contexto puede tener diferentes propiedades o variables contenidas
en dicho contexto. Se pueden cambiar mientras se desarrolla la fase de interpretación.
Esto se consigue insertando la instrucción \set
en la música,
\set contexto.propiedad = #valor
Por ejemplo,
R1*2 \set Score.skipBars = ##t R1*2
Esta instrucción hace que se salten los compases que no tienen ninguna nota. El resultado es que
los silencios multicompás se comprimen. El valor asignado es un objeto del lenguaje Scheme. En
este caso, es #t
, el valor booleano Verdadero.
Si el argumento contexto se deja en blanco, entonces se utiliza el contexto actual más bajo
(normalmente ChordNames
, Voice
o
Lyrics
). En este ejemplo,
c8 c c c \set autoBeaming = ##f c8 c c c
el argumento contexto para la instrucción \set
está omitido, por tanto
el barrado automático está desactivado en la Voice (voz) actual. Fíjese en que
el contexto más bajo no siempre contiene la propiedad que quiere
cambiar. Por ejemplo, si intenta establecer la propiedad skipBars
(del contexto más bajo, en este caso Voice
) no se producirá ningún
efecto.
R1*2 \set skipBars = ##t R1*2
Los contextos son jerárquicos, de forma que si se especificó un contexto mayor, por
ejemplo Staff
, entonces el cambio también se aplicaría a todos los
Voice
s o contextos de voz en el pentagrama actual. El cambio se aplica
‘al vuelo’, mientras transcurre la música, de manera que el ajuste sólo afecta al segundo
grupo de corcheas.
También existe una instrucción \unset
,
\unset contexto.propiedad
que quita la definición de la propiedad. Esta instrucción quita la definición solamente si está establecida dentro del contexto especificado, por lo que
\set Staff.autoBeaming = ##f
introduce un ajuste de propiedad en el nivel del contexto Staff
. El ajuste también se aplica
a la Voice
actual. Sin embargo,
\unset Voice.autoBeaming
no tiene ningún efecto. Para cancelar este ajuste, el \unset
se debe especificar en el mismo nivel que el \set
original. En
otras palabras, deshacer el efecto de Staff.autoBeaming = ##f
requiere
\unset Staff.autoBeaming
Igual que \set
, el argumento contexto no tiene que especificarse para un contexto
que está en la parte más baja, por lo que las dos instrucciones
\set Voice.autoBeaming = ##t \set autoBeaming = ##t
son equivalentes.
Los ajustes que se quieren aplicar a un paso de tiempo único se pueden escribir
con \once
, por ejemplo en
c4 \once \set fontSize = #4.7 c4 c4
la propiedad fontSize
pierde su valor automáticamente después de la segunda
nota.
En la referencia del programa hay una descripción detallada de todas las propiedades de contexto disponibles,
véase
Tunable context properties.
Siguiente: Modificar los complementos (plug-ins) de contexto, Anterior: Crear contextos, Arriba: Contextos de interpretación
Esta página corresponde a LilyPond-2.11.40 (rama de desarrollo).
Informe de los fallos a http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.
Se agradecen las sugerencias para la documentación.