GNU LilyPond – Manuel de notation: 5.5.4 Modification de l'allure des éléments

### 5.5.4 Modification de l’allure des éléments

#### 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 :

1. en spécifiant l’ajustement qui doit être apporté aux points de contrôle de la courbe calculée automatiquement, ou
2. 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 esse 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.

#### LilyPond — Manuel de notation v2.22.2 (branche stable).