4.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 g' { r4 g8 g c4 c8 d | e4 r8 << { f c c } \new Staff \with { alignAboveContext = #"main" } { f8 f c } >> r4 | } }
Normalement, les ossia 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 g' { r4 g8 g c4 c8 d | e4 r8 << { f c c } \new Staff \with { alignAboveContext = #"main" } { \override Staff.Clef #'stencil = ##f \override Staff.TimeSignature #'stencil = ##f { f8 f c } } >> r4 | } }
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
? 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
les 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 g' { r4 g8 g c4 c8 d | e4 r8 << { f 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 | } }
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 g' { r4 g8 g c4 c8 d | e4 r8 << { f c c } \new Staff \with { alignAboveContext = #"main" \override Clef #'stencil = ##f \override TimeSignature #'stencil = ##f % Reduce all font sizes by ~24% fontSize = #-2 } { f8 f c } >> r4 | } }
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 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.