Referència de la notació del GNU LilyPond: 5.5.4 Modificació de les formes

### 5.5.4 Modificació de les formes

#### Modificació de lligadures d’unió i d’expressió

Les lligadures d’unió (`Tie`s), d’expressió (`Slur`s), de fraseig (`PhrasingSlur`s), de deixar vibrar (`LaissezVibrerTie`s) i de repetició (`RepeatTie`s) es tracen com corbes de Bézier de tercer ordre. Si la forma de la ligadur calculada automàticament no resulta òptima, es pot modificar la seva forma manualment de dues formes:

1. mitjançant l’especificació dels desplaçament que es volen realitzar sobre els punts de control de la corba de Bézier calculada automàticament, o bé
2. mitjançant l’especificació explícita de les posiciones dels quatre punts de control que calen per definir la corba desitjada.

A continuació s’expliquen ambdós mètodes. El primer mètode és més adequat quan sols calen lleugers ajustaments de la corba; el segon pot ser millor per crear corbes que tenen relació amb una única nota.

#### Corbes de Bézier cúbiques

Les corbes Bézier de tercer ordre o cúbiques estan definides per quatre punts de control. El primer i quart punts de control són exactament els punts extrems de començament i de final de la corba. Els dos punts de control intermedis defineixen la forma. Es poden trobar a la web animacions que mostren com es traça la corba, però la descripció següent pot ser d’ajuda. La corba comença a partir del primer punt de control dirigint-se directament cap al segon, corbant-se progressivament per dirigir-se cap al tercer i continuant la corba cap al quart, arribant a aquest punt en viatge directe des del tercer punt de control. La corba està continguda enterament dins del quadrilàter definit pels quatre punts de control. Totes les translacions, rotacions i escalats dels punts de control produeixen exactament les mateixes operacions sobre la corba.

#### Especificació de desplaçament a partir dels punts de control actuals

En aquest exemple, la col·locació automàtica de la lligadura no resulta òptima, i `\tieDown` no és la solució.

>     <<
>       { e'1~ 1 }
>     \\
>       \relative { r4 <g' c,> <g c,> <g c,> }
>     >>

Els ajustaments dels punts de control de la lligadura mitjançant l’ordre `\shape` permet evitar les col·lisions.

La sintaxi de `\shape` és:

>     [-]\shape desplaçament element

Aquesta ordre recol·loca els punts de control d’element en les quantitats donades per desplaçaments. L’argument desplazamientos és una llista de parelles de nombres o una llista d’aquestes llistes. Cada element d’una parella representa el desplaçament d’una de les coordenades d’un punt de control. Si l’element és una cadena de caràcter. el resultat és `\once\override` per al tipus de grob especificat. Si elemento és una expressió musical, el resultat és la mateixa expressió musical amb la consegüent modificació aplicada.

En altres paraules, la funció `\shape` pot actuar com una ordre `\once\override` o com una ordre `\tweak` depenent de si l’argument element és el nom d’un grob, com “Slur”, o una expressió musical, com “(”. L’argument desplaçaments especifica els desplaçaments dels quatre punts de control com una llista de quatre parelles de valors (dx . dy) en unitats d’espais de pentagrama (o una llista d’aquestes llistes si la corba té més d’un segment).

El guió precedent s’exigeix si, i sols si, s’usa la forma `\tweak`.

Així, usant el mateix exemple anterior i la forma `\once\override` de l’ordre `\shape`, el següent té l’efecte d’elevar la lligadura d’unió en la meitat d’un espai de pentagrama:

>     <<
>       {
>         \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,> }
>     >>

Aquest posicionament de la lligadura d’unió és millor, però potser hauria d’elevar-se més a la part central. L’exemple següent fa això, aquest cop usant la forma alternativa `\tweak`:

>     <<
>       {
>         e'1-\shape #'((0 . 0.5) (0 . 1) (0 . 1) (0 . 0.5)) ~ e'
>       }
>     \\
>       \relative { r4 <g' c,> <g c,> <g c,> }
>     >>

Els canvis en les posicions horitzontals dels punts de control es poden fer de la mateixa forma, i dues corbes diferents que comencen al mateix moment musical també es poden conformar:

>     \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 funció `\shape` també pot desplaçar els punts de control de les corbes que s’estenen travessant salts de línia. Cada peça de la corba dividida pot rebre la seva pròpia llista de desplaçaments. Si no cal fer canvis a un dels segments en particular, es pot usar una llista buida contenidor. En aquest exemple, el salt de línia fa que l’única lligadura d’expressió aparegui com si fossin dos:

>     \relative {
>       c'4( f g c
>       \break
>       d,4 c' f, c)
>     }

Els canvis en la forma de les dues meitats de la lligadura d’expressió deixa més clar que la lligadura continua més enllà del salt de línia:

>     % () es pot usar com a abreviatura per a ((0 . 0) (0 . 0) (0 . 0) (0 . 0))
>     % si no cal canviar algun dels segments
>     \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)
>     }

En una corba en forma d’«S» sempre cal ajustar manualment els punts de control: el Lilypond mai no escull aquestes formes automàticament.

>     \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\)
>     }

#### Especificació específica dels punts de control

Les coordenades dels punts de control de Bézier s’especifiquen en unitats d’espais de pentagrama. La coordenada X és relativa al punt de referència al qual s’adjunta la lligadura, i la coordenada Y és relativa a la línia central del pentagrama. Les coordenades s’especifiquen com una llista de quatre parelles de nombres decimals (reals). Un enfocament consisteix a estimar les coordenades dels dos extrems, i després endevinar els dos punts intermedis. Els valores òptims es troben després per prova i error. Tingueu en compte que aquests valors podrien requerir un ajustament manual si es fa posteriorment qualsevol canvi manual a la música o a la disposició.

Una situació en la qual és preferible especificar els punts de control explícitament a especificar els desplaçaments és quan cal especificar-los de forma relativa a una nota única. A continuació presentem un exemple d’això. Mostra una forma d’indicar una lligadura que s’estén cap a l’interior de les caselles de primera i segona veu d’una repetició.

>     \relative {
>       c''1
>       \repeat volta 3 { c4 d( e f }
>       \alternative {
>         { g2) d }
>         {
>           g2
>           % crea una lligadura d'expressió i mou-la a una nova posició
>           % <> és simplement un acord buit per portar el final de la lligadura d'unió
>           -\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,
>         }
>       }
>     }

#### Advertiments i problemes coneguts

No és possible modificar la forma de les lligadures d’unió o d’expressió canviant la propietat `control-points` si hi ha més d’una en el mateix moment musical, ni tan sols usant l’ordre `\tweak`. Malgrat això, es pot sobreescriure la propietat `tie-configuration` de `TieColumn` per fixar la línia d’inici i la direcció segons es requereixi.

#### Vegeu també

Referència de funcionament intern: TieColumn.

#### LilyPond — Referència de la notació v2.22.2 (branca estable).