5.3.2 Dimensione degli oggetti (Manuale di apprendimento di LilyPond)

#### 5.3.2 Dimensione degli oggetti

Iniziamo rivedendo l’esempio precedente (vedi Annidare le espressioni musicali) che mostrava come inserire un nuovo rigo temporaneo, come in un ossia.

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main" }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

Gli ossia di norma vengono scritti senza chiave e senza indicazione di tempo e hanno solitamente una dimensione leggermente inferiore a quella del rigo principale. Sappiamo già come togliere la chiave e il segno di tempo, cioè impostando semplicemente la proprietà stencil di ciascun oggetto su `#f`, così:

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main"
>           }
>           {
>             \omit Staff.Clef
>             \omit Staff.TimeSignature
>             { f8 f c }
>           }
>         >>
>         r4 |
>       }
>     }

dove l’ulteriore coppia di parentesi dopo il blocco `\with` è necessaria perché le sovrascritture e la musica racchiusi siano applicati al rigo dell’ossia.

Ma qual è la differenza tra modificare il contesto del rigo con `\with` e modificare la proprietà stencil della chiave e del segno di tempo con `\override` o in questo caso `\omit`? La principale differenza è che le modifiche inserite in un blocco `\with` vengono applicate nel momento in cui viene creato il contesto e permangono come valori predefiniti per la durata di quel contesto, mentre i comandi `\set` o `\override` incorporati nel blocco della musica sono dinamici – le loro modifiche sono sincronizzate con un punto preciso della musica. Se le modifiche sono disattivate o ripristinate con `\unset` o `\revert` tornano ai valori stabiliti nel blocco `\with` o, in mancanza di impostazioni al suo interno, a quelli predefiniti.

Alcune proprietà di contesto possono essere modificate solo nei blocchi `\with`. Si tratta di quelle proprietà che non si possono modificare in seguito alla creazione del contesto. `alignAboveContext` e `alignBelowContext` sono due di esse: dopo la creazione del rigo il suo allineamento è fissato, e non ha senso tentare di cambiarlo successivamente.

I valori predefiniti delle proprietà degli oggetti di formattazione possono essere definiti anche nei blocchi `\with`. Basta usare il normale comando `\override` senza specificare il nome del contesto, dato che questo è definito senza ambiguità come il contesto che il blocco `\with` sta modificando. Anzi, viene generato un errore se si specifica un contesto in questa situazione.

Dunque possiamo sostituire l’esempio precedente con

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main"
>             % Nasconde le chiavi di questo rigo
>             \override Clef.stencil = ##f
>             % Nasconde le indicazioni di tempo di questo rigo
>             \override TimeSignature.stencil = ##f
>           }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

Si possono usare anche le scorciatoie `\hide` e `\omit` per impostare la proprietà `transparent` e togliere lo `stencil`

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main"
>             % Nasconde le chiavi di questo rigo
>             \omit Clef
>             % Nasconde le indicazioni di tempo di questo rigo
>             \omit TimeSignature
>           }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

Infine arriviamo a modificare la dimensione degli oggetti di formattazione.

Alcuni oggetti di formattazione sono dei glifi scelti da un tipo di carattere. Ad esempio le teste di nota, le alterazioni, le annotazioni, le chiavi, le indicazioni di tempo, le dinamiche, il testo vocale. La loro dimensione varia se si modifica la proprietà `font-size`, come vedremo a breve. Altri oggetti di formattazione come le legature di portamento e di valore – in generale, tutti gli oggetti estensori (spanner) – vengono disegnati individualmente, dunque non esiste un `font-size` a loro associato. Questi oggetti generalmente derivano la loro dimensione dagli oggetti a cui sono connessi, quindi di solito non è necessario modificare la loro dimensione a mano. Altre proprietà, come la lunghezza dei gambi e delle stanghette, lo spessore delle travature e di altre linee e la separazione delle linee del rigo, devono essere modificate in modi speciali.

Tornando all’esempio dell’ossia, proviamo prima a cambiare font-size. Possiamo farlo in due modi. Possiamo modificare la dimensione dei tipi di carattere di ogni tipo di oggetto, come le teste di nota (`NoteHead`) con un comando di questo tipo

    \override NoteHead.font-size = #-2

oppure possiamo modificare la dimensione di tutti i tipi di carattere usando una proprietà speciale, `fontSize`, con `\set` oppure includendola in un blocco `\with` (ma senza `\set`).

    \set fontSize = #-2

Entrambe queste dichiarazioni fanno sì che la dimensione del tipo di carattere sia ridotta di due unità rispetto al valore precedente, dove ogni unità riduce o aumenta la dimensione di circa il 12%.

Proviamolo nel nostro esempio dell’ossia:

>     \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
>             % Riduce la dimensione di tutti i tipi di carattere di circa il 24%
>             fontSize = #-2
>           }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

L’esempio non è ancora a posto. Le teste di nota e le code sono più piccole, ma in proporzione i gambi sono troppo lunghi e le linee del rigo sono troppo separate. Dovrebbero essere scalati in proporzione alla riduzione del tipo di carattere. La prossima sezione spiega come farlo.

#### Manuale di apprendimento di LilyPond v2.26.0 (stable-branch).

- 1 Installazione
  - 1.1 Installazione grafica in GNU/Linux
  - 1.2 Installazione grafica in Windows
  - 1.3 Installazione grafica in macOS
  - 1.4 Installazione da linea di comando
- 2 Tutorial
  - 2.1 Compilare un file
  - 2.2 Come scrivere i file di input
    - 2.2.1 Notazione semplice
      - Altezze
      - Durate (ritmi)
      - Pause
      - Indicazione di tempo
      - Indicazioni di tempo
      - Chiave
      - Tutto insieme
    - 2.2.2 Lavorare sui file di input
  - 2.3 Gestire gli errori
    - 2.3.1 Consigli generali per la risoluzione dei problemi
    - 2.3.2 Alcuni errori comuni
  - 2.4 Come leggere i manuali
    - 2.4.1 Materiale omesso
    - 2.4.2 Esempi cliccabili
    - 2.4.3 Panoramica dei manuali
- 3 Notazione comunemente utilizzata
  - 3.1 Notazione su un solo pentagramma
    - 3.1.1 Stanghette e controlli di battuta
      - Stanghette
      - Controlli di battuta
    - 3.1.2 Altezze e armature di chiave
      - Alterazioni dell’altezza
      - Armature di chiave
      - Attenzione: armature di chiave e altezze
    - 3.1.3 Legature di valore e di portamento
      - Legature di valore
      - Legature di portamento
      - Legature di frase
      - Attenzione: legature di portamento vs. legature di valore
    - 3.1.4 Articolazioni e dinamiche
      - Articolazioni
      - Diteggiature
      - Dinamiche
    - 3.1.5 Aggiungere il testo
    - 3.1.6 Code automatiche e manuali
    - 3.1.7 Comandi di tempo avanzati
      - Battuta parziale
      - Gruppi irregolari
      - Abbellimenti
  - 3.2 Note simultanee
    - 3.2.1 Espressioni musicali
      - Analogia: le espressioni matematiche
      - Espressioni musicali simultanee: righi multipli
      - Espressioni musicali simultanee: rigo singolo
    - 3.2.2 Righi multipli
    - 3.2.3 Gruppi di pentagrammi
    - 3.2.4 Combinare le note negli accordi
    - 3.2.5 Polifonia su un singolo rigo
  - 3.3 Canzoni
    - 3.3.1 Impostare canzoni semplici
    - 3.3.2 Allineare il testo alla melodia
    - 3.3.3 Testo su più righi
  - 3.4 Ritocchi finali
    - 3.4.1 Organizzare i brani con le variabili
    - 3.4.2 Aggiungere i titoli
    - 3.4.3 Nomi assoluti delle note
    - 3.4.4 Dopo il tutorial
- 4 Concetti fondamentali
  - 4.1 Come funzionano i file di input di LilyPond
    - 4.1.1 Introduzione alla struttura di un file di LilyPond
    - 4.1.2 La partitura è una (singola) espressione musicale composta
    - 4.1.3 Annidare le espressioni musicali
    - 4.1.4 Struttura dell’inserimento note
    - 4.1.5 Sul non annidamento di parentesi e legature di valore
  - 4.2 Le voci contengono la musica
    - 4.2.1 Sento le Voci
    - 4.2.2 Definire esplicitamente le voci
    - 4.2.3 Voci e musica vocale
  - 4.3 Contesti e incisori
    - 4.3.1 I contesti
    - 4.3.2 Creare i contesti
    - 4.3.3 Gli incisori
    - 4.3.4 Modificare le proprietà di contesto
    - 4.3.5 Aggiungere e togliere gli incisori
  - 4.4 Estendere i modelli
    - 4.4.1 Soprano e violoncello
    - 4.4.2 Partitura vocale a quattro parti SATB
    - 4.4.3 Scrivere una partitura da zero
    - 4.4.4 Ridurre l’input grazie a variabili e funzioni
    - 4.4.5 Partiture e parti
- 5 Modifica dell’output
  - 5.1 Modifiche di base
    - 5.1.1 Introduzione alle modifiche
    - 5.1.2 Oggetti e interfacce
    - 5.1.3 Convenzioni per i nomi di oggetti e proprietà
    - 5.1.4 Metodi di modifica
      - Il comando `\override`
      - Il comando `\revert`
      - Il prefisso `\once`
      - Il comando di ritocco `\tweak`
      - Il prefisso `\single`
  - 5.2 Manuale del Funzionamento interno
    - 5.2.1 Proprietà degli oggetti di formattazione
    - 5.2.2 Proprietà presenti nelle interfacce
    - 5.2.3 Tipi di proprietà
  - 5.3 Aspetto degli oggetti
    - 5.3.1 Visibilità e colore degli oggetti
      - La proprietà `stencil`
      - La proprietà `break-visibility`
      - La proprietà `transparent`
      - La proprietà `color`
    - 5.3.2 Dimensione degli oggetti
    - 5.3.3 Lunghezza e spessore degli oggetti
  - 5.4 Posizionamento degli oggetti
    - 5.4.1 Comportamento automatico
    - 5.4.2 Oggetti interni al rigo
      - La proprietà `direction`
      - Diteggiatura
    - 5.4.3 Oggetti esterni al rigo
      - La proprietà `outside-staff-priority`
      - Il comando `\textLengthOn`
      - Posizionamento delle dinamiche
      - Dimensione dei grob
  - 5.5 Spaziatura verticale
  - 5.6 Collisioni tra oggetti
    - 5.6.1 Spostare gli oggetti
    - 5.6.2 Correggere elementi della notazione sovrapposti
      - La proprietà `padding`
      - La proprietà `right-padding`
      - La proprietà `staff-padding`
      - La proprietà `self-alignment-X`
      - La proprietà `staff-position`
      - La proprietà `extra-offset`
      - La proprietà `positions`
      - La proprietà `force-hshift`
    - 5.6.3 Esempio musicale
  - 5.7 Altre modifiche
    - 5.7.1 Altri usi delle modifiche con `\tweak`
      - Legature di valore tra note di voci diverse
      - Simulare una corona nel MIDI
    - 5.7.2 Uso delle variabili per modificare la formattazione
    - 5.7.3 Fogli di stile
    - 5.7.4 Altre fonti di informazione
    - 5.7.5 Modifiche avanzate con Scheme
- Appendix A Modelli
  - A.1 Modelli integrati
    - A.1.1 Modello SATB
    - A.1.2 Modello SSAATTBB
  - A.2 Modelli per rigo singolo
    - A.2.1 Solo note
    - A.2.2 Note e testo
    - A.2.3 Note e accordi
    - A.2.4 Note, testo e accordi
  - A.3 Modelli per pianoforte
    - A.3.1 Solo pianoforte
    - A.3.2 Pianoforte e melodia con testo
    - A.3.3 Pianoforte con testo al centro
  - A.4 Modelli per quartetto d’archi
    - A.4.1 Quartetto d’archi semplice
    - A.4.2 Parti di un quartetto d’archi
  - A.5 Modelli per gruppi vocali
    - A.5.1 Partitura vocale SATB
    - A.5.2 Partitura vocale SATB e automatica riduzione per pianoforte
    - A.5.3 SATB con contesti allineati
    - A.5.4 SATB su quattro righi
    - A.5.5 Strofa sola e ritornello a due parti
    - A.5.6 Inni
    - A.5.7 Salmi
  - A.6 Modelli per orchestra
    - A.6.1 Orchestra, coro e pianoforte
  - A.7 Modelli per notazione antica
    - A.7.1 Trascrizione di musica mensurale
    - A.7.2 Trascrizione di musica Gregoriana
  - A.8 Altri modelli
    - A.8.1 Combo jazz
- Appendix B GNU Free Documentation License
- Appendix C Indice