5.3.5 \set ou \override

Les instructions \set et \override manipulent toutes deux des propriétés associées à des contextes. Dans tous les cas, ces propriétés tiennent compte de la hiérarchie des contextes : les propriétés qui n’ont pas été définies dans le contexte lui-même héritent des valeurs de leur contexte parent respectif.

Les valeurs et durée de vie des propriétés d’un contexte sont dynamiques et ne sont accessibles qu’au moment où la musique est interprétée. Lors de la création d’un contexte, ses propriétés sont initialisées à partir de la définition du contexte correspondant et de ses éventuelles adaptations. Toute modification ultérieure ne sera obtenue que par des commandes d’adaptation des propriétés, libellées au sein même de la musique.

Les définitions d’un objet graphique (graphical object abrégé en grob) constituent une catégorie spécifique de propriétés de contexte, dans la mesure où leur structure, enregistrement et utilisation diffèrent des propriétés de contextes habituelles.

Contrairement aux propriétés de contextes habituelles, les définitions de grob sont subdivisées en propriétés de grob. Un grob est créé par un graveur lors de l’interprétation d’une expression musicale et reçoit ses propriétés initiales à partir de la définition de grob en cours dans le contexte du graveur. Le graveur (ou tout autre « agent » de LilyPond) peut alors ajouter ou modifier des propriétés à cet objet, sans pour autant affecter la définition du grob dans ce contexte.

Ce que LilyPond appelle « propriétés de grob » dans le cadre de l’affinage par l’utilisateur sont en fait les propriétés de la définition d’un objet dans un contexte.

Contrairement aux propriétés de contexte habituelles, les définitions d’un grob doivent être enregistrées pour pouvoir garder trace de ses composants, les propriétés individuelles du grob (ainsi que leurs sous-propriétés) séparément. Il sera dès lors possible de définir ces composants dans différents contextes et ainsi disposer d’une définition globale du grob à l’instant où la création de cet objet assemblera les éléments relatifs aux différents contextes attachés au contexte en cours et à ses parents.

Les définitions de grob se manipulent à l’aide des commandes \override et \revert, et leur nom commence par une capitale (comme ‘NoteHead’) alors que les propriétés de contexte ordinaires – elles commencent par une minuscule – se manipulent avec \set et \unset.

Les instructions spéciales \tweak et \overrideProperty modifient les propriétés de grob en court-circuitant totalement les propriétés de contexte. En fait, elles capturent les grobs au moment de leur création pour y injecter directement des propriétés soit émanant d’un événement musical retouché par un \tweak, soit lorsqu’ils sont d’une qualité particulière (un \overrideProperty).


GNU LilyPond – Manuel de notation v2.25.21 (branche de développement).