5.1.4 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_heads_engraver
, chargé des têtes de notes et, dans le
contexte Staff
, un graveur Key_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é.
Lorsqu’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 le nom
des graveurs désirés. Dans l’exemple suivant, on enlève du contexte
Staff
, la métrique (graveur Time_signature_engraver
)
et la clef (graveur Clef_engraver
).
<< \new Staff \relative { f'2 g } \new Staff \with { \remove "Time_signature_engraver" \remove "Clef_engraver" } \relative { f'2 g2 } >>
La clef 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.
\score { << \new Staff \with { \consists "Timing_translator" \consists "Default_bar_line_engraver" } \relative { \time 3/4 c''4 c c c c c } \new Staff \with { \consists "Timing_translator" \consists "Default_bar_line_engraver" } \relative { \time 2/4 c''4 c c c c c } >> \layout { \context { \Score \remove "Timing_translator" \remove "Default_bar_line_engraver" } } }
Problèmes connus et avertissements
L’ordre dans lequel les graveurs sont spécifiés correspond à leur ordre d’apparition dans le processus d’élaboration de la partition. En règle générale, l’ordre dans lequel les graveurs sont mentionnés importe peu. Il se peut toutefois qu’un graveur écrive une propriété qui sera interprétée par un autre, ou qu’un graveur crée un objet graphique qui sera traité par un autre ; l’ordre d’apparition de ces graveurs prendra alors toute son importance.
Pour information, les ordonnancements suivants sont importants :
-
le
Bar_engraver
devrait toujours être le premier ; -
le
New_fingering_engraver
doit toujours précéder leScript_column_engraver
; -
le
Timing_translator
doit toujours précéder leBar_number_engraver
.
Voir aussi
Fichiers d’initialisation : ‘ly/engraver-init.ly’.
Autres langues : English, català, deutsch, español, italiano, 日本語.
About automatic language selection.