5.1.2 Creazione e citazione di un contesto
LilyPond crea i contesti del livello inferiore automaticamente se incontra
un’espressione musicale prima di un contesto adatto, ma questo approccio
di solito funziona soltanto per partiture semplici o frammenti musicali
simili a quelli della documentazione. Per partiture più complesse si
consiglia di specificare tutti i contesti esplicitamente coi comandi
\new
o \context
. La sintassi di questi due comandi è
molto simile:
[\new | \context] Contesto [ = nome] [espressione-musicale]
dove si può usare \new
o \context
.
Contesto è il tipo di contesto che deve essere creato,
nome è un nome opzionale da assegnare al contesto che si
sta creando e espressione-musicale è una singola espressione
musicale che deve essere interpretata dagli incisori e dai performer
in questo contesto.
Il prefisso \new
senza un nome viene usato comunemente per creare
partiture con molti righi:
<< \new Staff \relative { % lascia che il contesto Voice sia creato implicitamente c''4 c } \new Staff \relative { d''4 d } >>
e per mettere varie voci in un rigo:
\new Staff << \new Voice \relative { \voiceOne c''8 c c4 c c } \new Voice \relative { \voiceTwo g'4 g g g } >>
\new
deve essere sempre usato per specificare contesti senza nome.
La differenza tra \new
e \context
sta nell’azione
presa:
-
\new
con o senza un nome creerà sempre un contesto del tutto nuovo e distinto, anche se ne esiste già uno con lo stesso nome:\new Staff << \new Voice = "A" \relative { \voiceOne c''8 c c4 c c } \new Voice = "A" \relative { \voiceTwo g'4 g g g } >>
-
\context
seguito da un nome creerà un contesto distinto solo se non esiste già un contesto dello stesso tipo con lo stesso nome nella stessa gerarchia di contesto. Altrimenti sarà preso come riferimento per quel contesto precedentemente creato, e la sua espressione musicale verrà passata a quel contesto per la sua interpretazione.I contesti con nome possono essere utili in casi particolari come il testo vocale o il basso continuo, come è spiegato in Lavorare con testo e variabili e Modelli per gruppi vocali per il primo e in Visualizzazione del basso continuo per il secondo.
In generale, una possibile applicazione dei contesti con nome è la separazione di formattazione della partitura e contenuto musicale. Le seguenti due forme sono entrambe valide:
\score { << % formattazione della partitura \new Staff << \new Voice = "one" { \voiceOne } \new Voice = "two" { \voiceTwo } >> % contenuto musicale \context Voice = "one" { \relative { c''4 c c c } } \context Voice = "two" { \relative { g'8 g g4 g g } } >> }
\score { << % formattazione della partitura \new Staff << \context Voice = "one" { \voiceOne } \context Voice = "two" { \voiceTwo } >> % contenuto musicale \context Voice = "one" { \relative { c''4 c c c } } \context Voice = "two" { \relative { g'8 g g4 g g } } >> }
Altrimenti si possono usare le variabili per ottenere un risultato simile. Vedi Organizzare i brani con le variabili.
-
\context
senza nome corrisponderà al primo di qualsiasi contesto precedentemente creato dello stesso tipo nella stessa gerarchia di contesto, anche uno a cui è stato assegnato un nome, e la sua espressione musicale sarà passata a quel contesto per la sua interpretazione. Questa forma è raramente utile. Tuttavia, si usa\context
senza nome e senza espressione musicale per impostare il contesto in cui una procedura Scheme specificata con\applyContext
viene eseguita:\new Staff \relative { c'1 \context Timing \applyContext #(lambda (ctx) (newline) (display (ly:context-current-moment ctx))) c1 }
Un contesto deve essere nominato se deve essere citato successivamente, per esempio quando il testo vocale è associato alla musica:
\new Voice = "tenore" musica … \new Lyrics \lyricsto "tenore" testo
Maggiori informazioni sull’associazione del testo vocale alla musica in Durate automatiche delle sillabe.
Le proprietà di tutti i contesti di un certo tipo possono essere modificate
in un blocco \layout
(con una sintassi diversa), vedi
Modifica di tutti i contesti dello stesso tipo. Questo costrutto fornisce anche
un mezzo per mantenere le istruzioni di formattazione separate dal contenuto
musicale. Se occorre modificare un solo contesto, bisogna usare un blocco
\with
, vedi Modifica di un solo contesto specifico.
Vedi anche
Manuale di apprendimento: Organizzare i brani con le variabili.
Guida alla notazione: Modifica di un solo contesto specifico, Durate automatiche delle sillabe.