Manuale di apprendimento di LilyPond: 4.4.1 Comportamento automatico

### 4.4.1 Comportamento automatico

Nella notazione musicale, alcuni oggetti appartengono al rigo, altri devono esserne posizionati al di fuori. In LilyPond si chiamano rispettivamente oggetti within-staff (dentro il rigo) e oggetti outside-staff (fuori dal rigo).

Gli oggetti within-staff sono quelli che si trovano nel rigo, come le teste e i gambi delle note, le alterazioni, etc… La loro posizione è determinata perlopiù dalla musica stessa: in verticale sono collocati su determinate posizioni del rigo o sono collegati ad altri oggetti disposti in questo modo. Di norma LilyPond evita automaticamente le collisioni tra teste di nota, gambi e alterazioni in accordi con note ravvicinate. Esistono comunque dei comandi che permettono di modificare questo comportamento automatico, come vedremo tra poco.

Gli oggetti che appartengono allo spazio fuori dal rigo comprendono gli andamenti, i numeri di chiamata, il testo vocale, le indicazioni dinamiche. Il comportamento di LilyPond per il posizionamento verticale degli oggetti outside-staff prevede che questi vengano collocati il più vicino possibile al rigo, mantenendo però una distanza sufficiente da evitare collisioni con gli altri oggetti. LilyPond usa la proprietà `outside-staff-priority` per determinare in quale ordine gli oggetti siano posizionati.

Per prima cosa LilyPond posiziona tutti gli oggetti within-staff. Poi ordina gli oggetti outside-staff in base alla loro proprietà `outside-staff-priority`. Gli oggetti outside-staff vengono considerati uno a uno, a partire dall’oggetto che ha il valore più basso di priorità (`outside-staff-priority`), e disposti in modo da non entrare in collisione con alcun oggetto già posizionato. Questo significa che se due oggetti outside-staff si contendono lo stesso spazio, quello col valore più basso di `outside-staff-priority` sarà più vicino al rigo. Se due oggetti presentano lo stesso valore per `outside-staff-priority`, quello incontrato per primo viene posizionato più vicino al rigo.

Nell’esempio seguente tutti i testi hanno la stessa priorità (perché questa non è impostata in modo esplicito). Come puoi vedere, ‘Testo3’ è di nuovo posto automaticamente in prossimità del rigo, infilato sotto ‘Testo2’.

>     c''2^"Testo1"
>     c''2^"Testo2" |
>     c''2^"Testo3"
>     c''2^"Testo4" |

Di norma, anche i righi sono collocati quanto più possibile ravvicinati (ma con una distanza minima). Se delle note si estenderanno molto al di fuori del rigo, fino a quello adiacente, costringeranno i righi a distanziarsi solo in caso di sovrapposizione degli elementi della notazione. L’esempio seguente mostra questo ‘annidamento’ delle note su righi adiacenti:

>     <<
>       \new Staff {
>         \relative { c'4 a, }
>       }
>       \new Staff {
>         \relative { c''''4 a, }
>       }
>     >>

#### LilyPond — Manuale di apprendimento v2.22.2 (ramo stabile).