5.1.3 Modification des greffons de contexte
Les contextes, tels que Score
ou Staff
, ne contiennent
pas que des propriétés ; ils mettent également en œuvre certains
sous-programmes (‘plug-ins’, pour employer le terme consacré) nommés
‘graveurs’ (‘engravers’, pour reprendre le terme anglais).
Ces sous-programmes sont chargés de créer les différents éléments de notation :
On trouve ainsi dans le contexte Voice
, un graveur Note_head_engraver
,
chargé des têtes de notes, et dans le contexte Staff
, un graveur
Key_signature_engraver
, chargé de l’armure.
Vous trouverez une description exhaustive de chaque graveur dans Engravers and Performers. Chaque contexte mentionné dans Contexts répertorie les graveurs mis en œuvre.
On peut faire, au moyen de ces graveurs, sa propre « cuisine », en modifiant les contextes à volonté.
Lorsque un contexte est créé, par la commande \new
ou \context
, on peut
y adjoindre un bloc \with
(en anglais ‘avec’), dans lequel il est possible
d’ajouter (commande \consists
) ou d’enlever (commande \remove
)
des graveurs :
\new contexte \with { \consists … \consists … \remove … \remove … etc. } { ..musique.. }
Ici les points de suspension … devront être remplacés par les noms
des graveurs désirés. Dans l’exemple suivant, on enlève du contexte
Staff
, le chiffre de mesure (graveur Time_signature_engraver
)
et la clé (graveur Clef_engraver
).
<< \new Staff { f2 g } \new Staff \with { \remove "Time_signature_engraver" \remove "Clef_engraver" } { f2 g2 } >>
La clé et le chiffre de mesure ont disparu de la deuxième portée. C’est une méthode quelque peu radicale, puisqu’elle affectera toute la portée jusqu’à la fin de la partition. L’espacement s’en trouve également affecté, ce qui peut être ou non l’effet recherché. Une méthode plus sophistiquée aurait été de rendre ces objets transparents (voir Visibilité et couleur des objets).
Dans l’exemple suivant, voici une mise en pratique plus utile. En temps
normal, les barres de mesure et la métrique sont synchronisées verticalement
dans toute la partition. Les graveurs qui en sont responsables se nomment
Timing_translator
et Default_bar_line_engraver
.
En les enlevant du contexte Score
pour les attribuer au contexte
Staff
, chaque portée peut désormais avoir sa propre métrique.
\new Score \with { \remove "Timing_translator" \remove "Default_bar_line_engraver" } << \new Staff \with { \consists "Timing_translator" \consists "Default_bar_line_engraver" } { \time 3/4 c4 c c c c c } \new Staff \with { \consists "Timing_translator" \consists "Default_bar_line_engraver" } { \time 2/4 c4 c c c c c } >>