[ << Retouche de partition ] | [Racine][Table des matières][Index] | [ Modèles >> ] |
[ < Conventions de nommage des objets et propriétés ] | [Plus haut: Retouches élémentaires ] | [ La commande override > ] |
5.1.4 Méthodes de retouche
La commande \override | ||
La commande \revert | ||
Le préfixe \once | ||
La commande \tweak | ||
Le préfixe \single |
[ << Retouche de partition ] | [Racine][Table des matières][Index] | [ Modèles >> ] |
[ < Méthodes de retouche ] | [Plus haut: Méthodes de retouche ] | [ La commande revert > ] |
La commande \override
Dans Modification des propriétés d’un contexte et dans
Ajout et suppression de graveurs, nous avons déjà rencontré les
commandes \set
et \with
, qui servent à changer les
propriétés des contextes et à supprimer ou ajouter des
graveurs. Voici maintenant d’autres commandes plus
importantes.
La commande pour changer les propriétés des objets de rendu
est \override
. Du fait que cette commande modifie en profondeur
les propriétés internes de LilyPond, sa syntaxe n’est pas aussi simple
que pour les commandes vues précédemment. Elle a besoin de savoir avec
précision quelle est la propriété à modifier, pour quel objet et dans
quel contexte, et quelle doit être sa nouvelle valeur. Voyons de quoi
il retourne.
La syntaxe générale de cette commande est :
\override Contexte.ObjetDeRendu.propriété-rendu = #valeur
Elle attribue à la propriété appelée propriété-rendu, associée à l’objet ObjetDeRendu, appartenant lui-même au contexte Contexte, une valeur valeur.
Le contexte Contexte peut être omis (c’est généralement le cas)
quand il n’y a pas d’ambiguïté et qu’il s’agit d’un contexte de très bas
niveau, comme Voice
, ChordNames
ou Lyrics
. Dans les
exemples qui suivent, le contexte sera très souvent omis. Nous verrons
plus tard dans quelles circonstances il doit impérativement être
indiqué.
Les sections ci-dessous traitent largement des propriétés et de leurs valeurs – voir Types de propriétés – mais, pour illustrer la mise en forme et l’utilisation de ces commandes, nous nous limiterons à n’employer que quelques propriétés et valeurs simples, facilement compréhensibles.
LilyPond reconnaît comme expression primaire les éléments musicaux tels que les notes et durées, ainsi que les chînes de caractères et annotations (les markups). D’autres expressions spécifiques comme les nombres, symboles et listes sont gérées en « mode Scheme », mode appelé en faisant précéder une valeur par un ‘#’. Pour de plus amples informations quant au mode Scheme, consultez Syntaxe Scheme dans LilyPond.
La commande \override
est la plus fréquemment utilisée pour faire
des retouches, et pratiquement tout le reste de ce chapitre aura pour
but de montrer, à travers des exemples, comment l’utiliser. L’exemple
ci-dessous change la couleur des têtes de notes :
\relative { c'4 d \override NoteHead.color = "red" e4 f | \override NoteHead.color = "green" g4 a b c | }
[ << Retouche de partition ] | [Racine][Table des matières][Index] | [ Modèles >> ] |
[ < La commande override ] | [Plus haut: Méthodes de retouche ] | [ Le préfixe once > ] |
La commande \revert
Une fois qu’elle a été modifiée, la propriété conserve sa nouvelle
valeur jusqu’à ce qu’elle soit à nouveau modifiée ou qu’elle rencontre
la commande \revert
. La commande \revert
obéit à la
syntaxe ci-dessous et ramène la valeur de la propriété à sa valeur
d’origine. Attention : dans le cas où plusieurs \override
ont
été employés, il ne s’agit pas de la valeur précédente mais bien de la
valeur par défaut.
\revert Contexte.ObjetDeRendu.propriété-de-rendu
Tout comme pour la commande \override
, la mention du
Contexte est souvent facultative. Elle sera omise dans de
nombreux exemples ci-dessous. Voici un exemple qui ramène la couleur
des deux dernières notes à leur valeur par défaut :
\relative { c'4 d \override NoteHead.color = "red" e4 f | \override NoteHead.color = "green" g4 a \revert NoteHead.color b4 c | }
[ << Retouche de partition ] | [Racine][Table des matières][Index] | [ Modèles >> ] |
[ < La commande revert ] | [Plus haut: Méthodes de retouche ] | [ La commande tweak > ] |
Le préfixe \once
Les commandes \override
, \revert
, \set
et
\unset
peuvent supporter le préfixe \once
. Celui-ci a
pour fonction de n’appliquer la commande considérée qu’à l’instant
musical en cours, avant que la propriété ne reprenne sa valeur
antérieure – qui n’est pas forcément la valeur par défaut lorsqu’un
autre \override
ou \set
est toujours effectif. Toujours à
partir du même exemple, il est possible de ne changer la couleur que
d’une seule note :
\relative { c'4 d \override NoteHead.color = "red" e4 f | \once \override NoteHead.color = "green" g4 a \once \revert NoteHead.color b c | \revert NoteHead.color f2 c | }
Le préfixe \once
peut s’utiliser avec de nombreuses
commandes prédéfinies pour en limiter les effets à un seul instant
musical :
\relative { c'4( d) \once \slurDashed e4( f) | g4( a) \once \hideNotes b( c) | }
[ << Retouche de partition ] | [Racine][Table des matières][Index] | [ Modèles >> ] |
[ < Le préfixe once ] | [Plus haut: Méthodes de retouche ] | [ Le préfixe single > ] |
La commande \tweak
La dernière commande disponible pour les retouches est
\tweak
. Elle sert à changer les propriétés d’objets qui
surviennent simultanément dans la musique, comme par exemple les
notes d’un accord. La commande \override
modifierait toutes
les notes de l’accord, tandis que \tweak
permet de ne modifier
que l’élément immédiatement suivant dans la chaîne de saisie.
Voici un exemple. Supposons que nous voulions changer la taille de
la tête de note du milieu (le mi) dans un accord de do majeur. Voyons
d’abord ce que donnerait \once \override
:
\relative { <c' e g>4 \once \override NoteHead.font-size = #-3 <c e g>4 <c e g>4 }
Nous voyons que \override
modifie toutes les têtes
de notes de l’accord, car toutes les notes de l’accord surviennent au
même instant musical et que la fonction de \once
est de faire porter la modification sur tous les objets du type spécifié
qui surviennent au même instant musical, comme le fait la commande
\override
elle-même.
La commande \tweak
opère différemment. Elle agit
sur l’élément immédiatement suivant dans la chaîne de saisie. Dans sa
forme la plus simple, elle ne fonctionne que sur les objets créés
directement à partir de l’élément suivant dans la chaîne de saisie,
c’est-à-dire essentiellement des têtes de notes et des articulations.
Pour reprendre notre exemple, la taille de la note du milieu d’un accord peut être modifiée de cette manière :
\relative { <c' e g>4 <c \tweak font-size #-3 e g>4 }
Vous noterez que la syntaxe de \tweak
est différente de
celle de la commande \override
. Ni le contexte,
ni l’objet n’ont besoin d’être spécifiés ; au contraire, cela
produirait une erreur si on le faisait. Tous deux sont sous-entendus
par l’élément suivant dans la chaîne de saisie. Il n’est pareillement
pas nécessaire d’insérer un signe égal. La syntaxe générale
de la commande \tweak
est donc, tout simplement :
\tweak propriété-de-rendu #valeur
La commande \tweak
est aussi utilisée quand on veut, dans
une série d’articulations, n’en modifier qu’une seule. Ainsi :
a'4^"Black" -\tweak color "red" ^"Red" -\tweak color "green" _"Green"
Attention : la commande \tweak
doit être précédée d’une
marque d’articulation, comme si elle-même était une articulation. Dans
la cas de multiples positionnements forcés (^
ou _
), celui
le plus à gauche aura préséance puisqu’il sera appliqué en dernier.
Les objets tels que hampes et altérations seront créés postérieurement à
l’événement qui survient. L’utilisation de la commande \tweak
sur de tels objets indirectement créés peut se faire en nommant
explicitement l’objet de rendu, si tant est que LilyPond puisse remonter
jusqu’à l’événement originel :
<\tweak Accidental.color "red" cis''4 \tweak Accidental.color "green" es'' g''>
Cette forme développée de la commande \tweak
correspond à :
\tweak objet-de-rendu.propriété-de-rendu #valeur
Quand plusieurs n-olets sont imbriqués et commencent au même instant
musical, c’est encore la commande \tweak
qui est utilisée pour
changer l’apparence de l’un d’entre eux. Dans l’exemple suivant, le
long crochet de n-olet et le premier des trois crochets courts commencent
au même instant musical ; une commande \override
s’appliquerait
donc à la fois aux deux. En revanche, \tweak
permet de les
dissocier. La première commande \tweak
indique que le long
crochet doit être placé au-dessus des notes, et la seconde indique que
le coefficient de n-olet doit être imprimé en rouge sur le premier
crochet de triolet court.
\relative c'' { \tweak direction #up \tuplet 3/4 { \tweak color "red" \tuplet 3/2 { c8[ c c] } \tuplet 3/2 { c8[ c c] } \tuplet 3/2 { c8[ c c] } } }
Si les n-olets imbriqués ne commencent pas au même moment,
leur apparence peut alors être modifiée de la façon habituelle,
avec la commande \override
:
\relative { \tuplet 3/2 { c'8[ c c] } \once \override TupletNumber.text = #tuplet-number::calc-fraction-text \tuplet 3/2 { c8[ c] c8[ c] \once \override TupletNumber.transparent = ##t \tuplet 3/2 { c8[ c c] } \tuplet 3/2 { c8[ c c] } } }
Voir aussi
Manuel de notation : La commande d'affinage (tweak).
[ << Retouche de partition ] | [Racine][Table des matières][Index] | [ Modèles >> ] |
[ < La commande tweak ] | [Plus haut: Méthodes de retouche ] | [ Le manuel de référence des propriétés internes > ] |
Le préfixe \single
Supposons que nous voulions mettre en exergue certaines têtes de note – plus grosses et en rouge – et, pour nous simplifier la vie, que nous avons réalisé un fonction à ce effet :
emphNoteHead = { \override NoteHead.color = "red" \override NoteHead.font-size = 2 } \relative { c''4 a \once \emphNoteHead f d | }
Le préfixe \once
fonctionne à merveille dans le cas d’une note
isolée ou de l’intégralité d’un accord, mais ne permet pas de souligner
individuellement l’une des notes d’un accord. Nous avons vu comment un
\tweak
permet d’y arriver – voir La commande \tweak
. Un
\tweak
ne peut toutefois pas s’utiliser dans une fonction ; un
\single
permet d’appliquer la fonction une seule fois :
emphNoteHead = { \override NoteHead.color = "red" \override NoteHead.font-size = 2 } \relative { <c'' a \single \emphNoteHead f d>4 }
En résumé, l’instruction \single
convertit les instructions
\override
en \tweak
de telle sorte que lorsque plusieurs
objets se trouvent en un même point du temps musical, comme la tête des
notes formant un accord, \single
n’en affectera qu’une seule,
celle générée par l’expression musicale qui vient juste après,
contrairement à un \once
qui en affectera tous les objets.
Cette utilisation de \single
permet d’appliquer individuellement
n’importe quel raccourci de fonction contenant des \override
aux
notes d’un accord. Néanmoins, l’instruction \single
ne permet
pas de convertir des \revert
, \set
ou \unset
en
\tweak
.
Voir aussi
Manuel d’initiation :
La commande \tweak
,
Utilisation de variables dans les retouches.
[ << Retouche de partition ] | [Racine][Table des matières][Index] | [ Modèles >> ] |
[ < La commande tweak ] | [Plus haut: Méthodes de retouche ] | [ Le manuel de référence des propriétés internes > ] |