Siguiente: , Anterior: Crear contextos, Arriba: Contextos de interpretación


3.2.3 Cambiar las propiedades de un contexto al vuelo

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

[image of music]

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

[image of music]

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

[image of music]

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

[image of music]

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: , 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.

Otros idiomas: English, français.