5.5.4 Modification de l’allure des éléments
Modification des liaisons |
Modification des liaisons
Les liaisons, qu’elles soient de prolongation (Tie
),
d’articulation (Slur
), de phrasé (PhrasingSlur
), de
laisser-vibrer (LaissezVibrerTie
ou de reprise
(RepeatTie
), sont dessinées sous la forme de courbes de Bézier de
degré trois. Lorsque l’aspect de la liaison automatiquement calculé
n’est pas satisfaisant, il peut être modifié manuellement de deux
manières différentes :
- en spécifiant l’ajustement qui doit être apporté aux points de contrôle de la courbe calculée automatiquement, ou
- en fournissant explicitement les quatre points de contrôle qui permettront de définir cette courbe.
Ces deux méthodes sont expliquées ci-dessous. La première convient mieux dans le cas d’une légère adaptation de la courbe ; la seconde sera plus efficace lorsqu’il s’agira de créer une courbe sur une seule et unique note.
Courbes de Bézier cubiques
Quatre points définissent une courbe de Bézier cubique. Les premier et quatrième points sont les points de départ et d’arrivée de la courbe ; les deux autres points de contrôle – P1 et P2 – en détermineront l’allure. La courbe se trace en partant du point P0, en se dirigeant vers P1 et en arrivant au point P3 selon la direction P2-P3. La courbe est à l’intérieur de l’enveloppe convexe des points de contrôle. Tout déplacement (translation, rotation, échelonnement) des points de contrôle sera répercuté sur le dessin de la courbe.
Spécification de l’ajustement des points de contrôle
Voici par exemple une liaison de prolongation dont l’allure n’est pas
des plus heureuses, même en optant pour un \tieDown
.
<< { e'1~ 1 } \\ \relative { r4 <g' c,> <g c,> <g c,> } >>
L’ajustement des points de contrôle de cette liaison de tenue à
l’aide de \shape
permet d’éviter les collisions.
L’instruction \shape
obéit à la syntaxe
[-]\shape déplacements élément
Ceci aura pour effet de repositionner les points de contrôle de élément des différents montants fournis par déplacements. L’argument déplacements est constitué d’une liste de paires de nombres ou bien d’une liste de telles listes. Chacun des membres de l’une des paires indique l’ajustement de la coordonnée d’un point de contrôle. Lorsque élément est textuel, il en résulte une dérogation particulière appliquée au type d’objet considéré, alors que dans le cas d’une expression musicale sera appliqué un affinage approprié.
En d’autres termes, la fonction \shape
se comporte soit comme un
\once \override
, soit comme un \tweak
selon que l’argument
élément est un nom d’objet – tel « Slur » – ou une expression
musicale tel un « ( ». L’argument déplacements spécifie les
ajustements à apporter aux quatre points de contrôle, sous la forme
d’une liste de paires (dx . dy)
dont les valeurs sont
exprimées en espace de portée ; on utilisera une liste de listes de
paires dans le cas où la courbe comporte plusieurs segments.
La fonction sera précédée d’un tiret si et seulement si elle doit
s’appliquer sous forme de \tweak
.
Pour l’exemple qui nous occupe, l’adaptation sous forme dérogatoire –
recours à \once\override
– de la fonction \shape
, nous
pouvons remonter la liaison d’un demi espace de portée :
<< { \shape #'((0 . 0.5) (0 . 0.5) (0 . 0.5) (0 . 0.5)) Tie e'1~ 1 } \\ \relative { r4 <g' c,> <g c,> <g c,> } >>
La liaison est maintenant mieux positionnée ; mais sa partie
centrale pourrait être un peu plus relevée, en procédant comme
ci-dessous, cette fois en utilisant la formulation d’affinage
– la forme \tweak
:
<< { e'1-\shape #'((0 . 0.5) (0 . 1) (0 . 1) (0 . 0.5)) ~ e' } \\ \relative { r4 <g' c,> <g c,> <g c,> } >>
L’adaptation du positionnement horizontal des points de contrôle se réalise de la même manière, ce qui permet de gérer le galbe de deux courbes débutant au même instant musical :
\relative { c''8(\( a) a'4 e c\) \shape #'((0.7 . -0.4) (0.5 . -0.4) (0.3 . -0.3) (0 . -0.2)) Slur \shape #'((0 . 0) (0 . 0.5) (0 . 0.5) (0 . 0)) PhrasingSlur c8(\( a) a'4 e c\) }
La fonction \shape
permet aussi d’adapter les points de
contrôle d’une courbe qui se prolonge après un saut de ligne.
Chaque portion de la courbe peut se voir appliquer sa propre liste
d’ajustements. Lorsque l’un des segments ne nécessite pas de
retouche, il suffit de lui fournir une liste vide. Dans l’exemple
suivant, le saut de ligne laisse à croire qu’il y a non pas une
seule mais deux liaisons :
\relative { c'4( f g c \break d,4 c' f, c) }
Regalber les deux moitiés de la liaison rend plus évident le fait qu’elle s’étend par delà le saut de ligne :
% () may be used as a shorthand for ((0 . 0) (0 . 0) (0 . 0) (0 . 0)) % if any of the segments does not need to be changed \relative c' { \shape #'( (( 0 . 0) (0 . 0) (0 . 0) (0 . 1)) ((0.5 . 1.5) (1 . 0) (0 . 0) (0 . -1.5)) ) Slur c4( f g c \break d,4 c' f, c) }
La présence d’une courbe en S requiert obligatoirement d’ajuster manuellement les points de contrôle – LilyPond n’optera jamais automatiquement pour un tel galbe.
\relative c'' { c8( e b-> f d' a e-> g) \shape #'((0 . -1) (5.5 . -0.5) (-5.5 . -10.5) (0 . -5.5)) PhrasingSlur c8\( e b-> f d' a e-> g\) }
Déclaration explicite des points de contrôle
Les coordonnées des points de contrôle sont données en unités d’espace de portée. L’abscisse est relative au point de référence de la note de départ de la liaison ; l’ordonnée est relative à la ligne médiane de la portée. Les différentes coordonnées sont entrées sous la forme d’une liste de quatre paires de nombres décimaux (ou nombres réels). L’une des manières de procéder consiste à tout d’abord estimer les coordonnées des deux extrémités puis, par tâtonnement, déterminer les deux points intermédiaires. Gardez à l’esprit que ces valeurs pourront devoir être revues si la musique ou sa mise en forme sont modifées.
L’une des situation où spécifier explicitement les points de contrôle se révèle être tout à fait appropriée est lorsqu’ils se réfèrent à une seule et unique note. L’exemple suivant illustre l’un des moyens d’indiquer une liaison qui se prolonge sur les alternatives d’une répétition.
\relative { c''1 \repeat volta 3 { c4 d( e f } \alternative { { g2) d } { g2 % create a slur and move it to a new position % the <> is just an empty chord to carry the slur termination -\tweak control-points #'((-2 . 3.8) (-1 . 3.9) (0 . 4) (1 . 3.4)) ( <> ) f, } { e'2 % create a slur and move it to a new position -\tweak control-points #'((-2 . 3) (-1 . 3.1) (0 . 3.2) (1 . 2.4)) ( <> ) f, } } }
Problèmes connus et avertissements
Lorsque plusieurs liaisons, quelle qu’en soit la nature, commencent au
même moment, jouer sur la propriété control-points
est
impossible, et la commande \tweak
inefficace. Vous pouvez
néanmoins influer sur la propriété tie-configuration
de l’objet
TieColumn
pour déterminer la ligne de départ et l’orientation.
Voir aussi
Référence des propriétés internes : TieColumn.
Autres langues : English, català, deutsch, español, italiano, 日本語.
About automatic language selection.