Manuale di apprendimento di LilyPond: 5.3.3 Lunghezza e spessore degli oggetti

### 5.3.3 Lunghezza e spessore degli oggetti

Distanze e lunghezze in LilyPond sono misurate generalmente in `staff-space`, ovvero la distanza tra linee adiacenti del rigo (o talvolta la metà di uno spazio rigo), mentre gran parte delle proprietà che controllano lo spessore (`thickness`) sono misurate con l’unità di misura di una proprietà interna chiamata `line-thickness.` Ad esempio, lo spessore predefinito delle linee delle forcine è di 1 unità di `line-thickness`, mentre lo spessore (`thickness`) di un gambo di nota è 1.3. Si noti che alcune proprietà dello spessore sono diverse; per esempio, lo spessore delle travature è controllato dal valore della proprietà `beam-thickness`, che si misura in `staff-space`.

Dunque come si possono scalare le lunghezze in proporzione alla dimensione del carattere? È possibile ricorrendo a una funzione speciale chiamata `magstep`, che serve proprio a questo scopo. Prende un argomento, la modifica della dimensione del tipo di carattere (#-2 nell’esempio precedente) e restituisce un fattore di ridimensionamento adatto a ridurre gli altri oggetti proporzionalmente. Si usa in questo modo:

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main"
>             \omit Clef
>             \omit TimeSignature
>             fontSize = #-2
>             % Riduce proporzionalmente la lunghezza dei gambi e la spaziatura tra le linee
>             \override StaffSymbol.staff-space = #(magstep -2)
>           }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

Dato che la lunghezza dei gambi e molte altre proprietà relative alla lunghezza sono sempre calcolate in relazione al valore della proprietà `staff-space`, anche queste sono automaticamente ridimensionate in lunghezza. Nota che ciò riguarda solo la scala verticale dell’ossia – la scala orizzontale è determinata dalla formattazione della musica principale perché deve restare sincronizzata con quest’ultima, quindi le modifiche di dimensione non la riguardano. Ovviamente, se la scala di tutta la musica principale venisse cambiata allora la spaziatura orizzontale cambierebbe. Tratteremo questo argomento più avanti, nella parte relativa alla formattazione.

Questo completa la creazione dell’ossia. Le dimensioni e le lunghezze di tutti gli altri oggetti possono essere modificati in modi analoghi.

Per piccole modifiche della dimensione, come nell’esempio precedente, non sono necessari solitamente degli aggiustamenti globali dello spessore delle varie linee disegnate (come stanghette, travature, forcine, legature di portamento, etc.). Se si deve aggiustare lo spessore di un particolare oggetto di formattazione, è meglio sovrascrivere la sua proprietà `thickness`. Un esempio di come modificare lo spessore delle legature di portamento è stato mostrato prima in Proprietà degli oggetti di formattazione. Lo spessore di tutti gli oggetti disegnati (ovvero quelli non prodotti da un tipo di carattere) può essere cambiato nello stesso modo.

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