1.7.1 Dans la portée

Nous allons voir ici comment mettre en exergue certains éléments à l’intérieur même de la portée.


Indication de la taille de fonte musicale

Note :
Pour les tailles de police textuelle, voir Sélection de la fonte et de la taille.
Pour la taille des portées, voir Définition de la taille de portée.
Pour les petites notes, voir Mise en forme d’une citation.
Pour les variantes, voir Portées d’ossia.

Le plus sûr moyen de régler la taille des éléments de notation sans modifier la taille de la portée consiste à utiliser la commande \magnifyMusic :

\new Staff <<
  \new Voice \relative {
    \voiceOne
    <e' e'>4 <f f'>8. <g g'>16 <f f'>8 <e e'>4 r8
  }
  \new Voice \relative {
    \voiceTwo
    \magnifyMusic 0.63 {
      \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63)
      r32 c'' a c a c a c r c a c a c a c
      r c a c a c a c a c a c a c a c
    }
  }
>>

[image of music]

La présence d’un \override dans cet exemple permet de contourner une bogue – voir « Problèmes connus et avertissements » en fin de section.

Dans le cas de fusion d’une tête de note normale avec une autre de taille inférieure, la taille de la petite note peut nécessiter une réinitialisation – à l’aide d’un ‘\once \normalsize’ – de telle sorte que les hampes et altérations s’alignent correctement :

\new Staff <<
  \key fis \minor
  \mergeDifferentlyDottedOn
  \new Voice \relative {
    \voiceOne
    \magnifyMusic 0.63 {
      \override Score.SpacingSpanner.spacing-increment =
        #(* 1.2 0.63)

      \once \normalsize cis'32( cis' gis b a fis
        \once \normalsize d d'
      \once \normalsize cis, cis' gis b a gis
        \once \normalsize fis fis'
      \once \normalsize fis, fis' ais, cis b gis
        \once \normalsize eis eis'
      \once \normalsize a, a' bis, d cis b
        \once \normalsize gis gis')
    }
  }
  \new Voice \relative {
    \voiceTwo
    cis'8. d16 cis8. fis16 fis8. eis16 a8. gis16
  }
>>

[image of music]

La commande \magnifyMusic n’est pas conçue pour gérer les citations, notes d’ornement ou portées d’ossia – des moyens spécifiques sont déjà disponibles en la matière. Elle est par contre tout à fait adaptée dans le cas d’un instrument particulier disposant de sa propre portée là où des notes d’ornement seraient inappropriées, comme pour une pseudo-cadence ou les exemples ci-dessus. L’attribution d’une valeur de 0,63 à \magnifyMusic duplique les dimensions d’un contexte CueVoice.

Note : La commande \magnifyMusic n’est pas censée intervenir en complément d’une modification de la taille de portée – voir Définition de la taille de portée.

Redimmensionnement individuel d’objets de rendu

L’ajustement de la propriété font-size à l’aide des commandes \tweak ou \override permet de retailler un objet de rendu particulier :

\relative {
  % resize a note head
  <f' \tweak font-size -4 b e>-5
  % resize a fingering
  bes-\tweak font-size 0 -3
  % resize an accidental
  \once \override Accidental.font-size = -4 bes!-^
  % resize an articulation
  \once \override Script.font-size = 4 bes!-^
}

[image of music]

La valeur par défaut de font-size est mentionnée, pour chaque objet de rendu, dans la référence des propriétés internes. La propriété font-size ne peut intervenir que pour les objets qui utilisent des polices, autrement dit ceux qui disposent de l’interface de rendu font-interface. L’abence de font-size dans la liste des « réglages par défaut » d’un objet signifie qu’elle est de 0 – voir All layout objects (Tous les objets de rendu).

La propriété fontSize

La propriété fontSize d’un contexte a pour effet de définir la taille proportionnelle de tout élément de notation basé sur un glyphe dans ce contexte :

\relative {
  \time 3/4
  d''4---5 c8( b a g) |
  \set fontSize = -6
  e'4-- c!8-4( b a g) |
  \set fontSize = 0
  fis4---3 e8( d) fis4 |
  g2.
}

[image of music]

La valeur de fontSize est un nombre indiquant la taille relative par rapport à la hauteur standard de la portée en cours. La valeur par défaut de fontSize est de 0. Un pas de six aboutit exactement au doublement de la taille ; un pas de moins six la réduit de moitié. Chaque incrément correspond à une augmentation d’environ 12 % de la taille de la police.

La fonction Scheme magnification->font-size permet de s’affranchir de l’échelle logarithmique peu intuitive des unités de la propriété font-size. Ainsi, l’ajustement à 75 % de la notation musicale par rapport à la taille de la portée peut se libeller :

\set fontSize = #(magnification->font-size 0.75)

La fonction Scheme magstep quant à elle effectue l’inverse : elle convertit le nombre affecté à font-size en facteur d’échelle.

La propriété fontSize affecte uniquement les éléments de notation reposant sur des glyphes, tels les têtes de note, altérations, scripts, etc. Elle n’aura aucun effet sur la taille de la portée, la hauteur des hampes ou la longueur des ligatures ni sur l’espacement horizontal. L’échelonnement des hampes, ligature et espacement horizontal, couplé à la taille de la notation (sans modification de la taille de la portée), s’obtient à l’aide de la commande \magnifyMusic comme nous venons de le voir. La modification de l’ensemble, y compris la taille de portée, est abordé dans Définition de la taille de portée.

Dès lors que la propriété de contexte fontSize est définie, sa valeur est ajoutée individuellement à la valeur de la propriété de grob font-size des objets de rendu. Ceci peut être source de confusion lorsque des propriétés font-size individuelles sont réglées alors que fontSize est déjà fixé :

% the default font-size for NoteHead is 0
% the default font-size for Fingering is -5
c''4-3

\set fontSize = -3
% the effective font size for NoteHead is now -3
% the effective font size for Fingering is now -8
c''4-3

\override Fingering.font-size = 0
% the effective font size for Fingering is now -3
c''4-3

[image of music]

LilyPond dispose d’un certain nombre de raccourcis :

CommandeÉquivalentTaille relative
\teeny\set fontSize = -371 %
\tiny\set fontSize = -279 %
\small\set fontSize = -189 %
\normalsize\set fontSize = 0100 %
\large\set fontSize = 1112 %
\huge\set fontSize = 2126 %
\relative c'' {
  \teeny
  c4.-> d8---3
  \tiny
  c4.-> d8---3
  \small
  c4.-> d8---3
  \normalsize
  c4.-> d8---3
  \large
  c4.-> d8---3
  \huge
  c4.-> d8---3
}

[image of music]

Pour changer la taille des caractères, LilyPond met à l’échelle la fonte dont la taille est la plus proche de la taille voulue. La taille standard (pour laquelle font-size = 0) dépend de la hauteur de la portée. À une portée de 20 points correspond une police de 11 points.

Commandes prédéfinies

\magnifyMusic, \teeny, \tiny, \small, \normalsize, \large, \huge.

Voir aussi

Manuel de notation : Définition de la taille de portée, Mise en forme d’une citation, Portées d’ossia, Sélection de la fonte et de la taille.

Fichiers d’initialisation : ‘ly/music-functions-init.ly’, ‘ly/property-init.ly’.

Morceaux choisis : Annotations éditoriales.

Référence des propriétés internes : font-interface.

Problèmes connus et avertissements

Deux bogues actuellement répertoriés font obstacle à un espacement horizontal correct avec \magnifyMusic. La seule façon de les contourner n’est cependant pas garantie dans toutes les situations. Dans l’exemple suivant, il vous faudra adapter la valeur de la variable mag. Vous pourriez aussi tenter de supprimer une ou les deux commandes \newSpacingSection, ou les commandes \override et \revert :

\magnifyMusic mag {
  \newSpacingSection
  \override Score.SpacingSpanner.spacing-increment = #(* 1.2 mag)
  [musique]
  \newSpacingSection
  \revert Score.SpacingSpanner.spacing-increment
}

Doigtés

Les doigtés peuvent être indiqués comme suit : note-chiffre_du_doigt

\relative { c''4-1 d-2 f-4 e-3 }

[image of music]

Pour les substitutions de doigts, on a recours à une indication textuelle (commande \markup) de doigté (commande \finger).

\relative {
  c''4-1 d-2 f\finger \markup \tied-lyric "4~3" c\finger "2 - 3"
}

[image of music]

La commande \thumb peut être utilisée pour indiquer, par exemple dans une partition de violoncelle, si une note doit être jouée avec le pouce (thumb en anglais).

\relative { <a'_\thumb a'-3>2 <b_\thumb b'-3> }

[image of music]

Les doigtés des accords peuvent être saisis note par note, en les indiquant après chaque hauteur de note.

\relative {
  <c''-1 e-2 g-3 b-5>2 <d-1 f-2 a-3 c-5>
}

[image of music]

Les indications de doigtés peuvent se placer au-dessus ou en dessous de la portée – voir Direction et positionnement à ce sujet.

Morceaux choisis

Contrôler la position des doigtés dans un accord

Le positionnement des doigtés peut être contrôlé de manière très précise. Afin que l’orientation soit prise en compte, il est nécessaire d’utiliser une syntaxe d’accord < >, même s’il ne s’agit que d’une seule note. Le positionnement des numéros de corde et doigtés main droite se règle de manière analogue.

\relative c' {
  \set fingeringOrientations = #'(left)
  <c-1 e-3 a-5>4
  \set fingeringOrientations = #'(down)
  <c-1 e-3 a-5>4
  \set fingeringOrientations = #'(down right up)
  <c-1 e-3 a-5>4
  \set fingeringOrientations = #'(up)
  <c-1 e-3 a-5>4
  \set fingeringOrientations = #'(left)
  <c-1>2
  \set fingeringOrientations = #'(down)
  <e-3>2
  \set stringNumberOrientations = #'(up left down)
  <f\3 a\2 c\1>1
  \set strokeFingerOrientations = #'(down right up)
  <c\rightHandFinger #1 e\rightHandFinger #2 c'\rightHandFinger #4 >
}

[image of music]

Impression des doigtés à l’intérieur de la portée

L’empilement des indications de doigté se fait par défaut à l’extérieur de la portée. Il est néanmoins possible d’annuler ce comportement. Une attention particulière doit toutefois être portée dans les cas où doigté et hampe vont dans la même direction : les indications de doigté n’évitent les hampe qu’en présence de ligature. Ce réglage peut s’adapter pour éviter toutes les hampes ou aucune d’elles. L’exemple suivant illustre ces deux options, ainsi que la manière de revenir au comportement par défaut.

\relative c' {
  <c-1 e-2 g-3 b-5>2
  \override Fingering.staff-padding = #'()
  <c-1 e-2 g-3 b-5>4 g'-0
  a8[-1 b]-2 g-0 r
  \override Fingering.add-stem-support = ##f
  a[-1 b]-2 g-0 r
  \override Fingering.add-stem-support = ##t
  a[-1 b]-2 g-0 r
  \override Fingering.add-stem-support = #only-if-beamed
  a[-1 b]-2 g-0 r
}

[image of music]

Voir aussi

Manuel de notation : Direction et positionnement.

Morceaux choisis : Annotations éditoriales.

Référence des propriétés internes : Fingering, Fingering_engraver, fingering-event, FingeringEvent, New_fingering_engraver.


Dictée à trous

Les notes masquées – ou invisibles ou encore transparentes – sont utiles dans le cadre d’exercices de théorie ou de composition.

\relative {
  c''4 d
  \hideNotes
  e4 f
  \unHideNotes
  g a
  \hideNotes
  b
  \unHideNotes
  c
}

[image of music]

Têtes de note, hampes, crochets et silences sont invisibles. Une ligature sera invisible si elle démarre sur une note invisible. Les objets de notation attachés à une note invisible ne seront pas masqués pour autant.

\relative c'' {
  e8(\p f g a)--
  \hideNotes
  e8(\p f g a)--
}

[image of music]

Commandes prédéfinies

\hideNotes, \unHideNotes.

Voir aussi

Manuel d’initiation : Visibilité et couleur des objets.

Manuel de notation : Masquage de portées, Silences invisibles, Visibilité des objets.

Morceaux choisis : Annotations éditoriales.

Référence des propriétés internes : Note_spacing_engraver, NoteSpacing.


Coloration d’objets

Des objets peuvent être colorisés individuellement. Une liste des noms des couleurs disponibles se trouve à l’annexe Liste des couleurs.

\override NoteHead.color = #red
c''4 c''
\override NoteHead.color = #(x11-color 'LimeGreen)
d''
\override Stem.color = "deepskyblue"
e''

[image of music]

En plus du jeu limité de couleurs de base prédéfini sous forme de variable – voir les « couleurs normales » dans Liste des couleurs – n’importe quelle couleur peut être spécifiée sous forme de chaîne, qu’il s’agisse d’un nom de couleur prédéfini dans le style CSS ou d’un code hexadécimal préfixé d’un # (le tout entre guillemets informatiques) :

\override NoteHead.color = "lightsalmon"
\override Flag.color = "#E30074"
\override Beam.color = "#5e45ad"
\override Rest.color = "#3058"
g'8 \huge r4 a'16 f'

[image of music]

Lorsque ce code couleur comporte un canal alpha pour la transparence, spécifier un code sur huit caractères "#RRGGBBAA", ou sa forme abrégée "#RGBA", produira ses effets pour une sortie SVG, mais pas pour du PostScript ni du PDF. Dans l’exemple précédent, on peut voir à travers le silence dès lors qu’il est compilé avec le moteur SVG, comme expliqué dans Formats de sortie alternatifs.

De manière différente, l’intégralité de la palette des couleurs définies pour X11 est accessible par la fonction Scheme x11-color. Cette fonction prend en argument une expression symbolique de la forme 'DarkSeaGreen4 ou bien une chaîne de caractères comme "DarkSeaGreen4". La première formulation est à la fois plus rapide à écrire et aussi plus efficace. Néanmoins, la deuxième forme permet d’accéder aux noms composés des couleurs de X11 comme ici "dark sea green 4".

Lorsque la fonction x11-color ne trouve pas le paramètre fourni, elle revient à la couleur par défaut, le noir. Le problème ressort de façon évidente au vu de la partition finale.

\new Staff \with {
  instrumentName = \markup {
    \with-color #(x11-color 'red) "Clarinet"
    }
  }

  \relative c'' {
  \override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
  gis8 a
  \override Beam.color = #(x11-color "medium turquoise")
  gis a
  \override Accidental.color = #(x11-color 'DarkRed)
  gis a
  \override NoteHead.color = #(x11-color "LimeGreen")
  gis a
  % this is deliberate nonsense; note that the stems remain black
  \override Stem.color = #(x11-color 'Boggle)
  b2 cis
}

[image of music]

Un autre moyen consiste à fournir à la fonction Scheme rgb-color les composantes de la couleur exacte au format rouge-vert-bleu (RGB) – chacune étant exprimée en en fraction de 256 (le 0.5 de l’exemple suivant correspond à 128). ainsi qu’éventuellement un nombre définissant le niveau de transparence. Une fois de plus, cette transparence n’est effective que dans le cadre du format SVG, où la clef de l’extrait ci-dessous sera affectée.

\new Staff \with {
  instrumentName = \markup {
    \with-color #(x11-color 'red) "Clarinet"
    }
  \override Clef.color = #(rgb-color 0 0 0 0.5)
  }
\relative c'' {
  \override Stem.color = #(rgb-color 0 0 0)
  gis8 a
  \override Stem.color = #(rgb-color 1 1 1)
  gis8 a
  \override Stem.color = #(rgb-color 0 0 0.5)
  gis4 a
}

[image of music]

Voir aussi

Manuel de notation : La commande d’affinage \tweak, Liste des couleurs.

Morceaux choisis : Annotations éditoriales.

Problèmes connus et avertissements

Une couleur x11 n’aura pas forcément le même rendu qu’une couleur normale ayant un nom similaire.

Les couleurs de X11 ne sont pas toutes perceptibles dans un navigateur internet. Aussi nous vous recommandons, dans le cadre d’une présentation multimédia, d’utiliser des couleurs CSS.

Vous ne pouvez pas coloriser individuellement des notes à l’intérieur d’un accord avec \override. Si besoin est, utilisez \tweak ou \single\override devant la note en question. Pour plus de détails, consultez La commande d’affinage \tweak.


Parenthèses

Des objets peuvent être mis entre parenthèses en saisissant \parenthesize juste avant l’événement musical. Si l’instruction préfixe un accord, chaque note le composant se présentera entre parenthèses. Vous pouvez aussi mettre individuellement entre parenthèses les notes d’un accord.

\relative {
  c''2 \parenthesize d
  c2 \parenthesize <c e g>
  c2 <c \parenthesize e g>
}

[image of music]

Les objets autres que des notes peuvent aussi être entre parenthèses. En ce qui concerne les articulations, l’instruction \parenthesize doit cependant être précédée d’un tiret.

\relative {
  c''2-\parenthesize -. d
  c2 \parenthesize r
}

[image of music]

Voir aussi

Morceaux choisis : Annotations éditoriales.

Référence des propriétés internes : Parenthesis_engraver, ParenthesesItem, parentheses-interface.

Problèmes connus et avertissements

Lorsqu’un accord est mis entre parenthèses, celles-ci s’appliquent individuellement à chacune des notes le composant, alors qu’on attendrait une seule paire de parenthèses encadrant tout l’accord.


Hampes

Dès qu’une note est rencontrée, un objet Stem se crée automatiquement. Pour les rondes et les silences, ils sont aussi créés, mais en mode invisible.

L’orientation des hampes peut être définie manuellement – voir Direction et positionnement à ce sujet.

Commandes prédéfinies

\stemUp, \stemDown, \stemNeutral.

Morceaux choisis

Direction par défaut des hampes de la ligne médiane

La direction des hampes des notes placées sur la ligne médiane de la portée est gérée par la propriété neutral-direction de l’objet Stem.

\relative c'' {
  a4 b c b
  \override Stem.neutral-direction = #up
  a4 b c b
  \override Stem.neutral-direction = #down
  a4 b c b
}

[image of music]

Changement automatique de l’orientation de hampe de la note médiane selon la mélodie

Afin de suivre la ligne mélodique, LilyPond peut inverser l’orientation de hampe de la note médiane, dès lors qu’aura été ajouté au contexte de voix le graveur Melody_engraver et adaptée la propriété neutral-direction de l’objet Stem.

\relative c'' {
  \time 3/4
  a8 b g f b g |
  c  b d c b c |
}

\layout {
  \context {
    \Voice
    \consists "Melody_engraver"
    \autoBeamOff
    \override Stem.neutral-direction = #'()
  }
}

[image of music]

Voir aussi

Manuel de notation : Direction et positionnement.

Morceaux choisis : Annotations éditoriales.

Référence des propriétés internes : Stem_engraver, Stem, stem-interface.


LilyPond — Manuel de notation v2.22.1 (branche stable).