5.3.3 Longueur et épaisseur des objets

Dans LilyPond, les écartements et longueurs sont généralement mesurés en « intervalles de lignes » (staff spaces en anglais), c’est-à-dire l’écartement qui sépare deux lignes adjacentes dans la portée. Plus rarement, il est question de demi-intervalles de lignes. Les propriétés d’épaisseur (thickness), quant à elles, sont généralement mesurées en unités d’une propriété interne appelée « épaisseur de ligne » (propriété thickness de l’objet graphique StaffSymbol). Par exemple, les lignes de (de)crescendo présentent par défaut une épaisseur d’une unité d’épaisseur de ligne de portée, alors que l’épaisseur d’une hampe est de 1,3. Toutefois, certaines propriétés d’épaisseur sont différentes : par exemple, l’épaisseur des ligature – beam-thickness – se mesure en espaces de portée.

Dans ces conditions, comment ajuster les longueurs à la taille des polices de caractères ? La solution consiste à utiliser une fonction spéciale appelée magstep – pseudo facteur de zoom –, créée précisément dans ce but. Elle comporte un argument, le changement de taille de police (la valeur -2 dans l’exemple précédent), à partir duquel elle applique un facteur de mise à l’échelle qui réduit, ou augmente, les objets en question. La gageure consiste donc à ne pas modifier la taille des haampes et autres objets, mais de plutôt jouer sur la l’unité de base de ces tailles – en l’occurrence la propriété staff-space de l’objet graphique StaffSymmbol.

\new Staff ="main" {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f8 c c }
      \new Staff \with {
        alignAboveContext = "main"
        \omit Clef
        \omit TimeSignature
        fontSize = -2
        % Reduce stem length and line spacing to match
        \override StaffSymbol.staff-space = #(magstep -2)
      }
      { f8 f c }
    >>
    r4 |
  }
}

[image of music]

Bien que la modification de staff-space affecte la taille de l’ossia, cela ne change en rien l’espacement horizontal – la dimension horizontale étant déterminée par les objets de la portée principale de façon à rester synchronisée vis-à-vis d’elle, elle n’est pas affectée par tous ces changements de taille. Bien sûr, si l’échelle de toute la portée principale était modifiée, tout le placement horizontal s’en trouverait affecté. Il en sera question plus bas dans cette section.

Voilà qui complète la création d’une ossia. Les taille et longueur de tous les objets peuvent être modifiées de manière analogue.

Pour de petits changements d’échelle, comme dans l’exemple ci-dessus, il n’est généralement pas utile d’ajuster l’épaisseur des différentes lignes telles que les barres de mesure, les ligatures, les soufflets de crescendo ou decrescendo, les liaisons, etc. Si l’épaisseur d’un objet en particulier doit être ajustée, le mieux est de modifier sa propriété thickness. Nous avons vu plus haut, dans Propriétés des objets de rendu, un exemple de modification de l’épaisseur des liaisons. L’épaisseur de tous les objets tracés (c’est-à-dire ceux qui ne proviennent pas d’une police de caractère) peut être changée de la même manière.


GNU LilyPond – Manuel d’initiation v2.25.20 (branche de développement).