[ << Input e output ] | [Inizio][Contenuti][Indice] | [ Gestione dello spazio >> ] |
[ < Nomi dei file di output ] | [ Su : Struttura dell'input ] | [ Titoli e intestazioni > ] |
3.1.5 Struttura del file
Un file ‘.ly’ può contenere un qualsiasi numero di espressioni di livello superiore (in inglese, toplevel expressions). Per espressione di livello superiore si intende una delle seguenti:
-
Una definizione di output, come
\paper
,\midi
e\layout
. Tale definizione, se posta nel livello superiore, cambia le impostazioni predefinite al livello del libro. Se più di una di queste definizioni viene inserita nel livello superiore, le definizioni vengono combinate, ma in caso di conflitto hanno precedenza le definizioni più recenti. Per sapere con precisione come ciò influisca sul blocco\layout
, leggere Il blocco\layout
. -
Un’espressione Scheme diretta, come
#(set-default-paper-size "a7" 'landscape)
o#(ly:set-option 'point-and-click #f)
. -
Un blocco
\header
. Se all’inizio del file, imposta il blocco dell’intestazione globale. Questo è il blocco che contiene le impostazioni predefinite dei campi dei titoli come compositore, titolo, etc. per tutti i libri del file (vedi Come funzionano i titoli). -
Un blocco
\score
. Questa partitura e altre eventuali partiture di livello superiore saranno combinate insieme in un singolo blocco\book
. Tale comportamento può essere modificato impostando la variabiletoplevel-score-handler
nel livello superiore. Il gestore (in inglese handler) predefinito è definito nel file ‘../scm/lily-library.scm’ e viene impostato nel file ‘../ly/declarations-init.ly’. -
Un blocco
\book
combina logicamente molteplici movimenti (ovvero molteplici blocchi\score
) in un documento. Se ci sono vari blocchi\score
, verrà creato un file di output per ogni blocco\book
, in cui saranno concatenati tutti i movimenti corrispondenti. Ha senso specificare esplicitamente i blocchi\book
in un file ‘.ly’ solo se si desidera creare vari file di output da un solo file di input. Un’eccezione è data dai documenti lilypond-book, dove bisogna aggiungere esplicitamente un blocco\book
se si vuole più di un singolo blocco\score
o\markup
nello stesso esempio. Tale comportamento può essere modificato impostando la variabiletoplevel-book-handler
nel livello superiore. Il gestore predefinito è definito nel file di inizializzazione ‘../scm/lily.scm’. -
Un blocco
\bookpart
. Un libro può essere suddiviso in varie parti, tramite blocchi\bookpart
, per semplificare le interruzioni di pagina o per usare impostazioni\paper
diverse nelle varie parti. -
Un’espressione musicale composta, come
{ c'4 d' e'2 }
pone il brano in un blocco
\score
e lo formatta in un unico libro insieme a tutti gli altri blocchi\score
e espressioni musicali di livello superiore. In altre parole, un file che contiene soltanto l’espressione musicale precedente verrà trasformato in\book { \score { \new Staff { \new Voice { { c'4 d' e'2 } } } \layout { } } \paper { } \header { } }
Tale comportamento può essere modificato impostando la variabile
toplevel-music-handler
nel livello superiore. Il gestore predefinito è definito nel file di inizializzazione ‘../scm/lily.scm’. -
Un testo, per esempio una strofa
\markup { 2. La prima riga della seconda strofa. }
I testi possono trovarsi sopra, sotto o in mezzo alle partiture o espressioni musicali, ovunque esse appaiano.
-
Una variabile, come
foo = { c4 d e d }
può essere utilizzata in un punto successivo del file scrivendo
\foo
. Il nome di una variabile deve avere solo caratteri alfabetici; nessun numero, trattino o trattino basso.
L’esempio seguente mostra tre elementi che possono essere inseriti nel livello superiore
\layout { % Non giustificare l'output ragged-right = ##t } \header { title = "Do-re-mi" } { c'4 d' e2 }
Ciascuna delle seguenti istruzioni lessicali può essere inserita in qualsiasi punto di un file:
-
\version
-
\include
-
\sourcefilename
-
\sourcefileline
-
Un commento su riga singola, introdotto da un segno
%
. -
Un commento multirigo delimitato da
%{ … %}
.
Lo spazio bianco tra gli elementi dell’input viene generalmente ignorato e può essere liberamente omesso o aumentato per migliorare la leggibilità. Tuttavia esistono dei casi in cui lo spazio bianco deve essere sempre usato per non incorrere in errori:
- Intorno ad ogni parentesi graffa di apertura e di chiusura.
- Dopo ogni comando o variabile, ovvero qualsiasi elemento
che inizi con un segno
\
. - Dopo ogni elemento che debba essere interpretato come
un’espressione Scheme, ovvero ogni elemento che inizi con un
segno
#
. - Per separare tutti gli elementi di un’espressione Scheme.
- Nella modalità
lyricmode
prima e dopo i comandi\set
e\override
.
Vedi anche
Manuale di apprendimento: Come funzionano i file di input di LilyPond.
Guida alla notazione:
Come funzionano i titoli,
Il blocco \layout
.
[ << Input e output ] | [Inizio][Contenuti][Indice] | [ Gestione dello spazio >> ] |
[ < Nomi dei file di output ] | [ Su : Struttura dell'input ] | [ Titoli e intestazioni > ] |