4.1.1 Introduzione alla struttura di un file di LilyPond (Manuale di apprendimento di LilyPond)

#### 4.1.1 Introduzione alla struttura di un file di LilyPond

Un esempio basilare di un file di input di LilyPond è

    \version "2.26.0"

    \header { }

    \score {
       … espressione musicale composta …   % tutta la musica va qui!
      \layout { }
      \midi { }
    }

Ci sono molte varianti a questo modello di base, ma questo esempio serve da utile punto di partenza.

Finora nessuno degli esempi che abbiamo visto ha usato il comando `\score{}`. Questo si spiega col fatto che LilyPond, quando elabora un input semplice, aggiunge automaticamente gli altri comandi necessari. LilyPond tratta un input come questo:

    \relative {
      c''4 a b c
    }

come forma abbreviata per questo:

    \book {
      \score {
        \new Staff {
          \new Voice {
            \relative {
              c''4 a b c
            }
          }
        }
        \layout { }
      }
    }

In altre parole, se l’input contiene un’espressione musicale singola, LilyPond interpreterà il file come se l’espressione musicale fosse racchiusa dentro i comandi mostrati sopra.

Attenzione! Molti esempi nella documentazione di LilyPond ometteranno i comandi `\new Staff` e `\new Voice`, lasciando che questi siano creati implicitamente. Per gli esempi semplici questo metodo funziona bene, ma per quelli più complessi, soprattutto quando vengono usati ulteriori comandi, la creazione implicita dei contesti può dare risultati inattesi, ad esempio creando dei righi non voluti. Il modo per creare i contesti esplicitamente è spiegato in Contesti e incisori.

Nota: Quando si inseriscono più di poche linee di musica, si consiglia di creare sempre esplicitamente i righi e le voci.

Ora però torniamo al primo esempio ed esaminiamo il comando `\score`, lasciando gli altri comandi secondo l’impostazione predefinita.

Un blocco `\score` deve sempre contenere una sola espressione musicale. Ricorda che un’espressione musicale può essere qualsiasi cosa, da una singola nota a una grande espressione composta come

    {
      \new StaffGroup <<
         … inserisci qui l'intera opera di Wagner …
      >>
    }

Tutto quanto è compreso in `{ … }` costituisce un’unica espressione musicale.

Come abbiamo detto prima, il blocco `\score` può contenere altri elementi, come ad esempio

    \score {
      { c'4 a b c' }
      \header { }
      \layout { }
      \midi { }
    }

Si noti che questi tre comandi – `\header`, `\layout` e `\midi` – sono speciali: diversamente da molti altri comandi che iniziano con un backslash (`\`), non sono espressioni musicali né fanno parte di alcuna espressione musicale. Dunque, possono essere collocati dentro o fuori da un blocco `\score`. Di solito questi comandi vengono posti fuori dal blocco `\score` – ad esempio, `\header` spesso viene messo sopra il comando `\score`, come mostra l’esempio all’inizio di questa sezione.

Altri due comandi che non hai incontrato finora sono `\layout { }` e `\midi {}`. Se questi appaiono come in figura, LilyPond creerà rispettivamente un output per la stampa e uno per il MIDI. Sono descritti dettagliatamente nella Guida alla notazione, in Formattazione della partitura, e Creazione dell’output MIDI.

Puoi scrivere molteplici blocchi `\score`. Ciascuno verrà trattato come una partitura separata, ma saranno tutti combinati in un unico file di output. Non è necessario il comando `\book` – ne verrà creato uno automaticamente. Tuttavia, se si desiderano file di output separati da un file `.ly`, allora si deve usare il comando `\book` per separare le diverse sezioni: ogni blocco `\book` produrrà un file di output separato.

In breve:

Ogni blocco `\book` crea un file di output separato (ovvero, un file PDF). Se non ne hai aggiunto uno esplicitamente, LilyPond racchiude implicitamente tutto il tuo codice di input in un blocco `\book`.

Ogni blocco `\score` è un pezzo di musica separato all’interno di un blocco `\book`.

Ogni blocco `\layout` influenza il blocco `\score` o `\book` in cui compare – ovvero, un blocco `\layout` che si trova dentro un blocco `\score` riguarda solo quel blocco `\score`, mentre un blocco `\layout` che si trova fuori da un blocco `\score` (e quindi in un blocco `\book`, esplicitamente o implicitamente) riguarderà ogni `\score` in quel `\book`.

Per maggiori dettagli si veda Molteplici partiture in un libro.

Un’altra grande scorciatoia è la possibilità di definire variabili, come è spiegato in Organizzare i brani con le variabili). Tutti i modelli usano questa forma

    melodia = \relative {
      c'4 a b c
    }

    \score {
      \melodia
    }

Quando LilyPond esamina questo file, prende il valore di `melodia` (tutto ciò che si trova dopo il segno di uguale) e lo inserisce ovunque si trovi `\melodia`. Non c’è una regola specifica per i nomi – il nome può essere `melodia`, `globale`, `tempo`, `manodestrapiano`, o qualsiasi altro nome. Ricordati che puoi usare quasi ogni nome che vuoi, purché esso contenga solo caratteri alfabetici e sia diverso dai nomi dei comandi di LilyPond. Le esatte limitazioni relative ai nomi delle variabili sono spiegate dettagliatamente in Struttura del file.

#### Vedi anche

Per una definizione completa del formato di input, si veda Struttura del file.

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