[ << Concepts fondamentaux ] | [Racine][Table des matières][Index] | [ Retouche de partition >> ] |
[ < Tout savoir sur les graveurs ] | [Plus haut: Contextes et graveurs ] | [ Ajout et suppression de graveurs > ] |
4.3.4 Modification des propriétés d’un contexte
Les contextes gèrent les différentes valeurs des nombreuses
propriétés qui leur sont attachées. Beaucoup d’entre elles
sont susceptibles d’être modifiées afin d’influer sur l’interprétation
de l’input et ainsi changer l’apparence du résultat. On les modifie
grâce à la commande \set
, qui s’utilise ainsi :
\set ContexteNommé.propriétéNommée = #valeur
où ContexteNommé est habituellement Score
,
Staff
ou Voice
. S’il n’est pas mentionné, il sera
considéré comme étant Voice
.
Les noms des propriétés de contexte sont composés de mots accolés sans trait d’union ni caractère souligné, et dont seul le premier n’aura pas d’initiale en majuscule. Voici quelques exemples de celles les plus communément utilisées.
propriétéNommée | Type | Fonction | Exemple de valeur |
---|---|---|---|
extraNatural | Booléen | Si vrai, ajoute un bécarre avant une altération accidentelle | #t , #f |
currentBarNumber | Entier | Détermine le numéro de la mesure en cours | 50 |
doubleSlurs | Booléen | Si vrai, imprime les liaisons au-dessous et au-dessus des notes | #t , #f |
instrumentName | Texte | Détermine le nom à afficher en début de portée | "Cello I" |
fontSize | Réel | Augmente ou diminue la taille de la fonte | 2.4 |
stanza | Texte | Détermine le texte à imprimer avant le début d’un couplet | "2" |
où un booléen correspond soit à vrai (#t
pour True en
anglais) ou faux (#f
pour False en anglais), un entier est
un nombre entier positif, un réel est un nombre décimal positif ou
négatif, et texte correspond à une suite de caractères encadrée par des
apostrophes doubles. Attention à la présence des signes dièse
(#
) dans deux cas particuliers : ils sont partie intégrante
des valeurs booléennes et précèdent les t
ou f
, mais
doivent aussi précéder valeur dans le libellé de la commande
\set
. Il faudra donc, dans le cas d’une valeur booléenne, ne pas
oublier de saisir deux signes dièse – par exemple ##t
.
Avant de déterminer l’une de ces propriétés, nous devons savoir dans
quel contexte elle intervient. Si cela est bien souvent évident, il
peut arriver que cela tourne au cauchemar. Lorsque vous ne spécifiez
pas le bon contexte, aucun message d’erreur ne s’affiche et l’effet
attendu n’est pas au rendez-vous. Par exemple, le clefGlyph
est
de manière incontestable membre du contexte Staff
, puisque c’est
bien le glyphe de clef de la portée qui doit être changé.
Dans l’exemple suivant, la première portée affiche effectivement la
bonne clef, alors que ce n’est pas le cas pour la deuxième – qui porte
la clef de sol par défaut au lieu d’une clef de basse (clef de fa) –
dans la mesure où le contexte n’a pas été spécifié.
<< \new Staff \relative { \set Staff.clefGlyph = "clefs.C" c''4 c } \new Staff \relative { \set clefGlyph = "clefs.F" % Wrong! d'4 d } >>
Dans la mesure où le nom de contexte par défaut est Voice
, la
deuxième commande \set
a défini la propriété clefGlyph
dans le contexte de voix. Puisque LilyPond n’ira pas chercher une telle
propriété dans le contexte Voice
, celle-ci ne sera pas
interprétée. Il ne s’agit pas d’une erreur, aucun message d’erreur ne
sera ni émis ni enregistré.
La propriété clefGlyph
ne sera prise en compte que si elle
est définie dans un contexte Staff
; d’autres propriétés
peuvent par contre être définies dans plusieurs contextes différents.
C’est le cas de la propriété extraNatural
qui est définie par
défaut à ##t
(vrai) pour toutes les portées. Si vous lui
attribuez la valeur ##f
(faux) dans un contexte Staff
particulier, elle ne s’appliquera qu’aux altérations de la portée en
question ; si vous lui attribuez la valeur « faux » au niveau du
contexte Score
, cela s’appliquera alors à toutes les portées.
Voici comment supprimer les bécarres supplémentaires pour une portée :
<< \new Staff \relative { aeses'2 aes } \new Staff \relative { \set Staff.extraNatural = ##f aeses'2 aes } >>
et pour toutes les portées :
<< \new Staff \relative { aeses'2 aes } \new Staff \relative { \set Score.extraNatural = ##f aeses'2 aes } >>
Autre exemple, si la propriété clefTransposition
est déterminée
au niveau du contexte Score
, elle modifiera la valeur de la
transposition en cours pour toutes les portées actives ; cette valeur
sera considérée comme étant la nouvelle valeur par défaut pour toutes
les portées à venir.
La commande opposée, \unset
, efface la propriété du contexte ; la
plupart des propriétés reviennent de ce fait à leur valeur par défaut.
En règle générale, la commande \unset
n’est pas nécessaire dès
lors que vous faites appel à une nouvelle commande \set
pour
modifier le réglage.
Les commandes \set
et \unset
peuvent intervenir n’importe
où dans votre fichier source. Elles seront effectives dès leur
apparition et jusqu’à la fin de la partition, à moins d’être affectées
par un \unset
ou un nouveau \set
. À titre d’exemple, nous
allons jouer avec la taille des fontes, ce qui affecte entre autres la
grosseur des têtes de note. Les modifications s’appliquent toujours par
rapport à la valeur par défaut, non par rapport à la dernière valeur
définie.
\relative { c'4 d % make note heads smaller \set fontSize = #-4 e4 f | % make note heads larger \set fontSize = #2.5 g4 a % return to default size \unset fontSize b4 c | }
Nous venons de voir comment déterminer la valeur de différents types de
propriété. N’oubliez pas que les nombres, entiers ou réels, doivent
être précédés d’un signe dièse (#
) et les valeurs vrai ou faux de
deux signes dièse – respectivement ##t
et ##f
–. Une
valeur textuelle doit être encadrée de guillemets anglais,
"…"
, bien que, comme nous le constaterons plus tard, la
commande \markup
permet aussi de spécifier du texte.
Définition des propriétés de contexte avec \with
Les propriétés d’un contexte peuvent aussi être réglées lors de la
création de ce contexte. Ceci constitue parfois une façon plus claire
de spécifier les valeurs d’une propriété pour la durée de vie du
contexte. Lorsque vous créez un contexte à l’aide de la commande
\new
, vous pouvez la faire suivre immédiatement d’un bloc
\with { … }
qui contiendra les réglages des différentes
propriétés. Ainsi, si nous voulions par exemple annuler l’impression
des bécarres supplémentaires sur la durée d’une portée, nous
écririons :
\new Staff \with { extraNatural = ##f }
ce qui donnerait :
<< \new Staff \relative { gisis'4 gis aeses aes } \new Staff \with { extraNatural = ##f } { \relative { gisis'4 gis aeses aes } } >>
Les propriétés réglées de cette manière peuvent néanmoins être modifiées
de façon dynamique grâce à \set
; un \unset
les ramènera à
leur valeur initialisée par \with
.
La propriété fontSize
constitue une exception : lorsqu’elle
est déterminée au sein d’un bloc \with
, cela redéfinit la valeur
par défaut de la taille de fonte. Une modification est possible par la
commande \set
, mais la commande \unset fontSize
fera
revenir à la nouvelle valeur par défaut.
Définition des propriétés de contexte avec \context
Vous pouvez régler les valeurs des propriétés de contexte en une seule
fois pour tous les contextes d’un même type, par exemple tous les
contextes Staff
. Le type du contexte doit être donné
explicitement d’après son nom, par exemple Staff
, précédé d’une
oblique inverse, donc nous saisirons \Staff
. La manière de
régler la valeur des propriétés est la même que ce que nous avons vu
avec la commande \with
, puisqu’on se place dans un bloc
\context
inclus dans un bloc \layout
. Chaque bloc
\context
affectera tous les contextes concernés par le bloc
\score
ou \book
au sein duquel apparaît ce bloc
\layout
. Voici comment le mettre en place :
\score { \new Staff { \relative { cisis''4 e d cis } } \layout { \context { \Staff extraNatural = ##t } } }
Dans le cas où ces ajustements de propriété doivent affecter toutes les portées de la partition, nous utiliserons alors :
\score { << \new Staff { \relative { gisis'4 gis aeses aes } } \new Staff { \relative { gisis'4 gis aeses aes } } >> \layout { \context { \Score extraNatural = ##f } } }
Les propriétés de contexte ainsi définies peuvent être adaptées pour
chacun des contextes en particulier grâce à un bloc \with
ou bien
une commande \set
au fil des notes.
Voir aussi
Manuel de notation : Modification des réglages par défaut d'un contexte, La commande de fixation (set).
Référence des propriétés internes : Contexts, Tunable context properties.
[ << Concepts fondamentaux ] | [Racine][Table des matières][Index] | [ Retouche de partition >> ] |
[ < Tout savoir sur les graveurs ] | [Plus haut: Contextes et graveurs ] | [ Ajout et suppression de graveurs > ] |