GNU LilyPond – Manuel de notation: 5.1.4 Modification des greffons de contexte

### 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_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`, la métrique (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.

>     \score {
>       <<
>         \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
>       }
>     >>
>     \layout {
>       \context {
>         \Score
>         \remove "Timing_translator"
>         \remove "Default_bar_line_engraver"
>         }
>       }
>     }

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 lors tout 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 le `Script_column_engraver`. Nous vous conseillons, pour les autres, de vérifier les évenntuelles dépendances.

Autres langues : English, deutsch, español, 日本語.

#### LilyPond — Manuel de notation