GNU LilyPond – Manuel de notation: 5.1.5 Modification des réglages par défaut d'un contexte

### 5.1.5 Modification des réglages par défaut d’un contexte

Les propriétés des contextes et objets graphiques se modifient à l’aide des commandes `\set` et `\override`, comme indiqué à la rubrique Modification de propriétés. Ces commandes créent des événements musicaux qui feront que la modification produira ses effets dès l’instant où la musique est traitée.

Le propos est ici de voir comment modifier les valeurs par défaut des propriétés de contexte ou d’objet graphique dès la création de ces contextes. Deux manières de procéder sont envisageables : l’une consiste à modifier les valeurs pour tous les contextes d’un même type, l’autre s’attache à adapter les valeurs par défaut d’une instance particulière d’un contexte.

#### Modification de tous les contextes d’un même type

L’adaptation des réglages par défaut d’un contexte, qu’il s’agisse de `Score`, `Staff` ou `Voice`, peut se réaliser indépendamment de la musique dans un bloc `\layout` – placé dans le bloc `\score` auquel ces modifications doivent s’appliquer – au moyen d’un bloc `\context`.

Les réglages dévolus à la sortie MIDI viendront quant à eux se placer dans un bloc `\midi` – voir Définitions de la sortie – hiérarchie des contextes.

>     \layout {
>       \context {
>         \Voice
>         [réglage de contexte pour tous les contextes Voice]
>       }
>       \context {
>         \Staff
>         [réglage de contexte pour tous les contextes Staff]
>       }
>     }

La spécification des adaptations peut se faire de différentes manières :

- à l’aide d’une commande `\override`, sans lui adjoindre le nom du contexte :

  >     \score {
  >       \relative {
  >         a'4^"Hampes épaisses" a a a
  >         a4 a a\ff a
  >       }
  >       \layout {
  >         \context {
  >           \Staff
  >           \override Stem.thickness = #4.0
  >         }
  >       }
  >     }

- en définissant directement une propriété de contexte :

  >     \score {
  >       \relative {
  >         a'4^"Fontes plus petites" a a a
  >         a4 a a\ff a
  >       }
  >       \layout {
  >         \context {
  >           \Staff
  >           fontSize = #-4
  >         }
  >       }
  >     }

- à l’aide d’une commande prédéfinie comme `\dynamicUp`, ou bien une expression musicale telle que `\accidentalStyle dodecaphonic` :

  >     \score {
  >       \relative {
  >         a'4^"Nuance en surplomb" a a a
  >         a4 a a\ff a
  >       }
  >       \layout {
  >         \context {
  >           \Voice
  >           \dynamicUp
  >         }
  >         \context {
  >           \Staff
  >           \accidentalStyle dodecaphonic
  >         }
  >       }
  >     }

- à l’aide d’une variable personnalisée contenant un bloc `\with` ; pour de plus amples informations sur le bloc `\with`, voir Modification d’un contexte particulier.

  >     StaffDefauts = \with {
  >       fontSize = #-4
  >     }

  >     \score {
  >       \new Staff {
  >         \relative {
  >           a'4^"Petite police" a a a
  >           a4 a a a
  >         }
  >       }
  >       \layout {
  >         \context {
  >           \Staff
  >           \StaffDefauts
  >         }
  >       }
  >     }

Les instructions destinées à modifier les propriétés peuvent se placer dans un bloc `\layout` sans pour autant être incluses dans un bloc `\context`. Expliciter des réglages de la sorte équivaut à inclure les commandes de modification des propriétés au début de chacun des contextes du type en question. Lorsque le contexte n’est pas spécifié, tous les contextes de bas niveau seront affectés – voir Contextes de bas niveau – les voix. La syntaxe appropriée répond aux mêmes critères que si la commande était écrite dans le flot musical.

>     \score {
>       \new Staff {
>         \relative {
>           a'4^"Petite police" a a a
>           a4 a a a
>         }
>       }
>       \layout {
>         \accidentalStyle dodecaphonic
>         \set fontSize = #-4
>         \override Voice.Stem.thickness = #4.0
>       }
>     }

#### Modification d’un contexte particulier

Dans le cas d’un contexte pris individuellement, ses propriétés se modifient à l’aide d’un bloc `\with`. Toutes les autres instances de contexte appartenant au même type seront affectées des réglages prédéfinis par LilyPond, modifiés le cas échéant au sein d’un bloc `\layout`. Le bloc `\with` se place directement à la suite de la commande `\new` type-de-contexte.

>     \new Staff \with {
>       [réglages pour ce contexte pris individuellement]
>     } {
>       …
>     }

De la même manière, si la musique est saisie à la suite d’une commande abrégée, telle que `\chords` au lieu de `\chordmode`, l’instruction `\with` viendra se placer juste après la commande spécifiant le mode :

>     \chords \with {
>       [réglages pour ce contexte (implicite) pris individuellement]
>     } {
>       …
>     }

puisque c’est le contexte implicite alors créé qui devra être modifié. Cette manière de procéder s’applique à toutes les autres formes abrégées de spécification du mode de saisie (`\drums`, `\figures`) – voir Modes de saisie.

Dans la mesure où une telle « modification de contexte » est spécifiée au sein même de la musique, ses effets toucheront toutes les sorties (imprimable et Midi), contrairement à ce qui se passe lorsque les adaptations sont réalisées dans la définition d’une sortie.

La spécification des adaptations peut se faire de différentes manières :

- à l’aide d’une commande `\override`, sans lui adjoindre le nom du contexte :

  >     \score {
  >       \new Staff {
  >         \new Voice \with { \override Stem.thickness = #4.0 }
  >         {
  >           \relative {
  >             a'4^"Hampes épaisses" a a a
  >             a4 a a a
  >           }
  >         }
  >       }
  >     }

- en définissant directement une propriété de contexte :

  >     \score {
  >       <<
  >         \new Staff {
  >           \relative {
  >             a'4^"Default font" a a a
  >             a4 a a a
  >           }
  >         }
  >         \new Staff \with { fontSize = #-4 }
  >         {
  >           \relative {
  >             a'4^"Smaller font" a a a
  >             a4 a a a
  >           }
  >         }
  >       >>
  >     }

- à l’aide d’une commande prédéfinie comme `\dynamicUp` :

  >     \score {
  >       <<
  >         \new Staff {
  >           \new Voice {
  >             \relative {
  >               a'4^"Nuances en dessous" a a a
  >               a4 a a\ff a
  >             }
  >           }
  >         }
  >         \new Staff \with { \accidentalStyle dodecaphonic }
  >         {
  >           \new Voice \with { \dynamicUp }
  >           {
  >             \relative {
  >               a'4^"Nuances en surplomb" a a a
  >               a4 a a\ff a
  >             }
  >           }
  >         }
  >       >>
  >     }

#### Voir aussi

Manuel de notation : Modes de saisie.

#### Ordre de préséance

La valeur d’une propriété qui doit s’appliquer à un instant particulier est déterminée comme suit :

- s’il y a une instruction `\override` ou `\set` active dans le flot d’information, sa valeur s’applique,
- en l’absence de quoi sera utilisée la valeur par défaut telle que définie dans une clause `\with` stipulée à l’initialisation du contexte,
- en l’absence de quoi sera retenue la valeur par défaut issue du bloc `\context` approprié le plus récent dans les blocs `\layout` ou `\midi`,
- en l’absence de quoi s’appliqueront les réglages prédéfinis de LilyPond.

#### Voir aussi

Manuel d’initiation : Modification des propriétés d'un contexte.

Manuel de notation : Contextes de bas niveau – les voix, La commande de dérogation `\override`, La commande de fixation `\set`, Le bloc `\layout`, Tout savoir sur les contextes.

#### LilyPond — Manuel de notation v2.24.4 (branche stable).