3.1.1 Introduzione alla struttura di un file di LilyPond
Un esempio basilare di un file di input di LilyPond è
\version "2.13.27" \header { } \score { ...compound music expression... % all the music goes here! \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'' { c4 a d c }
come forma abbreviata per questo:
\book { \score { \new Staff { \new Voice { \relative c'' { c4 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,
e questa deve trovarsi subito dopo il comando \score
.
Ricorda che un’espressione musicale può essere qualsiasi cosa, da una
singola nota a una grande espressione composta come
{ \new StaffGroup << ...insert the whole score of a Wagner opera in here... >> }
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
Score layout, e
Creating MIDI files.
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) riguraderà ogni \score
in quel \book
.
Per maggiori dettagli si veda Multiple scores in a book.
Un’altra grande scorciatoia è la possibilità di definire variabili (vedi Organizzare i brani con le variabili). Tutti i modelli usano questa forma
melodia = \relative c' { c4 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 variabile
. Per maggiori dettagli,
si veda Ridurre le dimensioni del file grazie a variabili e funzioni.
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
File structure.
Vedi anche
Per una definizione completa del formato di input, si veda File structure.
Other languages: English, deutsch, español, français, 日本語, nederlands.