Blanchiment des objets

Tout objet de rendu dispose d’une propriété couleur, par défaut définie à black (noir). Le fait de la forcer à white (blanc) rendra l’objet indistinct du fond blanc. Néanmoins, lorsque cet objet en recouvre d’autres, la couleur de leurs points de jonction dépendra de l’ordre dans lequel ils sont dessinés, ce qui peut laisser apparaître un fantôme de l’objet blanchi comme ci-dessous :

\override Staff.Clef.color = #white
a'1

[image of music]

Cet inconvénient peut être évité en modifiant l’ordre dans lequel les objets sont dessinés. Chaque objet de rendu dispose d’une propriété layer (calque ou niveau) à laquelle est affecté un nombre entier. Les objets ayant la plus faible valeur sont dessinés en premier, puis les autres, de telle sorte qu’un objet ayant une valeur plus élevée les recouvrira. La plupart des objet ont un layer valorisé à 1 – quelques uns, dont StaffSymbol et BarLine, ont une valeur à 0. L’ordre d’impression d’objets ayant une même valeur de layer est indéterminé.

La clef de l’exemple précédent a par défaut un layer à 1 ; elle est donc dessinée après les lignes de la portée – layer valorisé par défaut à 0 – et donc les recouvre. Pour changer cet état de fait, l’objet Clef doit avoir un layer de valeur inférieure, disons -1, pour pouvoir être dessiné avant.

\override Staff.Clef.color = #white
\override Staff.Clef.layer = #-1
a'1

[image of music]

Morceaux choisis

Utilisation de la propriété whiteout

Tout objet graphique peut s’imprimer sur un fond blanc afin de masquer une partie des objets qu’il recouvre. Ceci trouve toute son utilité pour améliorer certaines collisions, notamment dans des situations où un repositionnement d’objets est irréaliste. Il faut alors explicitement définir la propriété layer afin de contrôler quels objets seront masqués par le fond blanc.

Dans l’exemple ci-dessous, la liaison est en collision avec la métrique ; la situation est améliorée dès lors que la portion de liaison qui traverse la métrique est masquée par l’affectation de la propriété whiteout à l’objet TimeSignature. Pour ce faire, TimeSignature est déplacé sur un calque au-dessus de celui de Tie – il reste sur le calque par défaut (1) –, puis le StaffSymbol est placé sur un calque supérieur à celui de TimeSignature pour ne pas être masqué.

{
  \override Score.StaffSymbol.layer = 4
  \override Staff.TimeSignature.layer = 3
  b'2 b'~
  \once \override Staff.TimeSignature.whiteout = ##t
  \time 3/4
  b' r4
}

[image of music]


GNU LilyPond – Manuel de notation v2.25.15 (branche de développement).