5.4.4 Extenseurs et prolongateurs

De nombreux objets de notation musicale s’étendent sur plusieurs notes, voire même sur plusieurs mesures. Il en va ainsi des liaisons, ligatures, crochets de n-olet, crochets de reprise, crescendos, trilles ou glissandos. Ces objets, que l’on englobe sous l’appellation « d’extenseurs », sont pourvus de propriétés spécifiques destinées à contrôler leur apparence et leur comportement. Ils font aussi appel à des méthodes spécifiques en matière de retouches liées au fait que certains peuvent être rompus lors d’un saut de ligne.


Modification de bandeaux avec rupture

Lorsqu’un bandeau ou l’extension d’un objet rencontre un saut de ligne ou une rupture, chacun de ses tronçons hérite des attributs de l’objet originel. Par voie de conséquence, la modification d’une extension avec rupture produira les mêmes effets sur chacun de ses segments. Dans l’exemple ci-dessous, la modification apportée à thickness s’applique aussi bien avant qu’après le saut de ligne.

\relative c'' {
  r2
  \once\override Slur.thickness = 10
  c8( d e f
  \break
  g8 f e d) r2
}

[image of music]

La commande \alterBroken permet de modifier indépendamment l’apparence de chacune des parties d’un bandeau. Selon le cas, cette commande génèrera soit un \override, soit un \tweak qui s’appliquera à la propriété du bandeau.

La commande \alterBroken répond à la syntaxe :

[-]\alterBroken propriété valeurs élément

L’argument valeurs est constitué d’une liste de valeurs, une pour chaque tronçon. Lorsque élément est un nom d’objet graphique, tels Slur ou Staff.PianoPedalBracket, il en résulte un \override du type de grob spécifié. Lorsque élément est une expression musicale comme « ( » ou « [ », en résulte cette même expression musicale à laquelle s’applique un \tweak.

Le tiret introduisant la commande \alterBroken est impératif dans le cadre d’un \tweak ; il est superflu pour un \override.

Dans sa variante \override, la commande \alterBroken peut se préfixer d’un \once ou d’un \temporary qui seront annulés par un \revert suivi de la propriété – voir Fonctions de substitution intermédiaires.

Le code ci-dessous applique un \override indépendant à chacun des segments du phrasé de l’exemple précédent :

\relative c'' {
  r2
  \alterBroken thickness #'(10 1) Slur
  c8( d e f
  \break
  g8 f e d) r2
}

[image of music]

La commande \alterBroken peut s’utiliser avec tout objet étendu, y compris Tie, PhrasingSlur, Beam et TextSpanner. Par exemple, un éditeur préparant une édition critique pourrait faire ressortir l’absence d’une partie de liaison de phrasé dans l’une des sources, en optant pour un tracé pointillé du seul segment ajouté. L’exemple ci-dessous illustre la manière de procéder, ici avec la variante \tweak de la commande :

% The empty list is conveniently used below, because it is the
% default setting of dash-definition, resulting in a solid curve.
\relative {
  c''2-\alterBroken dash-definition #'(() ((0 1.0 0.4 0.75))) \(e
  \break
  g2 e\)
}

[image of music]

Il est important de considérer que \alterBroken affectera à chaque portion d’un bandeau interrompu la valeur correspondante de valeurs. Si d’aventure il y a moins de valeurs que de tronçons, toute portion additionnelle se verra assigner une liste vide. Ceci peut conduire à des résultats inattendus dans le cas où la propriété de rendu ne bascule pas sur une liste vide par défaut. En pareil cas, chaque segment devrait se voir assigner une valeur appropriée.

Problèmes connus et avertissements

Les sauts de ligne peuvent intervenir à différents endroits pour répondre à des modifications de mise en forme. Les réglages adoptés par \alterBroken peuvent devenir inadaptés si le bandeau n’est plus rompu ou est découpé en plus de segments que prévu. L’introduction explicite d’un \break peut alors pallier ces situations.

La commande \alterBroken est inopérante sur les propriétés d’un bandeau qui sont traitées avant la procédure de saut de ligne, comme direction.

Voir aussi

Manuel d’extension : Retouches complexes.


Affectation d’une longueur minimale aux extenseurs

L’interface spanner-interface fournit trois propriétés qui s’appliquent à certains extenseurs.

La propriété minimum-length

La longueur minimale d’un extenseur est déterminée par la propriété minimum-length. Au plus sa valeur est élevée, au plus l’espacement des notes qui le bornent sera grand. Forcer sa valeur restera néanmoins sans effet pour un certain nombre d’extenseurs dont la longueur dépend d’autres considérations. Voici quelques exemples de mise en œuvre de cette propriété.

a'~ a'
a'
% increase the length of the tie
-\tweak minimum-length #5
~ a'

[image of music]

\relative \compressMMRests {
  a'1
  R1*23
  % increase the length of the rest bar
  \once \override MultiMeasureRest.minimum-length = #20
  R1*23
  a1
}

[image of music]

\relative {
  a' \< a a a \!
  % increase the length of the hairpin
  \override Hairpin.minimum-length = #20
  a \< a a a \!
}

[image of music]

Cette propriété permet aussi de jouer sur l’envergure d’une liaison d’articulation ou de phrasé.

\relative {
  a'( g)
  a
  -\tweak minimum-length #5
  ( g)

  a\( g\)
  a
  -\tweak minimum-length #5
  \( g\)
}

[image of music]

Certains objets requièrent un appel explicite à la procédure set-spacing-rods pour que la propriété minimum-length produise ses effets. La propriété set-spacing-rods doit alors prendre pour valeur ly:spanner::set-spacing-rods. Par exemple, la longueur minimale d’un glissando ne pourra être forcée tant que la propriété springs-and-rods n’aura pas été définie :

% default
e' \glissando c''

% not effective alone
\once \override Glissando.minimum-length = #20
e' \glissando c''

% effective only when both overrides are present
\once \override Glissando.minimum-length = #20
\once \override Glissando.springs-and-rods =
                  #ly:spanner::set-spacing-rods
e' \glissando c''

[image of music]

Il en va de même pour l’objet Beam (ligature) :

% not effective alone
\once \override Beam.minimum-length = #20
e'8 e' e' e'

% effective only when both overrides are present
\once \override Beam.minimum-length = #20
\once \override Beam.springs-and-rods =
                  #ly:spanner::set-spacing-rods
e'8 e' e' e'

[image of music]

La propriété minimum-length-after-break

La propriété minimum-length-after-break peut s’utiliser pour dimensionner le tronçon d’extenseur placé après un saut de ligne. Tout comme la propriété minimum-length, elle nécessite souvent, pour prendre effet, de régler la propriété springs-and-rods sur ly:spanner::set-spacing-rods.

{
  \once \override Tie.minimum-length-after-break = 20
  a1~
  \break
  a1

  \once \override Slur.minimum-length-after-break = 20
  a1(
  \break
  d'1)

  \once \override TextSpanner.springs-and-rods =
    #ly:spanner::set-spacing-rods
  \once \override TextSpanner.minimum-length-after-break = 20
  a1\startTextSpan
  \break
  a1\stopTextSpan

  \once \override Hairpin.after-line-breaking = ##t
  \once \override Hairpin.to-barline = ##f
  \once \override Hairpin.minimum-length-after-break = 20
  a1\<
  \break
  a1\!

  \once \override Glissando.springs-and-rods =
    #ly:spanner::set-spacing-rods
  \once \override Glissando.breakable = ##t
  \once \override Glissando.after-line-breaking = ##t
  \once \override Glissando.minimum-length-after-break = 20
  a1\glissando
  \break
  d'1
}

[image of music]


Contrôle du point d’arrêt des bandeaux

La propriété to-barline fournie par la spanner-interface, activée par défaut, permet aux soufflets et autres extenseurs finissant sur la première note d’une mesure de s’arrêter visuellement au niveau de la barre de mesure qui la précède. Le fait de désactiver la propriété to-barline aura pour effet de prolonger l’extenseur au delà de la barre de mesure et jusqu’à la note qui le borne :

\relative {
  a' \< a a a a \! a a a \break
  \override Hairpin.to-barline = ##f
  a \< a a a a \! a a a
}

[image of music]

Cette propriété n’est pas opérationnelle pour tous les extenseurs. Il serait en effet quelque peu surprenant de l’activer (lui affecter #t) dans le cas d’une liaison d’articulation ou de phrasé !


LilyPond — Manuel de notation v2.23.82 (branche de développement).