5.3.5 \set
frente a \override
Tanto la instrucción \set
como \override
manipulan
propiedades asociadas a contextos. En ambos casos las propiedades
siguen unajerarquía de contextos: las propiedades que no se
establecen dentro del contexto aún presentan los valores del
contexto de su padre respectivo.
El valor y la duración en el tiempo de una propiedad de contexto son dinámicos y están disponibles solamente cuando la música se está interpretando o ‘iterando’. En el momento de la creación del contexto, se inicializan las propiedades a partir de las definiciones correspondientes (así como otras posibles modificaciones) de dicho contexto. Cualquier cambio posterior se obtiene a través de instrucciones de establecimiento de propiedades dentro de la propia música.
Las definiciones de grob (objetos gráficos) son una clase especial de propiedades de contexto, pues su estructura y uso son distintos de las propiedades de contexto ordinarias. A diferencia de las propiedades de los contextos normales, las definiciones de grob se subdividen en propiedades de grob.
Además, en contraste con las propiedades de contexto normales, las definiciones de grob tienen su propio conjunto de ‘utilidades de mantenimiento’ de las propiedades individuales y, en su caso, sub-propiedades. Esto supone que es posible definir las distintas partes dentro de diferentes contextos y aún tener la definición completa del grob en el momento de su creación, montada a partir de todas las piezas proporcionadas por el contexto actual y su ancestro o ancestros, conjuntamente.
Un grob u objeto gráfico se crea normalmente por parte de un grabador en el momento de la interpretación de una expresión musical y recibe sus propiedades iniciales de la definición de grob en curso del contexto del grabador. El grabador (u otras partes del ‘backend’ de LilyPond) pueden después modificar (o añadirse a) las propiedades iniciales del grob; sin embargo, ello no afecta a la definición de grob del contexto.
Lo que LilyPond conoce como ‘propiedades de grob’ en el contexto del trucaje a nivel de usuario son en realidad las propiedades de la definición de grob de un contexto.
Se accede a las definiciones de grob con un conjunto de
instrucciones diferente. Se manipulan usando \override
y
\revert
y tienen un nombre que empieza con una letra
mayúscula (como ‘NoteHead’) mientras que las propiedades de
contexto ordinarias se manipulan utilizando \set
y
\unset
y se nombran empezando en letra minúscula.
Las instrucciones \tweak
y \overrideProperty
cambian
las propiedades de grob pasando por encima de las propiedades de
contexto completamente. En su lugar, atrapan a los grobs tan
pronto se crean, y establecen propiedades sobre ellos directamente
con \tweak
cuando se originan a partir de un evento musical
o, en el caso de \overrideProperty
, para una sobreescritura
específica.