[ << Retouche de partition ] | [Top][Contents][Index] | [ Modèles >> ] |
[ < La propriété transparent ] | [ Up : Visibilité et couleur des objets ] | [ Taille des objets > ] |
La propriété color
Essayons enfin de rendre les barres de mesure invisibles en les colorant en blanc. La difficulté est de savoir si les barres blanches vont couper ou non les lignes de la portée aux endroits où elles se croisent. Vous verrez dans les exemples ci-dessous que cela peut se produire, sans qu’on le sache à l’avance. Les explications de ce phénomène et les solutions pour y remédier sont exposées dans Blanchiment des objets. Pour le moment, acceptons cet inconvénient et concentrons-nous sur l’apprentissage de la gestion des couleurs.
La grob-interface
indique que la valeur de la propriété
color
est une liste, sans plus d’explication. En fait, cette
liste est une liste de valeurs en unités internes ; pour éviter d’avoir
à chercher ce qu’il faut y mettre, il existe différents moyens
d’indiquer la couleur. Le premier moyen consiste à utiliser l’une des
couleurs CSS de la première Liste
des couleurs. Pour mettre les barres de mesure en blanc, on écrit :
\relative { \time 12/16 \override Staff.BarLine.color = "white" c''4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 }
et nous constatons que les barres de mesure sont une fois de plus
invisibles. Attention : aucune apostrophe ne précède "white"
–
il ne s’agit pas d’un symbole, mais d’une chaîne de caractères mappée
dans une liste prédéfinie de valeurs internes. La syntaxe de Lilypond, à
ce propos, ressemble en tout point au
langage CSS couremment utilisé
pour les pages internet. En plus des noms prédéfinis, il est possible de
spécifier une couleur par un code hexadécimal :
\relative { \time 12/16 \override Staff.BarLine.color = "#FFFFFF" c''4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 }
On pourrait tout aussi bien définir cette couleur sous forme de variable que l’on utiliserait ensuite en tant que définition d’une propriété. Dans la mesure où il s’agit à la fois d’une variable LilyPond et d’un objet Scheme, elle pourra indifféremment se préfixer d’une oblique inversée ou d’un hash :
whiteVar = "#FFFFFF" \relative { \time 12/16 \override Staff.BarLine.color = \whiteVar c''4 b8 c d16 c d8 | \override Staff.BarLine.color = #whiteVar g,8 a16 b8 c d4 e16 | e8 }
Un autre moyen d’ajouter des couleurs à une partition consiste à
recourir à une fonction. Deux fonctions sont utiles à cet égard : la
fonction x11-colors
que nous verrons plus avant, et la fonction
rgb-colors
qui, quant à elle, illustre la logique interne de
LilyPond. Cette fonction prend trois arguments, donnant respectivement
l’intensité du rouge, du vert et du bleu. Ces arguments prennent des
valeurs comprises entre 0 et 1. Ainsi, pour choisir la couleur rouge, la
valeur serait (rgb-color 1 0 0)
; pour le blanc, ce serait
(rgb-color 1 1 1)
:
\relative { \time 12/16 \override Staff.BarLine.color = #(rgb-color 1 1 1) c''4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 }
Notez bien que, dans ce cas, l’intégralité de l’appel à cette fonction
est borné par des parenthèses. Il en va de même pour la fonction
x11-colors
que nous avions laissée de côté.
La fonction x11-colors
, elle aussi, convertit les noms
symboliques de couleur en une liste de valeurs internes, mais elle offre
plus de choix que les couleurs CSS comme on peut le constater dans la
Liste des couleurs. Par exemple, elle
comporte une échelle de gris qui va du noir ('grey0
) au blanc
('grey100
), avec un pas de 1. Essayons de l’utiliser en
attribuant à tous les objets de notre exemple différentes nuances de
gris :
\relative { \time 12/16 \override Staff.StaffSymbol.color = #(x11-color 'grey30) \override Staff.TimeSignature.color = #(x11-color 'grey60) \override Staff.Clef.color = #(x11-color 'grey60) \override Voice.NoteHead.color = #(x11-color 'grey85) \override Voice.Stem.color = #(x11-color 'grey85) \override Staff.BarLine.color = #(x11-color 'grey10) c''4 b8 c d16 c d8 | g,8 a16 b8 c d4 e16 | e8 }
Vous remarquerez le contexte associé à chacun des objets. Une erreur sur ce point empêcherait la commande de fonctionner. Souvenez-vous que le contexte est celui dans lequel est placé le graveur approprié. Pour chaque graveur, on peut trouver son contexte par défaut en partant de l’objet lui-même, puis en cherchant le graveur qui le produit ; la page du graveur dans la RPI nous indique alors le contexte dans lequel le graveur se trouve normalement.
[ << Retouche de partition ] | [Top][Contents][Index] | [ Modèles >> ] |
[ < La propriété transparent ] | [ Up : Visibilité et couleur des objets ] | [ Taille des objets > ] |