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 | ||
Affectation d’une longueur minimale aux extenseurs | ||
Contrôle du point d’arrêt des bandeaux |
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 }
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 }
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\) }
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'
\relative \compressMMRests { a'1 R1*23 % increase the length of the rest bar \once \override MultiMeasureRest.minimum-length = #20 R1*23 a1 }
\relative { a' \< a a a \! % increase the length of the hairpin \override Hairpin.minimum-length = #20 a \< a a a \! }
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\) }
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''
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'
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 }
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 }
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é !