5.3.2 Taille des objets

Pour commencer, reprenons l’exemple qui se trouvait dans Expressions musicales imbriquées, qui montrait comment créer une nouvelle portée temporaire, du type ossia.

\new Staff ="main" {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f8 c c }
      \new Staff \with {
        alignAboveContext = "main" }
      { f8 f c }
    >>
    r4 |
  }
}

[image of music]

Normalement, les ossias ne comportent ni clef ni indication de mesure, et elles sont imprimées légèrement plus petit que la portée principale. Nous avons déjà appris à enlever la clef et la métrique – il suffit de régler le stencil de chacun sur #f, comme ceci :

\new Staff ="main" {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f8 c c }
      \new Staff \with {
        alignAboveContext = "main"
      }
      {
        \omit Staff.Clef
        \omit Staff.TimeSignature
        { f8 f c }
      }
    >>
    r4 |
  }
}

[image of music]

La paire d’accolades ajoutée après la clause \with est nécessaire pour être sûr que les retouches (\override) ainsi que la musique qui se trouvent à l’intérieur soient bien appliquées à la portée d’ossia.

Mais alors, quelle différence y a-t-il à modifier le contexte de portée au moyen de \with ou à modifier les stencils de la clef et de la métrique avec \override ou \omit comme ici ? La principale différence est que les changements opérés dans une clause \with sont réalisés au moment où le contexte est créé et restent par la suite les valeurs par défaut aussi longtemps que ce contexte existe, tandis que les commandes \set ou \override insérées dans la musique sont dynamiques – elles provoquent des changements synchronisés avec un point particulier de la musique. Si les changements sont annulés ou désactivés par \unset ou \revert, les réglages reprennent leurs valeurs par défaut, c’est-à-dire celles qui ont été fixées dans la clause \with, ou, en l’absence de celle-ci, les valeurs par défaut normales.

Certaines propriétés de contexte ne peuvent être modifiées que dans une clause \with. Il s’agit des propriétés qu’on ne peut évidemment plus changer après que le contexte a été créé. C’est le cas de alignAboveContext et de son pendant, alignBelowContext – une fois que la portée a été créée, son alignement est décidé et cela n’aurait aucun sens de vouloir le modifier par la suite.

Dans une clause \with, on peut aussi régler les valeurs par défaut des propriétés d’un objet. Il suffit d’utiliser la commande \override normale, sans s’occuper du nom de contexte puisqu’il ne fait pas de doute qu’il s’agit du contexte en cours de modification par la clause \with. Il se produirait même une erreur si le contexte était précisé.

Remplaçons donc l’exemple ci-dessus par celui-ci :

\new Staff ="main" {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f8 c c }
      \new Staff \with {
        alignAboveContext = "main"
        % Don't print clefs in this staff
        \override Clef.stencil = ##f
        % Don't print time signatures in this staff
        \override TimeSignature.stencil = ##f
      }
      { f8 f c }
    >>
    r4 |
  }
}

[image of music]

Nous pourrions tout aussi bien utiliser les raccourcis \hide et \omit pour activer la propriété transparent et désactiver le stencil, ce qui donnerait :

\new Staff ="main" {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f8 c c }
      \new Staff \with {
        alignAboveContext = "main"
        % Don't print clefs in this staff
        \omit Clef
        % Don't print time signatures in this staff
        \omit TimeSignature
      }
      { f8 f c }
    >>
    r4 |
  }
}

[image of music]

Venons-en finalement au changement de taille des objets.

Certains objets sont créés comme des glyphes choisis dans une police de caractères. C’est le cas des têtes de notes, des altérations, des markup, des clefs, des métriques, des nuances et des paroles. Pour changer leur taille, on modifie la propriété font-size, comme nous le verrons rapidement. D’autres objets, comme les liaisons de phrasé ou de prolongation – en général les objets étendus – sont dessinés à la demande, si bien qu’aucune font-size ne leur est associée. Ces objets tirent généralement leur dimension des objets auxquels ils sont rattachés, de sorte qu’on ne doit pas avoir à les redimensionner à la main. D’autres propriétés, comme la hauteur des hampes et des barres de mesure, l’épaisseur des ligatures et d’autres lignes, et l’écartement des lignes de portée, doivent encore être modifiées de façon particulière.

Si l’on revient à l’exemple d’ossia, commençons par changer la taille de police. Nous pouvons employer deux méthodes. Soit nous changeons la taille de police de chaque type d’objet avec des commandes comme celle-ci pour les têtes de notes (NoteHead) :

\override NoteHead.font-size = -2

soit nous changeons la taille de toutes les polices à la fois grâce à la propriété fontSize, en utilisant \set ou en l’insérant dans une clause \with (mais alors sans le \set).

\set fontSize = -2

Chacune de ces méthodes réduira la taille de police de deux points par rapport à sa valeur précédente, sachant que chaque point réduit ou augmente la taille d’environ 12 %.

Essayons sur l’exemple d’ossia :

\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
        % Reduce all font sizes by ~24%
        fontSize = -2
      }
      { f8 f c }
    >>
    r4 |
  }
}

[image of music]

Ce n’est pas encore parfait. Les têtes de notes et les crochets sont plus petits mais, proportionnellement, les hampes sont trop longues et les lignes de la portée trop espacées. Il faut donc les réduire dans les mêmes proportions que les polices de caractères. La prochaine sous-section montrera comment faire.


GNU LilyPond – Manuel d’initiation v2.25.22 (development-branch).