]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/it/learning/fundamental.itely
Run scripts/auxiliar/update-with-convert-ly.sh
[lilypond.git] / Documentation / it / learning / fundamental.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
2
3 @ignore
4     Translation of GIT committish: 01980ec7e46ccd03ff7a379b6299842d788b8f8a
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  For details, see the Contributors'
8     Guide, node Updating translation committishes..
9 @end ignore
10
11 @c \version "2.19.21"
12
13 @node Concetti fondamentali
14 @chapter Concetti fondamentali
15 @translationof Fundamental concepts
16
17 Nel Tutorial abbiamo visto come produrre dei belli spartiti da un
18 semplice file di testo.  Questa sezione presenta i concetti e le
19 tecniche richiesti per produrre partiture ugualmente belle, ma
20 più complesse.
21
22 @menu
23 * Come funzionano i file di input di LilyPond::
24 * Le voci contengono la musica::
25 * Contesti e incisori::
26 * Estendere i modelli::
27 @end menu
28
29
30 @node Come funzionano i file di input di LilyPond
31 @section Come funzionano i file di input di LilyPond
32 @translationof How LilyPond input files work
33
34 Il formato di input di LilyPond ha una struttura piuttosto libera, che dà
35 agli utenti esperti una grande flessibilità nell'organizzare i file come
36 preferiscono.  Ma questa flessibilità può creare confusione nei nuovi
37 utenti.  Questa sezione spiegherà in parte questa struttura, ma
38 sorvolerà su alcuni dettagli in favore della semplicità.  Per una
39 descrizione completa del formato di input, si veda @ruser{File structure}.
40
41 @menu
42 * Introduzione alla struttura di un file di LilyPond::
43 * La partitura è una (singola) espressione musicale composta::
44 * Annidare le espressioni musicali::
45 * Sul non annidamento di parentesi e legature di valore::
46 @end menu
47
48 @node Introduzione alla struttura di un file di LilyPond
49 @subsection Introduzione alla struttura di un file di LilyPond
50 @translationof Introduction to the LilyPond file structure
51
52 @cindex formato di input
53 @cindex struttura del file
54
55 Un esempio basilare di un file di input di LilyPond è
56
57 @example
58 \version @w{"@version{}"}
59
60 \header @{ @}
61
62 \score @{
63   @var{ @dots{} espressione musicale composta @dots{} }  % tutta la musica va qui!
64   \layout @{ @}
65   \midi @{ @}
66 @}
67 @end example
68
69 @noindent
70 Ci sono molte varianti a questo modello di base, ma questo esempio
71 serve da utile punto di partenza.
72
73 @funindex \book
74 @funindex book
75 @funindex \score
76 @funindex score
77 @cindex book (libro)
78 @cindex score (partitura)
79 @cindex libro
80 @cindex partitura
81
82 Finora nessuno degli esempi che abbiamo visto ha usato il comando
83 @code{\score@{@}}.  Questo si spiega col fatto che LilyPond, quando
84 elabora un input semplice, aggiunge automaticamente gli altri comandi
85 necessari.  LilyPond tratta un input come questo:
86
87 @example
88 \relative @{
89   c''4 a d c
90 @}
91 @end example
92
93 @noindent
94 come forma abbreviata per questo:
95
96 @example
97 \book @{
98   \score @{
99     \new Staff @{
100       \new Voice @{
101         \relative @{
102           c''4 a b c
103         @}
104       @}
105     @}
106     \layout @{ @}
107   @}
108 @}
109 @end example
110
111 In altre parole, se l'input contiene un'espressione musicale singola,
112 LilyPond interpreterà il file come se l'espressione musicale
113 fosse racchiusa dentro i comandi mostrati sopra.
114
115 @cindex contesti impliciti
116 @cindex contesti, impliciti
117
118 @strong{Attenzione!}  Molti esempi nella documentazione di LilyPond
119 ometteranno i comandi @code{\new Staff} e @code{\new Voice},
120 lasciando che questi siano creati implicitamente.  Per gli esempi
121 semplici questo metodo funziona bene, ma per quelli più complessi, soprattutto
122 quando vengono usati ulteriori comandi, la creazione implicita dei contesti
123 può dare risultati inattesi, ad esempio creando dei righi non voluti.
124 Il modo per creare i contesti esplicitamente è spiegato in
125 @ref{Contexts and engravers}.
126
127 @warning{Quando si inseriscono più di poche linee di musica, si consiglia
128 di creare sempre esplicitamente i righi e le voci.}
129
130 Ora però torniamo al primo esempio ed esaminiamo il comando
131 @code{\score}, lasciando gli altri comandi secondo l'impostazione predefinita.
132
133 Un blocco @code{\score} deve sempre contenere una sola espressione musicale.
134 Ricorda che un'espressione musicale può essere qualsiasi cosa, da una
135 singola nota a una grande espressione composta come
136
137 @example
138 @{
139   \new StaffGroup <<
140     @var{ @dots{} inserisci qui l'intera opera di Wagner @dots{} }
141   >>
142 @}
143 @end example
144
145 @noindent
146 Tutto quanto è compreso in @code{@{ @dots{} @}} costituisce un'unica
147 espressione musicale.
148
149 Come abbiamo detto prima, il blocco @code{\score} può contenere altri
150 elementi, come ad esempio
151
152 @example
153 \score @{
154   @{ c'4 a b c' @}
155   \header @{ @}
156   \layout @{ @}
157   \midi @{ @}
158 @}
159 @end example
160
161 @funindex \header
162 @funindex header
163 @funindex \layout
164 @funindex layout
165 @funindex \midi
166 @funindex midi
167 @cindex header
168 @cindex layout
169 @cindex midi
170
171 @noindent
172 Si noti che questi tre comandi -- @code{\header}, @code{\layout} e
173 @code{\midi} -- sono speciali: diversamente da molti altri comandi che
174 iniziano con un backslash (@code{\}), @emph{non} sono espressioni
175 musicali né fanno parte di alcuna espressione musicale.  Dunque, possono
176 essere collocati dentro o fuori da un blocco @code{\score}.  Di solito
177 questi comandi vengono posti fuori dal blocco @code{\score} -- ad esempio,
178 @code{\header} spesso viene messo sopra il comando @code{\score}, come mostra
179 l'esempio all'inizio di questa sezione.
180
181 Altri due comandi che non hai incontrato finora sono
182 @code{\layout @{ @}} e @code{\midi @{@}}.  Se questi appaiono come
183 in figura, LilyPond creerà rispettivamente un output per la stampa
184 e uno per il MIDI.  Sono descritti dettagliatamente nella
185 Guida alla notazione, in @ruser{Score layout}, e
186 @ruser{Creating MIDI files}.
187
188 @cindex partiture, multiple
189 @cindex libro, blocco implicito
190 @cindex implicito, blocco del libro
191 @funindex \book
192 @funindex book
193
194 Puoi scrivere molteplici blocchi @code{\score}.  Ciascuno verrà
195 trattato come una partitura separata, ma saranno tutti combinati in
196 un unico file di output.  Non è necessario il comando @code{\book}
197 -- ne verrà creato uno automaticamente.  Tuttavia, se si desiderano
198 file di output separati da un file @file{.ly}, allora si deve usare
199 il comando @code{\book} per separare le diverse sezioni: ogni blocco
200 @code{\book} produrrà un file di output separato.
201
202 In breve:
203
204 Ogni blocco @code{\book} crea un file di output separato (ovvero, un
205 file PDF).  Se non ne hai aggiunto uno esplicitamente, LilyPond racchiude
206 implicitamente tutto il tuo codice di input in un blocco @code{\book}.
207
208 Ogni blocco @code{\score} è un pezzo di musica separato all'interno di
209 un blocco @code{\book}.
210
211 @cindex layout, effetto della posizione del blocco
212
213 Ogni blocco @code{\layout} influenza il blocco @code{\score} o
214 @code{\book} in cui compare -- ovvero, un blocco @code{\layout}
215 che si trova dentro un blocco @code{\score} riguarda solo quel blocco
216 @code{\score}, mentre un blocco @code{\layout} che si trova fuori da un
217 blocco @code{\score} (e quindi in un blocco @code{\book}, esplicitamente
218 o implicitamente) riguarderà ogni @code{\score} in quel @code{\book}.
219
220 Per maggiori dettagli si veda @ruser{Multiple scores in a book}.
221
222 @cindex variabili
223
224 Un'altra grande scorciatoia è la possibilità di definire variabili, come è
225 spiegato in @ref{Organizzare i brani con le variabili}).  Tutti
226 i modelli usano questa forma
227
228 @example
229 melodia = \relative @{
230   c'4 a b c
231 @}
232
233 \score @{
234   \melodia
235 @}
236 @end example
237
238 Quando LilyPond esamina questo file, prende il valore di @code{melodia} (tutto
239 ciò che si trova dopo il segno di uguale) e lo inserisce ovunque si trovi
240 @code{\melodia}.  Non c'è una regola specifica per i nomi -- il nome può essere
241 @code{melodia}, @code{globale}, @code{tempo}, @code{manodestrapiano}, o qualsiasi
242 altro nome.  Ricordati che puoi usare quasi ogni nome che vuoi, purché esso
243 contenga solo caratteri alfabetici e sia diverso dai nomi dei comandi di
244 LilyPond.  Le esatte limitazioni relative ai nomi delle variabili sono spiegate
245 dettagliatamente in @ruser{File structure}.
246
247
248 @seealso
249 Per una definizione completa del formato di input, si veda
250 @ruser{File structure}.
251
252
253 @node La partitura è una (singola) espressione musicale composta
254 @subsection La partitura è una (singola) espressione musicale composta
255 @translationof Score is a (single) compound musical expression
256
257 @funindex \score
258 @funindex score
259 @cindex partitura
260 @cindex score
261 @cindex contenuto di un blocco score
262 @cindex score, contenuto del blocco
263 @cindex espressione musicale composta
264 @cindex composta, espressione musicale
265
266 Abbiamo visto l'organizzazione generale dei file di input di LilyPond nella
267 sezione precedente, @ref{Introduzione alla struttura di un file di LilyPond}.
268 Ma sembra che abbiamo saltato la parte più importante: cosa dobbiamo
269 scrivere dopo @code{\score}?
270
271 In realtà non l'abbiamo affatto dimenticato.  Il grande mistero è,
272 semplicemente, che @emph{non c'è} alcun mistero.  La seguente frase spiega tutto:
273
274 @quotation
275 @emph{Un blocco @code{\score} deve contenere una sola espressione musicale.}
276 @end quotation
277
278 @noindent
279 Per capire cosa si intende per espressione musicale, potrebbe esserti utile
280 ripassare il tutorial, @ref{Espressioni musicali}.  In quella sezione, abbiamo
281 visto come costruire grandi espressioni musicali a partire da piccoli brani --
282 abbiamo iniziato con le note, poi gli accordi, etc.  Adesso inizieremo da una
283 grande espressione musicale e proseguiremo poi a spiegarne i dettagli. Per
284 semplicità, nel nostro esempio useremo soltanto un canto e un pianoforte.  Per
285 questa formazione non abbiamo bisogno di @code{StaffGroup}, che non fa altro che
286 raggruppare un insieme di righi con una parentesi graffa a sinistra, ma abbiamo
287 comunque bisogno dei righi per il canto e per il pianoforte.
288
289 @example
290 \score @{
291   <<
292     \new Staff = "canto" <<
293     >>
294     \new PianoStaff = "pianoforte" <<
295     >>
296   >>
297   \layout @{ @}
298 @}
299 @end example
300
301 In questo esempio abbiamo dato dei nomi ai righi -- @qq{canto} e
302 @qq{pianoforte}.  Non è necessario in questo caso, ma è una buona abitudine
303 da coltivare, perché ti permette di vedere a colpo d'occhio a cosa serve
304 ciascun rigo.
305
306 Ricorda che si usa @code{<< @dots{} >>} invece di @code{@{ @dots{} @}} per indicare
307 la musica simultanea.  In questo modo la parte vocale e quella di pianoforte
308 appaiono una sopra l'altra nello spartito.  Il costrutto @code{<< @dots{} >>} non
309 sarebbe necessario per il rigo del cantante nell'esempio precedente se contenesse
310 soltanto un'espressione musicale sequenziale, ma @code{<< @dots{} >>} al posto delle
311 parentesi è necessario se la musica sul rigo deve contenere due o più espressioni
312 simultanee, ad esempio due voci simultanee, o una voce con del testo.  Vogliamo
313 avere una voce con del testo, dunque ci servono le parentesi ad angolo.  Aggiungeremo
314 la musica vera e propria in seguito; per adesso mettiamo soltanto delle semplici
315 note e del testo.  Se hai dimenticato come aggiungere del testo, potresti voler
316 ripassare @code{\addlyrics} in @ref{Impostare canzoni semplici}.
317
318 @lilypond[verbatim,quote,ragged-right]
319 \score {
320   <<
321     \new Staff = "canto" <<
322       \new Voice = "vocal" { c'1 }
323       \addlyrics { And }
324     >>
325     \new PianoStaff = "piano" <<
326       \new Staff = "upper" { c'1 }
327       \new Staff = "lower" { c'1 }
328     >>
329   >>
330   \layout { }
331 }
332 @end lilypond
333
334 Ora abbiamo molti più dettagli.  Abbiamo il rigo del cantante: esso contiene
335 una @code{Voice} o voce (in LilyPond, questo termine si riferisce a un insieme
336 di note, non necessariamente alle note della voce -- ad esempio, un violino di
337 solito costituisce una voce) e del testo.  Abbiamo anche il rigo del pianoforte,
338 che a sua volta comprende un rigo superiore (per la mano destra) e uno inferiore
339 (per la mano sinistra), sebbene a quest'ultimo debba ancora essere assegnata
340 una chiave di basso.
341
342 A questo punto possiamo iniziare ad inserire le note.  All'interno delle parentesi
343 graffe vicine a @code{\new Voice = "vocal"}, possiamo iniziare a scrivere
344
345 @example
346 \relative @{
347   r4 d''8\noBeam g, c4 r
348 @}
349 @end example
350
351 Ma se facessimo così, la sezione @code{\score} diventerebbe molto lunga, e
352 sarebbe più difficile comprendere quel che accade.  Usiamo quindi le variabili
353 piuttosto.  Queste sono state introdotte alla fine della sezione precedente,
354 ricordi?  Per far sì che i contenuti della variabile @code{text} siano
355 interpretati come testo, li facciamo precedere da @code{\lyricmode}.  Come in
356 @code{\addlyrics}, questo comando trasforma la modalità di input in modalità
357 testo.  Senza di esso, LilyPond cercherebbe di interpretare i contenuti come
358 se fossero note, e questo produrrebbe degli errori.  (Sono disponibili molte
359 altre modalità di input, si veda @ruser{Input modes}.)
360
361 Dunque se aggiungiamo un po' di note e una chiave di basso per la mano
362 sinistra, otteniamo un brano musicale vero e proprio:
363
364 @lilypond[verbatim,quote,ragged-right]
365 melody = \relative { r4 d''8\noBeam g, c4 r }
366 text   = \lyricmode { And God said, }
367 upper  = \relative { <g' d g,>2~ <g d g,> }
368 lower  = \relative { b,2 e }
369
370 \score {
371   <<
372     \new Staff = "canto" <<
373       \new Voice = "vocal" { \melody }
374       \addlyrics { \text }
375     >>
376     \new PianoStaff = "piano" <<
377       \new Staff = "upper" { \upper }
378       \new Staff = "lower" {
379         \clef "bass"
380         \lower
381       }
382     >>
383   >>
384   \layout { }
385 }
386 @end lilypond
387
388 Quando scrivi (o leggi) una sezione @code{\score}, prenditela comoda e stai
389 attento.  Comincia dal livello più esterno, poi lavora su ogni livello più
390 piccolo.  È anche molto utile essere rigorosi nell'indentare l'input -- ovvero
391 fare attenzione che ogni elemento di uno stesso livello presente nell'editor
392 di testo si trovi nella stessa posizione orizzontale.
393
394
395 @seealso
396 Guida alla notazione: @ruser{Structure of a score}.
397
398
399 @node Annidare le espressioni musicali
400 @subsection Annidare le espressioni musicali
401 @translationof Nesting music expressions
402
403 @cindex righi temporanei
404 @cindex temporanei, righi
405 @cindex ossia
406
407 Non è obbligatorio dichiarare tutti i righi fin dall'inizio; possono essere
408 invece introdotti temporaneamente in ogni momento.  Questo è utile in
409 particolare per creare le sezioni ossia -- si veda @rglos{ossia}.  Ecco un
410 semplice esempio che mostra come inserire un nuovo rigo temporaneamente, per
411 la durata di tre note:
412
413 @lilypond[verbatim,quote,ragged-right]
414 \new Staff {
415   \relative {
416     r4 g'8 g c4 c8 d |
417     e4 r8
418     <<
419       { f8 c c }
420       \new Staff {
421         f8 f c
422       }
423     >>
424     r4 |
425   }
426 }
427 @end lilypond
428
429 @noindent
430 Si noti che la dimensione della chiave è la stessa di una chiave che segue un
431 cambio di chiave --ovvero leggermente più piccola della chiave all'inizio del
432 rigo.  Questo è utile per le chiavi che devono essere posizionate a metà di un
433 rigo.
434
435 @cindex rigo, posizionamento del
436
437 La sezione ossia può anche essere posta sopra il rigo
438 nel seguente modo:
439
440 @lilypond[verbatim,quote,ragged-right]
441 \new Staff = "main" {
442   \relative {
443     r4 g'8 g c4 c8 d |
444     e4 r8
445     <<
446       { f8 c c }
447       \new Staff \with {
448         alignAboveContext = #"main"
449       } { f8 f c }
450     >>
451     r4 |
452   }
453 }
454 @end lilypond
455
456 Questo esempio usa @code{\with}, che verrà spiegato in modo più
457 completo in seguito.  È un modo per cambiare il comportamento predefinito
458 di un singolo rigo.  In questo caso, indica che il nuovo rigo deve essere
459 posizionato sopra il rigo chiamato @qq{main} invece che nella posizione
460 predefinita, che è in basso.
461
462
463 @seealso
464 Gli ossia vengono spesso scritti senza armatura di chiave e senza
465 tempo, e solitamente hanno un font più piccolo.  Richiedono ulteriori
466 comandi che non sono stati ancora presentati.  Si veda @ref{Size of objects},
467 e @ruser{Righi ossia}.
468
469
470 @node Sul non annidamento di parentesi e legature di valore
471 @subsection Sul non annidamento di parentesi e legature di valore
472 @translationof On the un-nestedness of brackets and ties
473
474 @cindex parentesi, annidare
475 @cindex tipi di parentesi
476 @cindex parentesi, racchiudere vs. contrassegnare
477
478 Abbiamo già incontrato vari tipi di parentesi e di costrutti che fanno
479 uso di parentesi mentre scrivevamo il file di input di LilyPond.  Ognuna obbedisce a
480 diverse regole, e questo può generare confusione all'inizio.  Rivediamo prima i
481 diversi tipi di parentesi e di costrutti in parentesi.
482
483 @c attempt to force this onto a new page
484 @need 50
485 @multitable @columnfractions .3 .7
486 @headitem Tipo di parentesi
487   @tab Funzione
488 @item @code{@{ @dots{} @}}
489   @tab Racchiude un frammento di musica sequenziale
490 @item @code{< @dots{} >}
491   @tab Racchiude le note di un accordo
492 @item @code{<< @dots{} >>}
493   @tab Racchiude le espressioni musicali simultanee
494 @item @code{( @dots{} )}
495   @tab Contrassegna l'inizio e la fine di una legatura di portamento
496 @item @code{\( @dots{} \)}
497   @tab Contrassegna l'inizio e la fine di una legatura di frase
498 @item @code{[ @dots{} ]}
499   @tab Contrassegna l'inizio e la fine di una travatura impostata manualmente
500 @end multitable
501
502 A questi dovremmo aggiungere altri costrutti che generano linee tra
503 e lungo le note: legature di valore (contrassegnate dal tilde, @code{~}),
504 i gruppi irregolari scritti in questa forma @code{\tuplet x/y @{ @dots{} @}}, e
505 gli abbellimenti, indicati con @code{\grace@{ @dots{} @}}.
506
507 Fuori da LilyPond, l'uso convenzionale delle parentesi esige che i diversi
508 tipi siano annidati adeguatamente, in questo modo, @code{<< [ @{ ( @dots{} )
509 @} ] >>}, dove le parentesi che chiudono si trovano esattamente
510 nell'ordine opposto alle parentesi che aprono.  Questo @strong{è} un
511 requisito per i tre tipi di parentesi descritti dal termine @q{Racchiude}
512 nella tabella precedente -- devono annidarsi correttamente.  Tuttavia,
513 i restanti costrutti in parentesi, descritti dal termine @q{Contrassegna} nella
514 tabella, così come le legature e i gruppi irregolari, @strong{non} devono annidarsi
515 correttamente con alcuna delle parentesi o dei costrutti in parentesi.  Infatti
516 queste non sono parentesi nel senso che racchiudono qualcosa -- sono semplicemente
517 dei contrassegni che indicano dove qualcosa inizia e finisce.
518
519 Quindi, ad esempio, una legatura di frase può iniziare prima di una travatura
520 inserita manualmente e finire prima della fine della travatura -- non
521 molto musicale, forse, ma possibile:
522
523 @lilypond[quote,verbatim,ragged-right,relative=2]
524 g8\( a b[ c b\) a] g4
525 @end lilypond
526
527 In generale, tipi diversi di parentesi, costrutti in parentesi e segni che
528 riguardano gruppi irregolari, legature e abbellimenti possono essere combinati
529 liberamente. L'esempio seguente mostra una travatura che si estende su un
530 gruppo irregolare (linea 1), una legatura di portamento che si estende su
531 una terzina (linea 2), una travatura e una legatura di portamento che si
532 estendono su una terzina, una legatura di valore che attraversa due gruppi
533 irregolari, e una legatura di frase che si estende fuori da un gruppo
534 irregolare (linee 3 e 4).
535
536 @lilypond[quote,verbatim,ragged-right,relative=1]
537 r16[ g \tuplet 3/2 { r16 e'8] }
538 g,16( a \tuplet 3/2 { b16 d) e }
539 g,8[( a \tuplet 3/2 { b8 d) e~] } |
540 \tuplet 5/4 { e32\( a, b d e } a4.\)
541 @end lilypond
542
543
544 @node Le voci contengono la musica
545 @section Le voci contengono la musica
546 @translationof Voices contain music
547
548 Un cantante ha bisogno della voce per cantare, e lo stesso vale per LilyPond.
549 La musica vera e propria per tutti gli strumenti di una partitura è
550 contenuta nelle Voci -- il più importante concetto di LilyPond.
551
552 @menu
553 * Sento le Voci::
554 * Definire esplicitamente le voci::
555 * Voci e musica vocale::
556 @end menu
557
558 @node Sento le Voci
559 @subsection Sento le Voci
560 @translationof I'm hearing Voices
561
562 @cindex polifonia
563 @cindex livelli
564 @cindex varie voci
565 @cindex voci, varie
566 @cindex Voice (voce), contesto di
567 @cindex contesto Voice (voce)
568 @cindex musica simultanea
569 @cindex simultanea, musica
570 @cindex musica sincrona
571 @cindex sincrona, musica
572 @cindex voci vs. accordi
573 @cindex accordi vs. voci
574
575 I livelli più profondi, più interni e più importanti di uno spartito di LilyPond
576 sono chiamati @q{Voice contexts} («Contesti della voce») o semplicemente @q{Voices}
577 («Voci»).  In altri programmi di notazione le voci sono chiamate talvolta @q{layers}
578 («livelli»).
579
580 Il livello o contesto della voce è l'unico che può contenere la
581 musica.  Se un contesto della voce non è dichiarato esplicitamente, ne
582 viene creato uno automaticamente, come abbiamo visto all'inizio di questo
583 capitolo.  Alcuni strumenti, come ad esempio un oboe, possono produrre una
584 sola nota per volta.  La musica scritta per tali strumenti necessita di
585 una sola voce.  Invece gli strumenti che possono produrre più di una nota
586 contemporaneamente, come ad esempio il pianoforte, richiederanno spesso
587 voci multiple per codificare le diverse note e ritmi simultanei che
588 sono capaci di riprodurre.
589
590 Ovviamente, una singola voce può contenere molte note in un accordo,
591 dunque quando l'uso delle voci multiple è davvero necessario?  Si osservi
592 questo esempio di quattro accordi:
593
594 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
595 \key g \major
596 <d g>4 <d fis> <d a'> <d g>
597 @end lilypond
598
599 Questa musica può essere espressa usando soltanto i simboli dell'accordo,
600 ovvero le parentesi angolari, @code{< @dots{} >}, e una singola voce è
601 sufficiente.  Ma cosa accadrebbe se il Fa# fosse in realtà una nota di un
602 ottavo seguita da un Sol di un ottavo, una nota di passaggio che porta al La?
603 In questo caso abbiamo due note che iniziano nello stesso momento ma hanno
604 durate diverse: il Re da un quarto e il Fa# da un ottavo.  Come si possono scrivere
605 queste note?  Non possono essere scritte come un accordo perché tutte le note di
606 un accordo devono avere la stessa durata.  E non possono nemmeno essere scritte
607 come due note in sequenza perché devono iniziare in contemporanea.  Si tratta
608 quindi di un caso in cui sono necessarie due voci.
609
610 Vediamo come ottenerle nella sintassi di input di LilyPond.
611
612 @funindex << \\ >>
613 @funindex \\
614
615 Il modo più semplice per inserire frammenti che utilizzino più di una voce
616 su un rigo è scrivere ogni voce come una sequenza (con @code{@{ @dots{} @}}),
617 e poi combinarle in simultanea tramite le doppie parentesi angolari, @code{<< @dots{} >>}.
618 Per collocarli in voci distinte, i frammenti devono essere separati da un doppio
619 backslash, @code{\\}.  Senza di esso, le note sarebbero inserite in un'unica
620 voce, e questo normalmente causerebbe degli errori.  Questa tecnica è
621 particolarmente adatta ai brani che sono in gran parte omofonici ma
622 con brevi e occasionali sezioni polifoniche.
623
624 Ecco come suddividere gli accordi precedenti in due voci e aggiungere sia
625 la nota di passaggio che la legatura di portamento:
626
627 @lilypond[quote,verbatim,ragged-right,relative=2]
628 \key g \major
629 %    Voice "1"               Voice "2"
630 << { g4 fis8( g) a4 g } \\ { d4 d d d }  >>
631 @end lilypond
632
633 Si noti come i gambi della seconda voce adesso siano rivolti in basso.
634
635 Ecco un altro semplice esempio:
636
637 @lilypond[quote,verbatim,ragged-right,relative=2]
638 \key d \minor
639 %    Voice "1"             Voice "2"
640 << { r4 g g4. a8 }    \\ { d,2 d4 g }       >> |
641 << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
642 << { a2. r4 }         \\ { fis2. s4 }       >> |
643 @end lilypond
644
645 Non è necessario usare un costrutto con @code{<< \\ >>} in ogni
646 battuta.  Per musiche che hanno poche note in ogni battuta questo layout
647 può aiutare la leggibilità del codice, ma se ci sono molte note in
648 ogni battuta è preferibile dividere ogni voce, così:
649
650 @lilypond[quote,verbatim,ragged-right,relative=2]
651 \key d \minor
652 << {
653   % Voice "1"
654   r4 g g4. a8 |
655   bes4 bes c bes |
656   a2. r4 |
657 } \\ {
658   % Voice "2"
659   d,2 d4 g |
660   g4 g g8( a) g4 |
661   fis2. s4 |
662 } >>
663 @end lilypond
664
665
666 @cindex voci, nome delle
667 @cindex voci che attraversano le parentesi
668 @cindex legature che attraversano le parentesi
669
670 Questo esempio ha solo due voci, ma si potrebbe usare lo stesso
671 costrutto per scrivere tre o più voci aggiungendo più backslash.
672
673 I contesti della voce hanno i nomi @code{"1"}, @code{"2"}, etc.
674 I primi contesti impostano le voci @emph{più esterne}, la voce
675 più alta nel contesto @code{"1"} e la più bassa nel @code{"2"}.  Le voci
676 più interne vanno nei contesti @code{"3"} e @code{"4"}.  In ogni
677 contesto, la direzione verticale di legature di portamento, gambi,
678 legature di valore, dinamica, etc., è impostata correttamente.
679
680 @lilypond[quote,verbatim]
681 \new Staff \relative {
682   % Main voice
683   c'16 d e f
684   %    Voice "1"     Voice "2"                Voice "3"
685   << { g4 f e } \\ { r8 e4 d c8~ } >> |
686   << { d2 e }   \\ { c8 b16 a b8 g~ 2 } \\ { s4 b c2 } >> |
687 }
688 @end lilypond
689
690 Tutte queste voci sono separate dalla voce principale che contiene le
691 note e che si trova fuori dal costrutto @code{<< @dots{} >>}, che chiameremo
692 il @emph{costrutto simultaneo}.  Legature di portamento e di valore
693 possono connettere solo note che fanno parte della stessa voce, quindi
694 le legature non possono entrare in un costrutto simultaneo o uscirne.  Viceversa,
695 voci parallele appartenenti a costrutti simultanei distinti sullo stesso
696 rigo sono la stessa voce.  Anche altre caratteristiche della voce di riferimento
697 sono trasferite ai costrutti simultanei.  Ecco lo stesso esempio, ma
698 con colori e teste delle note diversi per ogni voce.  Si noti che i
699 cambiamenti in una voce non interessano le altre voci, ma persistono
700 sulla stessa voce in seguito.  Si noti anche che le note legate possono
701 essere divise sulle stesse voci in due costrutti, come mostra qui la
702 voce con i triangoli blu.
703
704 @lilypond[quote,verbatim]
705 \new Staff \relative {
706   % Main voice
707   c'16 d e f
708   <<  % Bar 1
709     {
710       \voiceOneStyle
711       g4 f e
712     }
713   \\
714     {
715       \voiceTwoStyle
716       r8 e4 d c8~
717     }
718   >> |
719   <<  % Bar 2
720      % Voice 1 continues
721     { d2 e }
722   \\
723      % Voice 2 continues
724     { c8 b16 a b8 g~ 2 }
725   \\
726     {
727       \voiceThreeStyle
728       s4 b c2
729     }
730   >> |
731 }
732 @end lilypond
733
734 @funindex \voiceOneStyle
735 @funindex \voiceTwoStyle
736 @funindex \voiceThreeStyle
737 @funindex \voiceFourStyle
738 @funindex \voiceNeutralStyle
739
740 I comandi @code{\voiceXXXStyle} sono pensati soprattutto
741 per documenti didattici come questo.  Modificano il colore
742 della testa, del gambo e delle travature, e lo stile della
743 testa, così da rendere le voci facilmente distinguibili.
744 La voce uno è impostata su rombi rossi, la voce due su triangoli blu,
745 la voce tre su cerchi barrati verdi, e la voce quattro (non impiegata
746 nell'esempio) su croci magenta;  @code{\voiceNeutralStyle} (anch'esso
747 non usato qui) riporta lo stile all'impostazione predefinita.
748 Vedremo in seguito come l'utente possa creare comandi simili.
749 Si veda @ref{Visibility and color of objects} e
750 @ref{Using variables for layout adjustments}.
751
752 @cindex polifonia e modo relativo
753 @cindex modo relativo e polifonia
754
755 La polifonia non cambia le relazioni tra le note all'interno di un
756 blocco @code{\relative}.  L'altezza di ogni nota continua a essere calcolata
757 in rapporto a quella della nota che la precede, o della prima nota del
758 precedente accordo.  Dunque, in
759
760 @example
761 \relative c' @{ notaA << < notaB notaC > \\ notaD >> notaE @}
762 @end example
763
764 @noindent
765 @code{notaB} è relativa a @code{notaA}                      @*
766 @code{notaC} è relativa a @code{notaB}, non a @code{notaA};   @*
767 @code{notaD} è relativa a @code{notaB}, non a @code{notaA} o a
768 @code{notaC};                                                 @*
769 @code{notaE} è relativa a @code{notaD}, non a @code{notaA}.
770
771 Un metodo alternativo, che potrebbe essere più chiaro se le note nelle
772 voci sono ampiamente separate, consiste nel porre un comando @code{\relative}
773 all'inizio di ogni voce:
774
775 @example
776 \relative c' @{ noteA @dots{} @}
777 <<
778   \relative c'' @{ < noteB noteC > @dots{} @}
779 \\
780   \relative g' @{ noteD @dots{} @}
781 >>
782 \relative c' @{ noteE @dots{} @}
783 @end example
784
785 Analizziamo infine le voci in un brano più complesso. Queste note sono
786 tratte dalle prime due battute del secondo dei due Notturni op. 32 di
787 Chopin.  Questo esempio verrà usato successivamente, in questo e nel
788 prossimo capitolo, per illustrare varie tecniche di notazione, quindi
789 per il momento ignora qualsiasi cosa del codice sottostante che ti sembra
790 incomprensibile e concentrati solo sulla musica e sulle voci -- le parti
791 più complesse saranno spiegate tutte in sezioni successive.
792
793 @c The following should appear as music without code
794 @lilypond[quote,ragged-right]
795 \new Staff \relative {
796   \key aes \major
797   <<  % Prima voce
798     { c''2 aes4. bes8 }
799   \\  % Voce due
800     {
801       % Puoi ignorare questi per ora, saranno spiegati nel capitolo 4
802       \once \override NoteColumn.force-hshift = #0
803       <ees, c>2
804       \once \override NoteColumn.force-hshift = #0.5
805       des2
806     }
807   \\  % Nessuna terza voce
808   \\  % Quarta voce
809     {
810       \override NoteColumn.force-hshift = #0
811       aes'2 f4 fes
812     }
813   >> |
814   <c ees aes c>1 |
815 }
816 @end lilypond
817
818 La direzione dei gambi viene spesso usata per indicare la continuità
819 di due linee melodiche simultanee.  In questo esempio i gambi delle note
820 più acute sono tutti rivolti in su mentre i gambi delle note più gravi
821 sono tutti rivolti in giù.  Questo è il primo indizio del fatto che è
822 coinvolta più di una voce.
823
824 Ma è quando note che iniziano nello stesso momento hanno durate diverse
825 che il ricorso a voci multiple diventa realmente indispensabile.  Osserva
826 le note che iniziano alla terza pulsazione della prima battuta.  Il La
827 bemolle è una nota di tre ottavi, il Fa è una semiminima e il Re bemolle
828 è una minima.  Non possono essere scritte come un accordo perché tutte
829 le note di un accordo devono avere la stessa durata.  Né possono essere
830 scritte come note in sequenza, dato che devono iniziare contemporaneamente.
831 Questa sezione della battuta necessita di tre voci, e la normale pratica
832 consiste nello scrivere l'intera battuta su tre voci, come mostrato sotto,
833 dove abbiamo usato diverse teste e colori per le tre voci.  Ancora una volta,
834 il codice che sta dietro questo esempio verrà spiegato dopo, quindi
835 ignora quel che non capisci.
836
837 @c The following should appear as music without code
838 @c The three voice styles should be defined in -init
839 @lilypond[quote,ragged-right]
840 \new Staff \relative c'' {
841   \key aes \major
842   <<
843     {  % Prima voce
844       \voiceOneStyle
845       c2 aes4. bes8
846     }
847   \\  % Seconda voce
848     { \voiceTwoStyle
849       % Puoi ignorare questi per ora, saranno spiegati nel capitolo 4
850       \once \override NoteColumn.force-hshift = #0
851       <ees, c>2
852       \once \override NoteColumn.force-hshift = #0.5
853       des2
854     }
855   \\  % Nessuna terza voce (vogliamo i gambi in giù)
856   \\  % Quarta voce
857     { \voiceThreeStyle
858       \override NoteColumn.force-hshift = #0
859       aes'2 f4 fes
860     }
861   >> |
862   <c ees aes c>1 |
863 }
864 @end lilypond
865
866 Proviamo a scrivere il codice di questa musica da zero.  Come
867 vedremo, questo pone alcune difficoltà.  Come abbiamo imparato,
868 iniziamo usando il costrutto @code{<< \\ >>} per inserire la musica
869 della prima battuta in tre voci:
870
871 @lilypond[quote,verbatim,ragged-right]
872 \new Staff \relative {
873   \key aes \major
874   <<
875     { c''2 aes4. bes8 } \\ { <ees, c>2 des } \\ { aes'2 f4 fes }
876   >> |
877   <c ees aes c>1 |
878 }
879 @end lilypond
880
881 @cindex gambo in giù
882 @cindex voci e direzione dei gambi
883 @cindex gambi e direzione delle voci
884 @cindex gambo in su
885
886 La direzione dei gambi è assegnata automaticamente: le voci dispari avranno i
887 gambi in su e le voci pari i gambi in giù.  I gambi per le voci 1 e 2 sono
888 giusti, ma in questo brano i gambi della voce 3 dovrebbero essere in
889 giù.  Possiamo correggere semplicemente omettendo la voce tre e ponendo la
890 musica nella voce quattro.  Si può fare aggiungendo semplicemente un altro
891 paio di @code{\\}:
892
893 @lilypond[quote,verbatim,ragged-right]
894 \new Staff \relative {
895   \key aes \major
896   <<  % Voice one
897     { c''2 aes4. bes8 }
898   \\  % Voice two
899     { <ees, c>2 des }
900   \\  % Omit Voice three
901   \\  % Voice four
902     { aes'2 f4 fes }
903   >> |
904   <c ees aes c>1 |
905 }
906 @end lilypond
907
908 @noindent
909 Possiamo vedere che questo corregge la direzione del gambo, ma il posizionamento
910 orizzontale delle note non è quello che desideriamo.  LilyPond sposta le note
911 più interne quando queste o i loro gambi collidono con le voci più
912 esterne, ma questo non è appropriato nella musica per pianoforte.  In altre
913 situazioni, gli spostamenti applicati da LilyPond potrebbero non riuscire
914 a evitare le collisioni.  LilyPond fornisce molti modi per aggiustare la collocazione
915 orizzontale delle note.  Per ora, non siamo ancora pronti a cercare di
916 correggere questo problema, dunque dovremo aspettare fino a una
917 prossima sezione -- si veda la proprietà @code{force-hshift} in @ref{Fixing
918 overlapping notation}.
919
920 @warning{Il testo e gli @emph{spanner} (come le legature di portamento e di valore, le
921 forcelle, etc.) non possono essere create @q{attraverso} le voci.}
922
923 @seealso
924 Guida alla notazione: @ruser{Più voci}.
925
926
927 @node Definire esplicitamente le voci
928 @subsection Definire esplicitamente le voci
929 @translationof Explicitly instantiating voices
930
931 @funindex \voiceOne
932 @funindex voiceOne
933 @funindex \voiceTwo
934 @funindex voiceTwo
935 @funindex \voiceThree
936 @funindex voiceThree
937 @funindex \voiceFour
938 @funindex voiceFour
939 @funindex \oneVoice
940 @funindex oneVoice
941 @funindex \new Voice
942 @cindex contesti della voce, creazione dei
943
944 I contesti della voce possono anche essere creati manualmente,
945 all'interno di un blocco @code{<< >>} che crea musica polifonica, usando
946 @code{\voiceOne} @dots{} @code{\voiceFour} per indicare le direzioni desiderate
947 per gambi, legature, etc.  Nelle partiture più grandi questo metodo
948 è più chiaro, perché fa sì che le voci possano essere separate e nominate
949 in modo più descrittivo.
950
951 Nello specifico, il costrutto @code{<< \\ >>} usato nella sezione
952 precedente:
953
954 @example
955 \new Staff @{
956   \relative @{
957     << @{ e'4 f g a @} \\ @{ c,4 d e f @} >>
958   @}
959 @}
960 @end example
961
962 @noindent
963 è equivalente a
964
965 @example
966 \new Staff <<
967   \new Voice = "1" @{ \voiceOne \relative @{ e'4 f g a @} @}
968   \new Voice = "2" @{ \voiceTwo \relative @{ c'4 d e f @} @}
969 >>
970 @end example
971
972 Entrambi hanno come risultato
973
974 @c The following example should not display the code
975 @lilypond[ragged-right,quote]
976 \new Staff <<
977   \new Voice = "1" { \voiceOne \relative { e'4 f g a } }
978   \new Voice = "2" { \voiceTwo \relative { c'4 d e f } }
979 >>
980 @end lilypond
981
982 @cindex voci, tornare alla voce singola
983 @cindex tornare alla voce singola
984
985 I comandi @code{\voiceXXX} impostano le direzioni di gambi, legature di
986 portamento, legature di valore, articolazioni, annotazioni, punti di
987 aumentazione di note puntate e diteggiature.  @code{\voiceOne} e @code{\voiceThree}
988 fanno sì che questi oggetti siano rivolti verso l'alto, mentre @code{\voiceTwo} e
989 @code{\voiceFour} fanno sì che puntino verso il basso.  Questi comandi producono
990 anche uno spostamento orizzontale per ogni voce quando si crei la necessità
991 di evitare collisioni tra le teste.  Il comando @code{\oneVoice}
992 riporta i valori alle normali impostazioni di una singola voce.
993
994 Vediamo tramite alcuni semplici esempi quali effetti esattamente
995 @code{\oneVoice}, @code{\voiceOne} e @code{\voiceTwo} hanno su
996 markup, legature di valore, legature di portamento, e dinamica:
997
998 @lilypond[quote,ragged-right,verbatim]
999 \relative c'{
1000   % Default behavior or behavior after \oneVoice
1001   c4 d8~ 8 e4( f | g4 a) b-> c |
1002 }
1003 @end lilypond
1004
1005 @lilypond[quote,ragged-right,verbatim]
1006 \relative c' {
1007   \voiceOne
1008   c4 d8~ 8 e4( f | g4 a) b-> c |
1009   \oneVoice
1010   c,4 d8~ 8 e4( f | g4 a) b-> c |
1011 }
1012 @end lilypond
1013
1014 @lilypond[quote,ragged-right,verbatim]
1015 \relative c' {
1016   \voiceTwo
1017   c4 d8~ 8 e4( f | g4 a) b-> c |
1018   \oneVoice
1019   c,4 d8~ 8 e4( f | g4 a) b-> c |
1020 }
1021 @end lilypond
1022
1023 Vediamo adesso, usando l'esempio della sezione precedente, tre modi
1024 diversi di scrivere uno stesso passo di musica polifonica, e i
1025 rispettivi vantaggi, a seconda delle circostanze.
1026
1027 Un'espressione che appare direttamente in un @code{<< >>} appartiene
1028 alla voce principale (ma, attenzione: @strong{non} in un costrutto
1029 @code{<< \\ >>}).  Questo metodo è utile quando le altre voci entrano
1030 mentre la voce principale sta già suonando.  Ecco una versione più corretta
1031 del nostro esempio.  Le note a rombi rossi mostrano che la melodia
1032 principale si trova ora nel contesto di una voce singola, e questo fa
1033 sì che sia possibile disegnare una legatura di frase sopra di esse.
1034
1035 @lilypond[quote,ragged-right,verbatim]
1036 \new Staff \relative c' {
1037   \voiceOneStyle
1038   % This section is homophonic
1039   c16^( d e f
1040   % Start simultaneous section of three voices
1041   <<
1042     % Continue the main voice in parallel
1043     { g4 f e | d2 e) | }
1044     % Initiate second voice
1045     \new Voice {
1046       % Set stems, etc., down
1047       \voiceTwo
1048       r8 e4 d c8~ | 8 b16 a b8 g~ 2 |
1049     }
1050     % Initiate third voice
1051     \new Voice {
1052       % Set stems, etc, up
1053       \voiceThree
1054       s2. | s4 b c2 |
1055     }
1056   >>
1057 }
1058 @end lilypond
1059
1060 @cindex annidare le espressioni musicali
1061 @cindex annidare i costrutti simultanei
1062 @cindex annidare le voci
1063 @cindex voci temporanee
1064 @cindex voci, annidare
1065
1066 Sono possibili costrutti polifonici annidati più fittamente, e se una voce
1067 appare solo brevemente questo potrebbe essere un modo più semplice
1068 di scrivere lo spartito:
1069
1070 @lilypond[quote,ragged-right,verbatim]
1071 \new Staff \relative {
1072   c'16^( d e f
1073   <<
1074     { g4 f e | d2 e) | }
1075     \new Voice {
1076       \voiceTwo
1077       r8 e4 d c8~ |
1078       <<
1079         { c8 b16 a b8 g~ 2 | }
1080         \new Voice {
1081           \voiceThree
1082           s4 b c2 |
1083         }
1084       >>
1085     }
1086   >>
1087 }
1088 @end lilypond
1089
1090 @cindex note spaziatrici
1091
1092 Questo metodo di annidare nuove voci in breve è utile quando solo piccole
1093 parti della musica sono polifoniche, ma quando la polifonia è impiegata
1094 largamente in tutta la parte può essere più chiaro ricorrere a voci multiple,
1095 usando le note spaziatrici per saltare le parti in cui una delle voci è muta,
1096 come nel seguente esempio:
1097
1098 @lilypond[quote,ragged-right,verbatim]
1099 \new Staff \relative c' <<
1100   % Initiate first voice
1101   \new Voice {
1102     \voiceOne
1103     c16^( d e f g4 f e | d2 e) |
1104   }
1105   % Initiate second voice
1106   \new Voice {
1107     % Set stems, etc, down
1108     \voiceTwo
1109     s4 r8 e4 d c8~ | 8 b16 a b8 g~ 2 |
1110   }
1111   % Initiate third voice
1112   \new Voice {
1113     % Set stems, etc, up
1114     \voiceThree
1115     s1 | s4 b c2 |
1116   }
1117 >>
1118 @end lilypond
1119
1120 @subsubheading Colonne di note
1121
1122 @cindex colonna delle note
1123 @cindex collisioni di note
1124 @cindex note, collisioni di
1125 @cindex comandi di spostamento
1126 @funindex \shiftOff
1127 @funindex shiftOff
1128 @funindex \shiftOn
1129 @funindex shiftOn
1130 @funindex \shiftOnn
1131 @funindex shiftOnn
1132 @funindex \shiftOnnn
1133 @funindex shiftOnnn
1134
1135 Le note maggiormente ravvicinate all'interno di un accordo o quelle che
1136 compaiono nello stesso momento in voci diverse sono disposte in due, e
1137 talvolta più, colonne, per impedire la sovrapposizione delle teste.  Esse
1138 vengono chiamate colonne delle note.  Le singole colonne di ognuna delle
1139 voci sono indipendenti, e lo scarto adottato nella voce in uso è determinato
1140 dal distanziamento delle colonne nei casi in cui altrimenti si determinerebbe
1141 una collisione. Si può vedere nell'esempio in basso.  Nella seconda battuta
1142 il Do della seconda voce è spostato a destra del Re nella prima voce, e
1143 nell'ultimo accordo il Do nella terza voce è spostato anch'esso a destra
1144 delle altre note.
1145
1146 I comandi @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}, e
1147 @code{\shiftOff} specificano il grado con cui le note e gli accordi
1148 della voce debbano essere spostati in caso di collisione. L'impostazione
1149 predefinita prevede che le voci esterne (di norma le voci uno e due)
1150 abbiano @code{\shiftOff} attivato, mentre le voci interne (terza e quarta)
1151 abbiano @code{\shiftOn} attivato.  Quando uno spostamento viene applicato,
1152 le voci una e tre vengono spostate a destra e le voci due e quattro a sinistra.
1153
1154 @code{\shiftOnn} e @code{\shiftOnnn} definiscono ulteriori livelli di
1155 scarto che possono essere temporaneamente specificati per risolvere
1156 le collisioni in situazioni complesse -- si veda @ref{Real music example}.
1157
1158 Una colonna di note può contenere soltanto una nota (o accordo) di una
1159 voce con gambi in su e una nota (o accordo) di una voce con gambi in
1160 giù.  Se note di due voci che hanno i gambi nella stessa direzione
1161 sono poste nella stessa posizione ed entrambe le voci non hanno uno
1162 spostamento specificato oppure ne hanno uno dello stesso tipo, si
1163 produrrà il messaggio di errore @qq{Too many clashing note columns}.
1164
1165
1166 @seealso
1167 Manuale di apprendimento:
1168 @ref{Moving objects}.
1169
1170 Guida alla notazione: @ruser{Più voci}.
1171
1172
1173 @node Voci e musica vocale
1174 @subsection Voci e musica vocale
1175 @translationof Voices and vocals
1176
1177 La musica vocale presenta una difficoltà in più: occorre combinare due
1178 espressioni -- note e testo.
1179
1180 @funindex \new Lyrics
1181 @funindex \lyricsto
1182 @funindex lyricsto
1183 @funindex Lyrics
1184 @cindex Lyrics, creazione di un contesto
1185 @cindex testo, creazione di un contesto
1186 @cindex testo, collegare a una voce
1187
1188 Abbiamo già visto il comando @code{\addlyrics@{@}}, che ben si comporta
1189 con le partiture semplici.  Tuttavia, questa tecnica è piuttosto
1190 limitata.  Per musica più complessa, occorre introdurre il testo in
1191 un contesto @code{Lyrics} usando @code{\new Lyrics} e collegando
1192 esplicitamente il testo alle note con @code{\lyricsto@{@}}, tramite
1193 il nome assegnato alla voce.
1194
1195 @lilypond[quote,verbatim]
1196 <<
1197   \new Voice = "one" {
1198     \relative c'' {
1199       \autoBeamOff
1200       \time 2/4
1201       c4 b8. a16 | g4. f8 | e4 d | c2 |
1202     }
1203   }
1204   \new Lyrics \lyricsto "one" {
1205     No more let | sins and | sor -- rows | grow. |
1206   }
1207 >>
1208 @end lilypond
1209
1210 Si noti che il testo deve essere collegato a un contesto @code{Voice},
1211 @emph{non} a un contesto @code{Staff}.  Questo è un caso in cui è
1212 necessario creare esplicitamente contesti @code{Staff} e @code{Voice}.
1213
1214 @cindex testo e travatura
1215 @cindex travatura e testo
1216 @funindex \autoBeamOff
1217 @funindex autoBeamOff
1218
1219 La disposizione automatica delle travature predefinita di LilyPond funziona
1220 bene per la musica strumentale, ma non altrettanto per la musica con testi,
1221 dove le travature o non sono usate affatto o servono a indicare la presenza
1222 di melismi nel testo.  Nell'esempio precedente usiamo il comando
1223 @code{\autoBeamOff} per disattivare la travatura automatica.
1224
1225 @funindex \new ChoirStaff
1226 @funindex ChoirStaff
1227 @funindex \lyricmode
1228 @funindex lyricmode
1229 @cindex struttura di una partitura vocale
1230 @cindex rigo per un coro
1231
1232 Riprendiamo l'esempio precedente di Judas Maccabæus per presentare
1233 questa tecnica più flessibile.  Innanzitutto lo rimaneggiamo per
1234 usare delle variabili per mezzo delle quali la musica e il testo
1235 possano essere separate dalla struttura del rigo.  Inseriamo anche
1236 una parentesi ChoirStaff.  Il testo deve essere introdotto da
1237 @code{\lyricmode} per assicurare che siano interpretati come testo
1238 invece che come musica.
1239
1240 @lilypond[quote,verbatim]
1241 global = { \key f \major \time 6/8 \partial 8 }
1242
1243 SopOneMusic = \relative {
1244   c''8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ 4
1245 }
1246 SopOneLyrics = \lyricmode {
1247   Let | flee -- cy flocks the | hills a -- dorn, __
1248 }
1249 SopTwoMusic = \relative {
1250   r8 | r4. r4 c'8 | a'8([ g)] f f([ e)] d | e8([ d)] c bes'
1251 }
1252 SopTwoLyrics = \lyricmode {
1253   Let | flee -- cy flocks the | hills a -- dorn,
1254 }
1255
1256 \score {
1257   \new ChoirStaff <<
1258     \new Staff <<
1259       \new Voice = "SopOne" {
1260         \global
1261         \SopOneMusic
1262       }
1263       \new Lyrics \lyricsto "SopOne" {
1264         \SopOneLyrics
1265       }
1266     >>
1267     \new Staff <<
1268       \new Voice = "SopTwo" {
1269         \global
1270         \SopTwoMusic
1271       }
1272       \new Lyrics \lyricsto "SopTwo" {
1273         \SopTwoLyrics
1274       }
1275     >>
1276   >>
1277 }
1278 @end lilypond
1279
1280 Questa è la struttura di base di tutte le partiture vocali.  Si possono
1281 aggiungere più righi, più voci in ogni rigo, più versi nei testi, e
1282 le variabili contenenti la musica possono essere poste in file
1283 separati se dovessero diventare troppo lunghe.
1284
1285 @cindex struttura di un inno
1286 @cindex SATB, struttura di
1287 @cindex vocale, partitura, varie strofe
1288 @cindex varie strofe vocali
1289 @cindex strofe, vocali, varie
1290
1291 Ecco un esempio della prima linea di un inno con quattro
1292 strofe, impostate su SATB.  In questo caso le parole per tutte e quattro
1293 le parti sono le stesse.  Si noti l'uso delle variabili per separare
1294 la notazione musicale e le parole dalla struttura del rigo.  Si veda anche
1295 come una variabile, che abbiamo deciso di chiamare @q{keyTime}, venga usata
1296 per avere vari comandi a disposizione all'interno dei due righi.  In altri
1297 esempi questo viene spesso chiamato @q{global}.
1298
1299 @lilypond[quote,verbatim]
1300 keyTime = { \key c \major \time 4/4 \partial 4 }
1301
1302 SopMusic   = \relative { c'4 | e4. e8 g4  g    | a4   a   g  }
1303 AltoMusic  = \relative { c'4 | c4. c8 e4  e    | f4   f   e  }
1304 TenorMusic = \relative  { e4 | g4. g8 c4.   b8 | a8 b c d e4 }
1305 BassMusic  = \relative  { c4 | c4. c8 c4  c    | f8 g a b c4 }
1306
1307 VerseOne =
1308   \lyricmode { E -- | ter -- nal fa -- ther, | strong to save, }
1309 VerseTwo   =
1310   \lyricmode { O | Christ, whose voice the | wa -- ters heard, }
1311 VerseThree =
1312   \lyricmode { O | Ho -- ly Spi -- rit, | who didst brood }
1313 VerseFour  =
1314   \lyricmode { O | Tri -- ni -- ty of | love and pow'r }
1315
1316 \score {
1317   \new ChoirStaff <<
1318     \new Staff <<
1319       \clef "treble"
1320       \new Voice = "Sop"  { \voiceOne \keyTime \SopMusic }
1321       \new Voice = "Alto" { \voiceTwo \AltoMusic }
1322       \new Lyrics \lyricsto "Sop" { \VerseOne   }
1323       \new Lyrics \lyricsto "Sop" { \VerseTwo   }
1324       \new Lyrics \lyricsto "Sop" { \VerseThree }
1325       \new Lyrics \lyricsto "Sop" { \VerseFour  }
1326     >>
1327     \new Staff <<
1328       \clef "bass"
1329       \new Voice = "Tenor" { \voiceOne \keyTime \TenorMusic }
1330       \new Voice = "Bass"  { \voiceTwo \BassMusic }
1331     >>
1332   >>
1333 }
1334 @end lilypond
1335
1336 @seealso
1337 Guida alla notazione: @ruser{Vocal music}.
1338
1339
1340 @node Contesti e incisori
1341 @section Contesti e incisori
1342 @translationof Contexts and engravers
1343
1344 I contesti e gli incisori sono stati menzionati in modo informale
1345 nelle sezioni precedenti; ora dobbiamo approfondire
1346 questi concetti, perché sono importanti nell'ottimizzazione
1347 dell'output di LilyPond.
1348
1349
1350 @menu
1351 * I contesti::
1352 * Creare i contesti::
1353 * Gli incisori::
1354 * Modificare le proprietà di contesto::
1355 * Aggiungere e togliere gli incisori::
1356 @end menu
1357
1358 @node I contesti
1359 @subsection I contesti
1360 @translationof Contexts explained
1361
1362 @cindex contesti, spiegazione dei
1363
1364 Quando la musica viene elaborata, molti elementi notazionali che non
1365 compaiono esplicitamente nel file di input devono essere aggiunti
1366 nell'output.  Ad esempio, si confrontino l'input e l'output del
1367 seguente esempio:
1368
1369 @lilypond[quote,verbatim,relative=2]
1370 cis4 cis2. | a4 a2. |
1371 @end lilypond
1372
1373 L'input è alquanto essenziale, ma nell'output sono stati aggiunti stanghette,
1374 alterazioni, l'armatura di chiave e il tempo.  Quando LilyPond @emph{interpreta}
1375 l'input l'informazione musicale viene analizzata da sinistra a destra, proprio
1376 come un musicista legge uno spartito.  Mentre legge l'input, il programma
1377 ricorda dove si trovano i confini della misura, e quali altezze richiedono
1378 espliciti accidenti.  Questa informazione deve essere conservata a diversi
1379 livelli.  Ad esempio, un accidente influisce solo su un singolo rigo, mentre
1380 una stanghetta deve essere sincronizzata lungo l'intera partitura.
1381
1382 All'interno di LilyPond, queste regole e pezzi di informazione sono raggruppati
1383 nei @emph{Contesti}.  Abbiamo già presentato il contesto @code{Voice}.
1384 Altri contesti sono @code{Staff} e @code{Score}.  I contesti sono strutturati
1385 gerarchicamente per riflettere la natura gerarchica di una partitura musicale.
1386 Ad esempio: un contesto @code{Staff} può contenere molti contesti @code{Voice},
1387 e un contesto @code{Score} può contenere molti contesti @code{Staff}.
1388
1389 @quotation
1390 @sourceimage{context-example,5cm,,}
1391 @end quotation
1392
1393 Ogni contesto è responsabile di far rispettare alcune regole di notazione,
1394 creare alcuni oggetti della notazione e conservare le proprietà
1395 associate.  Ad esempio, il contesto @code{Voice} può introdurre
1396 un'alterazione e poi il contesto @code{Staff} mantiene la regola per
1397 mostrare o sopprimere l'alterazione per il resto della misura.
1398
1399 Un altro esempio: la sincronizzazione delle stanghette è gestita, per
1400 impostazione predefinita, nel contesto @code{Score}.  Tuttavia, in
1401 alcune forme musicali potremmo non volere che le stanghette siano
1402 sincronizzate -- si consideri una partitura polimetrica in 4/4 e 3/4. In
1403 questi casi, dobbiamo modificare le impostazioni predefinite dei
1404 contesti @code{Score} e @code{Staff}.
1405
1406 Per spartiti molto semplici, i contesti vengono creati implicitamente, e
1407 non è necessario occuparsene.  Ma per brani più ampi, come qualsiasi
1408 cosa abbia più di un rigo, devono essere creati esplicitamente per
1409 essere sicuri di avere tutti i righi necessari, e che questi siano
1410 nel giusto ordine.  Per scrivere brani che utilizzano una
1411 notazione speciale, di solito si modificano i contesti esistenti, o
1412 addirittura se ne creano di completamente nuovi.
1413
1414 Oltre ai contesti @code{Score,} @code{Staff} e @code{Voice} ci sono
1415 contesti che stanno tra i livelli della partitura (score) e del
1416 rigo (staff) per controllare i gruppi di pentagrammi, come
1417 i contesti @code{PianoStaff} e @code{ChoirStaff}.  Ci sono anche
1418 contesti alternativi per il rigo e la voce, e contesti per il
1419 testo, le percussioni, la tastiera, il basso continuo, etc.
1420
1421 I nomi di tutti i tipi di contesto sono formati da una o più
1422 parole, e ogni parola viene unita immediatamente alla parola
1423 precedente senza trattini o underscore bensì con la prima lettera
1424 maiuscola: ad esempio, @code{GregorianTranscriptionStaff}.
1425
1426
1427 @seealso
1428 Guida alla notazione: @ruser{Contexts  explained}.
1429
1430
1431 @node Creare i contesti
1432 @subsection Creare i contesti
1433 @translationof Creating contexts
1434
1435 @funindex \new
1436 @funindex new
1437 @cindex nuovi contesti
1438 @cindex creazione di contesti
1439 @cindex contesti, creazione di
1440
1441 In un file di input un blocco della partitura, introdotto dal comando @code{\score},
1442 contiene un'espressione musicale singola e una definizione di output
1443 associata (o un blocco @code{\layout} o un blocco @code{\midi}).
1444 Di solito si lascia che il contesto @code{Score} sia creato automaticamente
1445 quando inizia l'interpretazione di quell'espressione musicale.
1446
1447 Per le partiture che hanno una sola voce e un solo rigo, si può lasciare che
1448 i contesti @code{Voice} e @code{Staff} siano creati automaticamente, ma per
1449 le partiture più complesse è necessario crearli manualmente.  Il comando
1450 più semplice per farlo è @code{\new}.  Viene posto prima di
1451 un'espressione musicale, ad esempio
1452
1453 @example
1454 \new @var{tipo} @var{espressione-musicale}
1455 @end example
1456
1457 @noindent
1458 dove @var{tipo} è il nome di un contesto (come @code{Staff} o
1459 @code{Voice}).  Questo comando crea un nuovo contesto, e inizia a
1460 interpretare @var{espressione-musicale} all'interno di quel contesto.
1461
1462 (Si noti che normalmente non è necessario il comando @code{\new Score},
1463 perché il fondamentale contesto di livello superiore @code{Score} viene creato
1464 automaticamente quando l'espressione musicale all'interno del blocco @code{\score}
1465 viene interpretata.  L'unica ragione per creare un contesto @code{Score}
1466 esplicitamente con @code{\new Score} è di inserire un blocco
1467 @code{\with} dove si possono specificare uno o più valori delle proprietà
1468 di contesto, predefiniti per tutto lo spartito..  Le informazioni su come
1469 usare i blocchi @code{\with} si trovano sotto il titolo
1470 @qq{Setting context properties with @code{\\with} } in
1471 @ref{Modifying context properties}.)
1472
1473 @warning{@bs{}@code{new Score} non dovrebbe essere usato perché il fondamentale
1474 contesto di livello superiore @code{Score} viene creato automaticamente quando
1475 l'espressione musicale all'interno del blocco @bs{}@code{score} viene
1476 interpretata.  I valori predefiniti delle proprietà di contesto validi per tutta
1477 la partitura possono essere modificati nel blocco @bs{}@code{layout}.  Vedi
1478 @ref{Modifying context properties}}
1479
1480 Nelle sezioni precedenti hai già visto molti esempi pratici della creazione
1481 di nuovi contesti @code{Staff} e @code{Voice}, ma per ricordarti
1482 come questi comandi vengano usati in pratica, ecco un esempio
1483 di musica vera e propria:
1484
1485 @lilypond[quote,verbatim,ragged-right]
1486 \score {  % start of single compound music expression
1487   <<  % start of simultaneous staves section
1488     \time 2/4
1489     \new Staff {  % create RH staff
1490       \clef "treble"
1491       \key g \minor
1492       \new Voice {  % create voice for RH notes
1493         \relative {  % start of RH notes
1494           d''4 ees16 c8. |
1495           d4 ees16 c8. |
1496         }  % end of RH notes
1497       }  % end of RH voice
1498     }  % end of RH staff
1499     \new Staff <<  % create LH staff; needs two simultaneous voices
1500       \clef "bass"
1501       \key g \minor
1502       \new Voice {  % create LH voice one
1503         \voiceOne
1504         \relative {  % start of LH voice one notes
1505           g8 <bes d> ees, <g c> |
1506           g8 <bes d> ees, <g c> |
1507         }  % end of LH voice one notes
1508       }  % end of LH voice one
1509       \new Voice {  % create LH voice two
1510         \voiceTwo
1511         \relative {  % start of LH voice two notes
1512           g4 ees |
1513           g4 ees |
1514         }  % end of LH voice two notes
1515       }  % end of LH voice two
1516     >>  % end of LH staff
1517   >>  % end of simultaneous staves section
1518 }  % end of single compound music expression
1519 @end lilypond
1520
1521 (Si noti che tutte le asserzioni che aprono un blocco o con delle
1522 parentesi graffe, @code{@{}, o con delle parentesi angolari doppie, @code{<<},
1523 sono indentate di due spazi, e la parentesi di chiusura corrispondente
1524 è indentata esattamente dello stesso spazio.  Pur non essendo un
1525 requisito indispensabile, seguire questa pratica ridurrà enormemente
1526 il numero di errori da @q{parentesi spaiate}, ed è quindi fortemente
1527 consigliato.  Permette di vedere a colpo d'occhio la struttura della
1528 musica, e qualsiasi parentesi spaiata sarà facilmente riconoscibile.
1529 Si noti anche come il rigo LH faccia uso di parentesi angolari doppie
1530 perché richiede due voci, mentre il rigo RH è costituito da
1531 una singola espressione musicale compresa tra parentesi
1532 graffe perché richiede una sola voce.)
1533
1534 @cindex contesti, dare un nome
1535 @cindex dare un nome ai contesti
1536
1537 Il comando @code{\new} può anche dare un nome identificativo al
1538 contesto per distinguerlo da altri contesti dello stesso tipo,
1539
1540 @example
1541 \new @var{tipo} = @var{id} @var{espressione-musicale}
1542 @end example
1543
1544 Si noti la distinzione tra il nome del tipo di contesto,
1545 @code{Staff}, @code{Voice}, etc, e il nome identificativo di un
1546 particolare esempio di quel tipo, che può essere qualsiasi sequenza di
1547 lettere inventata dall'utente.  Nel nome identificativo si possono usare
1548 anche numeri e spazi, ma in questo caso deve essere compreso tra virgolette,
1549 ovvero @code{\new Staff = "MioPentagramma 1" @var{espressione-musicale}}.
1550 Il nome identificativo viene utilizzato per riportare a quel
1551 particolare esempio di un contesto.  Abbiamo visto questo utilizzo
1552 nella sezione sul testo, si veda @ref{Voci e musica vocale}.
1553
1554
1555 @seealso
1556 Guida alla notazione: @ruser{Creating and referencing contexts}.
1557
1558
1559 @node Gli incisori
1560 @subsection Gli incisori
1561 @translationof Engravers explained
1562
1563 @cindex incisori
1564
1565 Ogni segno presente nell'output di una partitura realizzata con LilyPond
1566 è prodotto da un @code{Engraver} (incisore).  Dunque c'è un incisore per
1567 creare i righi, uno per le teste delle note, uno per i gambi, uno per le
1568 travature, etc, etc.  In totale ci sono più di 120 incisori!
1569 Fortunatamente, per gran parte delle partiture è necessario conoscerne
1570 pochi soltanto, e per partiture semplici non occorre conoscerne
1571 alcuno.
1572
1573 Gli incisori vivono ed operano all'interno dei Contesti.  Incisori come
1574 il @code{Metronome_mark_engraver}, la cui azione e il cui output si applicano
1575 alla partitura nel suo complesso, operano nel contesto di livello più superiore -- il
1576 contesto @code{Score}.
1577
1578 Gli incisori @code{Clef_engraver} e @code{Key_engraver} devono invece
1579 trovarsi in ogni contesto @code{Staff}, poiché righi diversi potrebbero
1580 richiedere diverse chiavi e tonalità.
1581
1582 Gli incisori @code{Note_heads_engraver} e @code{Stem_engraver} abitano
1583 ogni contesto @code{Voice}, il contesto che si trova al livello più
1584 basso di tutti.
1585
1586 Ogni incisore elabora gli oggetti specifici associati alla sua funzione, e
1587 gestisce le proprietà che a quella funzione si riferiscono. Queste proprietà,
1588 come le proprietà associate ai contesti, possono essere modificate per
1589 cambiare il funzionamento dell'incisore o l'aspetto di quegli elementi
1590 nella partitura.
1591
1592 Gli incisori hanno tutti dei nomi composti formati da parole che
1593 descrivono la loro funzione.  Solo la prima parola inizia con una maiuscola,
1594 e il resto è collegato insieme con dei trattini bassi.  Quindi
1595 l'incisore @code{Staff_symbol_engraver} ha il compito di creare le linee del
1596 pentagramma, il @code{Clef_engraver} determina e definisce il punto
1597 di riferimento dell'altezza sul rigo disegnando il simbolo di una chiave.
1598
1599 Ecco alcuni degli incisori più utilizzati insieme alla loro
1600 funzione.  Vedrai che di solito è facile indovinare la funzione a
1601 partire dal nome, o viceversa.
1602
1603 @multitable @columnfractions .3 .7
1604 @headitem Incisore
1605   @tab Funzione
1606 @item Accidental_engraver
1607   @tab Crea le alterazioni, le alterazioni di precauzione e di cortesia
1608 @item Beam_engraver
1609   @tab Incide le travature
1610 @item Clef_engraver
1611   @tab Incide le chiavi
1612 @item Completion_heads_engraver
1613   @tab Separa le note che attraversano le stanghette
1614 @item Dynamic_engraver
1615   @tab Crea le forcelle e i testi relativi alla dinamica
1616 @item Forbid_line_break_engraver
1617   @tab Impedisce l'a capo se un elemento musicale è ancora attivo
1618 @item Key_engraver
1619   @tab Crea l'armatura di chiave
1620 @item Metronome_mark_engraver
1621   @tab Incide il tempo metronomico
1622 @item Note_heads_engraver
1623   @tab Incide le teste delle note
1624 @item Rest_engraver
1625   @tab Incide le pause
1626 @item Staff_symbol_engraver
1627   @tab Incide le cinque linee (predefinite) del pentagramma
1628 @item Stem_engraver
1629   @tab Crea i gambi e i tremoli su singoli gambi
1630 @item Time_signature_engraver
1631   @tab Crea l'indicazione di tempo
1632 @end multitable
1633
1634 @smallspace
1635
1636 Vedremo in seguito come cambiare l'output di Lilypond
1637 modificando il comportamento degli incisori.
1638
1639
1640 @seealso
1641 Guida al funzionamento interno: @rinternals{Engravers and Performers}.
1642
1643
1644 @node Modificare le proprietà di contesto
1645 @subsection Modificare le proprietà di contesto
1646 @translationof Modifying context properties
1647
1648 @cindex contesto, proprietà del
1649 @cindex contesto, proprietà del, modificare
1650 @cindex modificare le proprietà del contesto
1651 @funindex \set
1652 @funindex set
1653 @funindex \unset
1654 @funindex unset
1655
1656 I contesti si occupano di tenere i valori di un certo numero di
1657 @emph{proprietà} del contesto.  Molte di queste possono essere cambiate
1658 per influenzare l'interpretazione dell'input e quindi modificare
1659 l'aspetto dell'output.  Per cambiarle si usa il comando
1660 @code{\set}.  Questo assume la seguente forma
1661
1662 @example
1663 \set @emph{NomeDelContesto}.@emph{nomeDellaProprietà} = #@emph{valore}
1664 @end example
1665
1666 Dove il @emph{NomeDelContesto} è di solito @code{Score},
1667 @code{Staff} o @code{Voice}.  Può essere omesso, e in questo
1668 caso viene considerato il contesto attuale (solitamente @code{Voice}).
1669
1670 I nomi delle proprietà del contesto consistono in parole unite
1671 insieme e senza lineette o trattini bassi, e solo la prima
1672 parola inizia con una lettera maiuscola.  Ecco alcuni esempi
1673 di quelle più usate comunemente.  Ma ne esistono molte altre.
1674
1675 @c attempt to force this onto a new page
1676 @need 50
1677 @multitable @columnfractions .25 .15 .45 .15
1678 @headitem nomeDellaProprietà
1679   @tab Tipo
1680   @tab Funzione
1681   @tab Valore di esempio
1682 @item extraNatural
1683   @tab Booleano
1684   @tab Se è vero, mette i segni di bequadro prima degli accidenti
1685   @tab @code{#t}, @code{#f}
1686 @item currentBarNumber
1687   @tab Intero
1688   @tab Imposta il numero della battuta corrente
1689   @tab @code{50}
1690 @item doubleSlurs
1691   @tab Booleano
1692   @tab Se è vero, stampa le legature di portamento sia sopra che sotto le note
1693   @tab @code{#t}, @code{#f}
1694 @item instrumentName
1695   @tab Testo
1696   @tab Imposta il nome da inserire all'inizio del rigo
1697   @tab @code{"Cello I"}
1698 @item fontSize
1699   @tab Reale
1700   @tab Aumenta o riduce la dimensione del carattere
1701   @tab @code{2.4}
1702 @item stanza
1703   @tab Testo
1704   @tab Imposta il testo da stampare prima dell'inizio di una strofa
1705   @tab @code{"2"}
1706 @end multitable
1707
1708 @noindent
1709 mentre un Booleano è o Vero (@code{#t}) o Falso (@code{#f}),
1710 un Intero è un numero intero positivo, un Reale è un numero
1711 decimale positivo o negativo, e il testo è racchiuso tra
1712 virgolette.  Si noti la presenza del segno cancelletto,
1713 (@code{#}), in due punti diversi -- come parte del valore Booleano
1714 prima di @code{t} o @code{f}, e prima del @emph{valore}
1715 nell'affermazione @code{\set}.  Dunque quando si inserisce un valore
1716 Booleano bisogna scrivere due cancelletti, ad esempio @code{##t}.
1717
1718 @cindex proprietà che operano nei contesti
1719 @cindex impostare le proprietà all'interno dei contesti
1720
1721 Prima di poter impostare una qualsiasi di queste proprietà dobbiamo sapere
1722 in quale contesto esse operino.  Talvolta questo è ovvio,
1723 ma talvolta può risultare complicato.  Se viene specificato il
1724 contesto sbagliato, non viene generato alcun messaggio di errore, ma l'azione
1725 desiderata non avrà luogo.  Ad esempio, la proprietà
1726 @code{instrumentName} risiede ovviamente nel contesto @code{Staff}, poiché
1727 è il pentagramma a dover essere nominato.
1728 Nell'esempio seguente viene etichettato il primo pentagramma, ma non il secondo,
1729 perché abbiamo omesso il nome del contesto.
1730
1731 @lilypond[quote,verbatim,ragged-right]
1732 <<
1733   \new Staff \relative c'' {
1734     \set Staff.instrumentName = #"Soprano"
1735     c2 c
1736  }
1737   \new Staff \relative c' {
1738     \set instrumentName = #"Alto"  % Wrong!
1739     d2 d
1740  }
1741 >>
1742 @end lilypond
1743
1744 Ricorda che il nome di contesto predefinito è @code{Voice}, dunque il
1745 secondo comando @code{\set} imposta la proprietà @code{instrumentName} nel
1746 contesto @code{Voice} col valore @qq{Alto}, ma dato che LilyPond non trova
1747 tale proprietà nel contesto @code{Voice}, non ha avuto luogo
1748 alcuna altra azione.  Questo non è un errore, e nessun messaggio di
1749 errore viene riportato nel file di log.
1750
1751 Analogamente, se il nome della proprietà è stato scritto male, non viene
1752 generato alcun messaggio di errore, e ovviamente l'azione desiderata non può essere
1753 eseguita.  Infatti, col comando @code{\set} puoi impostare qualsiasi @q{proprietà}
1754 (anche inventata) usando qualsiasi nome che ti piaccia in qualsiasi contesto
1755 esistente.  Ma se LilyPond non conosce il nome, allora non verrà intrapresa
1756 alcuna azione.  Alcuni editor di testo che hanno uno speciale supporto per i file
1757 di input di LilyPond presentano i nomi delle proprietà con una lista scorrevole
1758 al passaggio del mouse, come JEdit col plugin LilyPondTool, oppure
1759 evidenziano in modo diverso i nomi delle proprietà non conosciuti, come fa ConTEXT.
1760 Se non usi un editor con queste funzionalità, è consigliabile controllare il nome
1761 delle proprietà nella Guida al funzionamento interno: si veda
1762 @rinternals{Tunable context properties}, o @rinternals{Contexts}.
1763
1764 La proprietà @code{instrumentName} funzionerà soltanto se inserita nel contesto
1765 @code{Staff}, ma alcune proprietà possono essere collocate in più di un contesto.
1766 Ad esempio, la proprietà @code{extraNatural} è impostata di default sul
1767 valore ##t (vero) su tutti i righi.  Se viene impostata su ##f (falso) in uno
1768 specifico contesto @code{Staff} si applica solo alle alterazioni presenti su
1769 quel rigo.  Se impostata su falso nel contesto @code{Score} si applica a tutti
1770 i righi.
1771
1772 Quindi in questo modo si disattiva il bequadro su un rigo:
1773
1774 @lilypond[quote,verbatim,ragged-right]
1775 <<
1776   \new Staff \relative {
1777     aeses'2 aes
1778  }
1779   \new Staff \relative c'' {
1780     \set Staff.extraNatural = ##f
1781     aeses2 aes
1782  }
1783 >>
1784 @end lilypond
1785
1786 @noindent
1787 e in questo modo si disattiva in tutti i righi:
1788
1789 @lilypond[quote,verbatim,ragged-right]
1790 <<
1791   \new Staff \relative {
1792     aeses'2 aes
1793  }
1794   \new Staff \relative c'' {
1795     \set Score.extraNatural = ##f
1796     aeses2 aes
1797  }
1798 >>
1799 @end lilypond
1800
1801 Un altro esempio: se la proprietà @code{clefTransposition} viene posta
1802 nel contesto @code{Score}, cambia immediatamente il valore
1803 della trasposizione in tutti i righi presenti e imposta un nuovo
1804 valore predefinito che sarà applicato a tutti i righi.
1805
1806 Il comando opposto, @code{\unset}, di fatto rimuove la proprietà
1807 dal contesto, e questo fa sì che molte proprietà
1808 tornino al valore predefinito.  Solitamente @code{\unset} non è
1809 necessario dal momento che un nuovo comando @code{\set} permetterà
1810 di ottenere quanto si desidera.
1811
1812 I comandi @code{\set} e @code{\unset} possono trovarsi in qualsiasi
1813 punto del file di input e avranno effetto dal momento in cui si
1814 incontrano fino alla fine della partitura o finché la proprietà non
1815 viene attivata (@code{\set}) o disattivata (@code{\unset}) di nuovo.
1816 Proviamo a cambiare varie volte la dimensione del font, che influisce (tra
1817 le altre cose) sulla dimensione delle teste delle note.  La modifica è relativa
1818 al valore predefinito, non all'ultimo valore impostato.
1819
1820 @lilypond[quote,verbatim,ragged-right,relative=1]
1821 c4 d
1822 % make note heads smaller
1823 \set fontSize = #-4
1824 e4 f |
1825 % make note heads larger
1826 \set fontSize = #2.5
1827 g4 a
1828 % return to default size
1829 \unset fontSize
1830 b4 c |
1831 @end lilypond
1832
1833 Abbiamo visto come impostare i valori di diversi tipi di
1834 proprietà.  Si note che gli interi e i numeri sono sempre preceduti
1835 da un segno di cancelletto, @code{#}, mentre un valore vero o falso è
1836 specificato con @code{##t} e @code{##f}, con due cancelletti.  Una proprietà testuale
1837 dovrebbe essere racchiusa tra virgolette, come abbiamo visto prima, sebbene
1838 vedremo in seguito che in realtà il testo può essere specificato in un
1839 modo molto più generale usando il potente comando @code{\markup}.
1840
1841 @subsubheading Impostare le proprietà di contesto con @code{\with}
1842
1843 @funindex \with
1844 @funindex with
1845 @cindex contesto, proprietà del, impostare con \with
1846
1847 Il valore predefinito delle proprietà di contesto possono essere impostate
1848 anche nel momento in cui il contesto viene creato.  Talvolta questo è un
1849 modo più chiaro per specificare il valore della proprietà se questa deve
1850 rimanere fissa per la durata del contesto.  Un contesto creato col comando @code{\new}
1851 può essere immediatamente seguito da un blocco @code{\with @{ @dots{} @}} dove
1852 vengono impostati i valori predefiniti della proprietà.  Ad esempio, se vogliamo
1853 eliminare la stampa del bequadro per l'estensione di un rigo possiamo scrivere:
1854
1855 @example
1856 \new Staff \with @{ extraNatural = ##f @}
1857 @end example
1858
1859 @noindent
1860 così:
1861
1862 @lilypond[quote,verbatim,ragged-right]
1863 <<
1864   \new Staff {
1865     \relative {
1866       gisis'4 gis aeses aes
1867     }
1868   }
1869   \new Staff \with { extraNatural = ##f } {
1870     \relative {
1871       gisis'4 gis aeses aes
1872     }
1873   }
1874 >>
1875 @end lilypond
1876
1877 Si possono ancora cambiare dinamicamente le proprietà impostate in questo modo
1878 usando @code{\set}, mentre con @code{\unset} si possono riportare al valore
1879 predefinito impostato nel blocco @code{\with}.
1880
1881 @cindex fontSize, impostazione predefinita e impostazione manuale
1882
1883 Quindi se la proprietà @code{fontSize} viene inserita in una
1884 proposizione @code{\with}, imposta il valore predefinito
1885 della dimensione del font.  Se viene in seguito modificato con @code{\set},
1886 questo nuovo valore predefinito può essere recuperato col comando
1887 @code{\unset fontSize}.
1888
1889 @subsubheading Impostare le proprietà di contesto con @code{\context}
1890
1891 @cindex contesto, proprietà del, impostare con \context
1892 @funindex \context
1893 @funindex context
1894
1895 I valori delle proprietà di un contesto possono essere impostate in @emph{tutti}
1896 i contesti di un particolare tipo, così come in tutti i contesti @code{Staff}, con un
1897 solo comando.  Il tipo di contesto viene identificato attraverso il
1898 suo nome, come @code{Staff}, preceduto da una barra inversa (backslash): @code{\Staff}.
1899 La dichiarazione che imposta il valore della proprietà è la stessa che
1900 abbiamo visto nel blocco @code{\with}, introdotto prima.  Viene posta in
1901 un blocco @code{\context} all'interno di un blocco @code{\layout}.  Ogni
1902 blocco @code{\context} avrà effetto su tutti i contesti del tipo specificato
1903 nel blocco @code{\score} o @code{\book} nel quale il blocco
1904 @code{\layout} si trova.  Ecco un esempio per mostrare la struttura:
1905
1906 @lilypond[verbatim,quote]
1907 \score {
1908   \new Staff {
1909     \relative {
1910       cisis''4 e d cis
1911     }
1912   }
1913   \layout {
1914     \context {
1915       \Staff
1916       extraNatural = ##t
1917     }
1918   }
1919 }
1920 @end lilypond
1921
1922 Se si vuole che la modifica della proprietà venga applicata a tutti i righi
1923 della partitura:
1924
1925 @lilypond[quote,verbatim]
1926 \score {
1927   <<
1928     \new Staff {
1929       \relative {
1930         gisis'4 gis aeses aes
1931       }
1932     }
1933     \new Staff {
1934       \relative {
1935         gisis'4 gis aeses aes
1936       }
1937     }
1938   >>
1939   \layout {
1940     \context {
1941       \Score extraNatural = ##f
1942     }
1943   }
1944 }
1945 @end lilypond
1946
1947 @noindent
1948 Le proprietà di contesto impostate in questo modo possono essere sovrascritte per
1949 alcuni particolari contesti attraverso asserzioni in un blocco @code{\with}, e tramite
1950 comandi @code{\set} incorporati nelle asserzioni musicali.
1951
1952
1953 @seealso
1954 Guida alla notazione:
1955 @ruser{Changing context default settings},
1956 @ruser{The set command}.
1957
1958 Guida al funzionamento interno:
1959 @rinternals{Contexts},
1960 @rinternals{Tunable context properties}.
1961
1962
1963 @node Aggiungere e togliere gli incisori
1964 @subsection Aggiungere e togliere gli incisori
1965 @translationof Adding and removing engravers
1966
1967 @cindex incisori, aggiungere
1968 @cindex aggiungere gli incisori
1969 @cindex incisori, rimuovere
1970 @cindex rimuovere gli incisori
1971
1972 @funindex \consists
1973 @funindex consists
1974 @funindex \remove
1975 @funindex remove
1976
1977 Abbiamo visto che ciascuno dei contesti contiene vari incisori, ognuno
1978 dei quali ha il compito di produrre una parte specifica dell'output,
1979 come stanghette, righi, teste, gambi, etc..  Se un incisore
1980 viene rimosso da un contesto, non può più produrre il suo
1981 output.  Si tratta di un metodo sbrigativo per modificare l'output, e talvolta
1982 può essere utile.
1983
1984 @subsubheading Cambiare un singolo contesto
1985
1986 Per rimuovere un incisore da un singolo contesto usiamo il
1987 comando @code{\with} posto subito dopo il comando di creazione del
1988 contesto, come esposto nella sezione precedente.
1989
1990 A titolo di esempio, ripetiamo un esempio della sezione precedente
1991 rimuovendo le linee del rigo.  Ricorda che le linee del rigo vengono
1992 create dall'incisore @code{Staff_symbol_engraver}.
1993
1994 @lilypond[quote,verbatim,ragged-right]
1995 \new Staff \with {
1996   \remove "Staff_symbol_engraver"
1997 }
1998 \relative {
1999   c'4 d
2000   \set fontSize = #-4  % make note heads smaller
2001   e4 f |
2002   \set fontSize = #2.5  % make note heads larger
2003   g4 a
2004   \unset fontSize  % return to default size
2005   b4 c |
2006 }
2007 @end lilypond
2008
2009 @cindex ambitus, incisore dell'
2010
2011 Gli incisori possono essere aggiunti anche a contesti individuali.
2012 Il comando per farlo è
2013
2014 @code{\consists @var{Engraver_name}},
2015
2016 @noindent
2017 posto all'interno di un blocco @code{\with}.  Alcune partiture vocali hanno
2018 un ambitus collocato all'inizio del pentagramma per indicare l'intervallo tra la nota
2019 più grave e quella più acuta in quella parte -- si veda @rglos{ambitus}.  L'ambitus
2020 viene creato dall'incisore @code{Ambitus_engraver}, che di norma non è incluso in
2021 alcun contesto.  Se lo aggiungiamo al contesto @code{Voice}, calcola l'intervallo
2022 di quella voce soltanto:
2023
2024 @lilypond[quote,verbatim,ragged-right]
2025 \new Staff <<
2026   \new Voice \with {
2027     \consists "Ambitus_engraver"
2028   } {
2029     \relative c'' {
2030       \voiceOne
2031       c4 a b g
2032     }
2033   }
2034   \new Voice {
2035     \relative c' {
2036       \voiceTwo
2037       c4 e d f
2038     }
2039   }
2040 >>
2041 @end lilypond
2042
2043 @noindent
2044 ma se aggiungiamo l'incisore ambitus al contesto @code{Staff}, calcola
2045 l'intervallo di tutte le note in tutte le voci di quel pentagramma:
2046
2047 @lilypond[quote,verbatim,ragged-right]
2048 \new Staff \with {
2049   \consists "Ambitus_engraver"
2050 }
2051 <<
2052   \new Voice {
2053     \relative c'' {
2054       \voiceOne
2055       c4 a b g
2056     }
2057   }
2058   \new Voice {
2059     \relative c' {
2060       \voiceTwo
2061       c4 e d f
2062     }
2063   }
2064 >>
2065 @end lilypond
2066
2067 @subsubheading Modificare tutti i contesti dello stesso tipo
2068
2069 @funindex \layout
2070 @funindex layout
2071
2072 Gli esempi precedenti mostrano come rimuovere o aggiungere degli incisori
2073 a contesti individuali.  È anche possibile rimuovere o aggiungere gli
2074 incisori per ogni contesto di un particolare tipo inserendo i comandi
2075 nel contesto appropriato in un blocco @code{\layout}.  Ad esempio, se
2076 volessimo mostrare un ambitus per ogni pentagramma in una partitura
2077 di quattro pentagrammi, potremmo scrivere
2078
2079 @lilypond[quote,verbatim,ragged-right]
2080 \score {
2081   <<
2082     \new Staff {
2083       \relative {
2084         c''4 a b g
2085       }
2086     }
2087     \new Staff {
2088       \relative {
2089         c'4 a b g
2090       }
2091     }
2092     \new Staff {
2093       \clef "G_8"
2094       \relative {
2095         c'4 a b g
2096       }
2097     }
2098     \new Staff {
2099       \clef "bass"
2100       \relative {
2101         c4 a b g
2102       }
2103     }
2104   >>
2105   \layout {
2106     \context {
2107       \Staff
2108       \consists "Ambitus_engraver"
2109     }
2110   }
2111 }
2112 @end lilypond
2113
2114 @noindent
2115 I valori delle proprietà di un contesto possono essere impostati anche
2116 per tutti i contesti di un particolare tipo includendo il comando
2117 @code{\set} in un blocco @code{\context} nello stesso modo.
2118
2119 @seealso
2120 Guida alla notazione: @ruser{Modifying context plug-ins},
2121 @ruser{Changing context default settings}.
2122
2123 @knownissues
2124 Gli incisori @code{Stem_engraver} e @code{Beam_engraver} fissano i propri
2125 oggetti alle teste delle note.  Se si elimina @code{Note_heads_engraver}
2126 le teste delle note non vengono prodotte e di conseguenza non vengono creati
2127 nemmeno i gambi né le travature.
2128
2129
2130 @node Estendere i modelli
2131 @section Estendere i modelli
2132 @translationof Extending the templates
2133
2134 Hai letto il tutorial, sai come scrivere la musica, comprendi
2135 i concetti fondamentali.  Ma come puoi ottenere i
2136 pentagrammi che desideri?  Puoi trovare molti
2137 modelli (vedi @ref{Templates}) da cui partire.
2138 Ma se ti serve qualcosa che non è presente lì?  Continua a leggere.
2139
2140 @menu
2141 * Soprano e violoncello::
2142 * Partitura vocale a quattro parti SATB::
2143 * Scrivere una partitura da zero::
2144 * Ridurre l'input grazie a variabili e funzioni::
2145 * Partiture e parti::
2146 @end menu
2147
2148 @node Soprano e violoncello
2149 @subsection Soprano e violoncello
2150 @translationof Soprano and cello
2151
2152 @cindex modello, modificare
2153 @cindex modificare i modelli
2154
2155 Parti dal modello che sembra più simile a ciò che vuoi
2156 ottenere.  Diciamo che vuoi scrivere qualcosa per soprano e
2157 violoncello.  In questo caso, inizieremmo col modello @q{Note e testo} (per
2158 la parte di soprano).
2159
2160 @example
2161 \version @w{"@version{}"}
2162
2163 melodia = \relative @{
2164   \clef "treble"
2165   \key c \major
2166   \time 4/4
2167   a4 b c d
2168 @}
2169
2170 testo = \lyricmode @{
2171   Aaa Bee Cee Dee
2172 @}
2173
2174 \score @{
2175   <<
2176     \new Voice = "one" @{
2177       \autoBeamOff
2178       \melodia
2179     @}
2180     \new Lyrics \lyricsto "one" \testo
2181   >>
2182   \layout @{ @}
2183   \midi @{ @}
2184 @}
2185 @end example
2186
2187 Ora vogliamo aggiungere una parte per violoncello.  Vediamo l'esempio @q{Solo note}:
2188
2189 @example
2190 \version @w{"@version{}"}
2191
2192 melodia = \relative @{
2193   \clef "treble"
2194   \key c \major
2195   \time 4/4
2196   a4 b c d
2197 @}
2198
2199 \score @{
2200   \new Staff \melodia
2201   \layout @{ @}
2202   \midi @{ @}
2203 @}
2204 @end example
2205
2206 Non ci servono due comandi @code{\version}.  Ci servirà invece la
2207 sezione @code{melodia}.  Non vogliamo due sezioni @code{\score}
2208 -- se avessimo due @code{\score}, le due parti sarebbero separate.
2209 Ma le vogliamo insieme, come un duetto.  All'interno della sezione
2210 @code{\score}, non ci servono due @code{\layout} o due @code{\midi}.
2211
2212 Se semplicemente tagliamo e incolliamo la sezione @code{melodia}, finiremo
2213 con l'avere due definizioni @code{melodia}.  Questo non produrrebbe un
2214 errore, ma la seconda definizione sarebbe usata per entrambe le melodie.
2215 Dunque rinominiamole per distinguerle.  Chiameremo la sezione
2216 per il soprano @code{musicaSoprano} e la sezione per il
2217 violoncello @code{musicaVioloncello}.  Se facciamo questo, rinominiamo anche
2218 @code{testo} in @code{testoSoprano}.  Ricorda di rinominare entrambe
2219 le occorrenze di tutti questi nomi -- sia la definizione iniziale (la
2220 parte @code{melody = \relative c' @{ }) sia l'uso del nome (nella
2221 sezione @code{\score}).
2222
2223 Cambiamo anche il pentagramma della parte per violoncello --
2224 che normalmente usa la chiave di basso.  Daremo anche al violoncello
2225 delle note diverse.
2226
2227 @example
2228 \version @w{"@version{}"}
2229
2230 musicaSoprano = \relative @{
2231   \clef "treble"
2232   \key c \major
2233   \time 4/4
2234   a4 b c d
2235 @}
2236
2237 testoSoprano = \lyricmode @{
2238   Aaa Bee Cee Dee
2239 @}
2240
2241 musicaVioloncello = \relative @{
2242   \clef "bass"
2243   \key c \major
2244   \time 4/4
2245   d4 g fis8 e d4
2246 @}
2247
2248 \score @{
2249   <<
2250     \new Voice = "one" @{
2251       \autoBeamOff
2252       \musicaSoprano
2253     @}
2254     \new Lyrics \lyricsto "one" \testoSoprano
2255   >>
2256   \layout @{ @}
2257   \midi @{ @}
2258 @}
2259 @end example
2260
2261 L'aspetto è promettente, ma la parte del violoncello non apparirà nella
2262 partitura -- perché non l'abbiamo inserita nella sezione @code{\score}.  Se
2263 vogliamo che la parte del violoncello compaia sotto quella del soprano,
2264 dobbiamo aggiungere
2265
2266 @example
2267 \new Staff \musicaVioloncello
2268 @end example
2269
2270 @noindent
2271 sotto la parte del soprano.  Dobbiamo anche aggiungere @code{<<} e
2272 @code{>>} intorno alla musica -- che dice a LilyPond che c'è più di
2273 una cosa (in questo caso, due @code{Staff}) che sono
2274 simultanei.  Lo @code{\score} ora appare così:
2275
2276 @c Indentation in this example is deliberately poor
2277 @example
2278 \score @{
2279   <<
2280   <<
2281     \new Voice = "one" @{
2282       \autoBeamOff
2283       \musicaSoprano
2284     @}
2285     \new Lyrics \lyricsto "one" \testoSoprano
2286   >>
2287   \new Staff \musicaVioloncello
2288   >>
2289   \layout @{ @}
2290   \midi @{ @}
2291 @}
2292 @end example
2293
2294 @noindent
2295 L'aspetto è un po' confuso; l'indentazione non è pulita.  Ma si
2296 può correggere facilmente.  Ecco il modello completo per soprano
2297 e violoncello.
2298
2299 @lilypond[quote,verbatim,ragged-right,addversion]
2300 musicaSoprano = \relative {
2301   \clef "treble"
2302   \key c \major
2303   \time 4/4
2304   a4 b c d
2305 }
2306
2307 testoSoprano = \lyricmode {
2308   Aaa Bee Cee Dee
2309 }
2310
2311 musicaVioloncello = \relative {
2312   \clef "bass"
2313   \key c \major
2314   \time 4/4
2315   d4 g fis8 e d4
2316 }
2317
2318 \score {
2319   <<
2320     <<
2321       \new Voice = "one" {
2322         \autoBeamOff
2323         \musicaSoprano
2324       }
2325       \new Lyrics \lyricsto "one" \testoSoprano
2326     >>
2327     \new Staff \musicaVioloncello
2328   >>
2329   \layout { }
2330   \midi { }
2331 }
2332 @end lilypond
2333
2334
2335 @seealso
2336 I modelli da cui partire si trovano nell'appendice @q{Modelli},
2337 si veda @ref{Single staff templates}.
2338
2339
2340 @node Partitura vocale a quattro parti SATB
2341 @subsection Partitura vocale a quattro parti SATB
2342 @translationof Four-part SATB vocal score
2343
2344 @cindex modelli, SATB
2345 @cindex SATB, modelli
2346
2347 Gran parte delle partiture vocali di musica scritta per coro misto a
2348 quattro voci con accompagnamento di orchestra, come l'Eliah di Mendelssohn
2349 o il Messiah di Handel, hanno la musica corale e le parole su quattro
2350 righi, una per ognuna delle voci SATB, con in basso una riduzione per
2351 pianoforte dell'accompagnamento orchestrale.  Ecco un esempio tratto
2352 dal Messiah di Handel:
2353
2354 @c The following should appear as music without code
2355 @lilypond[quote,ragged-right]
2356 global = { \key d \major \time 4/4 }
2357
2358 sopranoMusic = \relative {
2359   \clef "treble"
2360   r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
2361 }
2362 sopranoWords = \lyricmode {
2363   Wor -- thy | is the lamb | that was slain |
2364 }
2365
2366 altoMusic = \relative {
2367   \clef "treble"
2368   r4 a'2 a4 | fis4. fis8 a2 | g4 fis e2 |
2369 }
2370 altoWords = \sopranoWords
2371
2372 tenorMusic = \relative {
2373   \clef "G_8"
2374   r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
2375 }
2376 tenorWords = \sopranoWords
2377
2378 bassMusic = \relative {
2379   \clef "bass"
2380   r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
2381 }
2382 bassWords = \sopranoWords
2383
2384 upper = \relative a' {
2385   \clef "treble"
2386   \global
2387   r4 <a d fis>2 <a e' a>4 |
2388   <d fis d'>4. <d fis d'>8 <a d a'>2 |
2389   <g cis g'>4 <a d fis> <a cis e>2 |
2390 }
2391
2392 lower = \relative c, {
2393   \clef "bass"
2394   \global
2395   <d d'>4 <d d'>2 <cis cis'>4 |
2396   <b b'>4. <b' b'>8 <fis fis'>2 |
2397   <e e'>4 <d d'> <a' a'>2 |
2398 }
2399
2400 \score {
2401   <<  % combine ChoirStaff and PianoStaff in parallel
2402     \new ChoirStaff <<
2403       \new Staff = "sopranos" <<
2404         \set Staff.instrumentName = #"Soprano"
2405         \new Voice = "sopranos" {
2406           \global
2407           \sopranoMusic
2408         }
2409       >>
2410       \new Lyrics \lyricsto "sopranos" {
2411         \sopranoWords
2412       }
2413       \new Staff = "altos" <<
2414         \set Staff.instrumentName = #"Alto"
2415         \new Voice = "altos" {
2416           \global
2417           \altoMusic
2418         }
2419       >>
2420       \new Lyrics \lyricsto "altos" { \altoWords }
2421       \new Staff = "tenors" <<
2422         \set Staff.instrumentName = #"Tenor"
2423         \new Voice = "tenors" {
2424           \global
2425           \tenorMusic
2426         }
2427       >>
2428       \new Lyrics \lyricsto "tenors" { \tenorWords }
2429       \new Staff = "basses" <<
2430         \set Staff.instrumentName = #"Bass"
2431         \new Voice = "basses" {
2432           \global
2433           \bassMusic
2434         }
2435       >>
2436       \new Lyrics \lyricsto "basses" {
2437         \bassWords
2438       }
2439     >>  % end ChoirStaff
2440     \new PianoStaff <<
2441       \set PianoStaff.instrumentName = #"Piano"
2442       \new Staff = "upper" \upper
2443       \new Staff = "lower" \lower
2444     >>
2445   >>
2446 }
2447 @end lilypond
2448
2449 @warning{Questa struttura può essere ottenuta facilmente usando il modello
2450 integrato @code{satb.ly}, descritto in @ref{Built-in templates}.  Ma per
2451 facilità d'uso tale modello nasconde deliberatamente la necessaria struttura
2452 dei contesti, dato che la fornisce automaticamente.  Dunque a scopo di
2453 apprendimento vediamo come costruire questa struttura da zero.  Potresti
2454 aver bisogno di far ciò se il modello integrato non soddisfa le tue
2455 necessità.}
2456
2457 Il modello @qq{copia e modifica} più simile a questa struttura
2458 è @ref{SATB vocal score and automatic piano reduction}, ma
2459 abbiamo bisogno di modificare l'assetto e aggiungere
2460 un accompagnamento per pianoforte che non sia derivato automaticamente dalle
2461 parti vocali.  Le variabili che si riferiscono alla musica e alle parole per
2462 le parti vocali vanno bene, ma dovremo aggiungere le variabili per la
2463 riduzione per pianoforte.
2464
2465 L'ordine con cui i contesti appaiono nel ChoirStaff del modello non
2466 corrisponde all'ordine della partitura vocale mostrata sopra.  Dobbiamo
2467 risistemarli in modo che ci siano quattro righi con le parole scritte
2468 direttamente sotto le note di ogni parte.  Tutte le voci devono
2469 essere @code{\voiceOne}, che è l'impostazione predefinita, quindi
2470 i comandi @code{\voiceXXX} devono essere tolti.  Dobbiamo anche
2471 specificare la chiave di tenore per i tenori.  Il modo in cui il testo
2472 viene specificato nel modello non è stato ancora esaminato quindi
2473 dovremo usare un metodo con cui siamo già familiari.  Aggiungeremo
2474 anche i nomi per ogni rigo.
2475
2476 In questo modo il nostro ChoirStaff avrà questo aspetto:
2477
2478 @example
2479 \new ChoirStaff <<
2480   \new Staff = "sopranos" <<
2481     \set Staff.instrumentName = #"Soprano"
2482     \new Voice = "sopranos" @{
2483       \global
2484       \sopranoMusic
2485     @}
2486   >>
2487   \new Lyrics \lyricsto "sopranos" @{
2488     \sopranoWords
2489   @}
2490   \new Staff = "altos" <<
2491     \set Staff.instrumentName = #"Alto"
2492     \new Voice = "altos" @{
2493       \global
2494       \altoMusic
2495     @}
2496   >>
2497   \new Lyrics \lyricsto "altos" @{
2498     \altoWords
2499   @}
2500   \new Staff = "tenors" <<
2501     \set Staff.instrumentName = #"Tenor"
2502     \new Voice = "tenors" @{
2503       \global
2504       \tenorMusic
2505     @}
2506   >>
2507   \new Lyrics \lyricsto "tenors" @{
2508     \tenorWords
2509   @}
2510   \new Staff = "basses" <<
2511     \set Staff.instrumentName = #"Bass"
2512     \new Voice = "basses" @{
2513       \global
2514       \bassMusic
2515     @}
2516   >>
2517   \new Lyrics \lyricsto "basses" @{
2518     \bassWords
2519   @}
2520 >>  % end ChoirStaff
2521 @end example
2522
2523 Poi dobbiamo lavorare sulla parte per pianoforte.  Questo
2524 è facile - basta prendere la parte per pianoforte dal
2525 modello @q{Pianoforte solista}:
2526
2527 @example
2528 \new PianoStaff <<
2529   \set PianoStaff.instrumentName = #"Piano  "
2530   \new Staff = "upper" \upper
2531   \new Staff = "lower" \lower
2532 >>
2533 @end example
2534
2535 e aggiungere le definizioni delle variabili @code{upper}
2536 e @code{lower}.
2537
2538 ChoirStaff e PianoStaff devono essere uniti attraverso parentesi angolari,
2539 perché vogliamo che siano impilati uno sopra l'altro:
2540
2541 @example
2542 <<  % combine ChoirStaff and PianoStaff one above the other
2543   \new ChoirStaff <<
2544     \new Staff = "sopranos" <<
2545       \new Voice = "sopranos" @{
2546         \global
2547         \sopranoMusic
2548       @}
2549     >>
2550     \new Lyrics \lyricsto "sopranos" @{
2551       \sopranoWords
2552      @}
2553     \new Staff = "altos" <<
2554       \new Voice = "altos" @{
2555         \global
2556         \altoMusic
2557       @}
2558     >>
2559     \new Lyrics \lyricsto "altos" @{
2560       \altoWords
2561     @}
2562     \new Staff = "tenors" <<
2563       \clef "G_8"  % tenor clef
2564       \new Voice = "tenors" @{
2565         \global
2566         \tenorMusic
2567       @}
2568     >>
2569     \new Lyrics \lyricsto "tenors" @{
2570       \tenorWords
2571     @}
2572     \new Staff = "basses" <<
2573       \clef "bass"
2574       \new Voice = "basses" @{
2575         \global
2576         \bassMusic
2577       @}
2578     >>
2579     \new Lyrics \lyricsto "basses" @{
2580       \bassWords
2581     @}
2582   >>  % end ChoirStaff
2583
2584   \new PianoStaff <<
2585     \set PianoStaff.instrumentName = #"Piano"
2586     \new Staff = "upper" \upper
2587     \new Staff = "lower" \lower
2588   >>
2589 >>
2590 @end example
2591
2592 Unendo tutto questo e aggiungendo la musica
2593 per le tre battute dell'esempio precedente, otteniamo:
2594
2595 @lilypond[quote,verbatim,ragged-right,addversion]
2596 global = { \key d \major \time 4/4 }
2597 sopranoMusic = \relative {
2598   \clef "treble"
2599   r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
2600 }
2601 sopranoWords = \lyricmode {
2602   Wor -- thy | is the lamb | that was slain |
2603 }
2604 altoMusic = \relative {
2605   \clef "treble"
2606   r4 a'2 a4 | fis4. fis8 a2 | g4 fis fis2 |
2607 }
2608 altoWords = \sopranoWords
2609 tenorMusic = \relative {
2610   \clef "G_8"
2611   r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
2612 }
2613 tenorWords = \sopranoWords
2614 bassMusic = \relative {
2615   \clef "bass"
2616   r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
2617 }
2618 bassWords = \sopranoWords
2619 upper = \relative a' {
2620   \clef "treble"
2621   \global
2622   r4 <a d fis>2 <a e' a>4 |
2623   <d fis d'>4. <d fis d'>8 <a d a'>2 |
2624   <g cis g'>4 <a d fis> <a cis e>2 |
2625 }
2626 lower = \relative c, {
2627   \clef "bass"
2628   \global
2629   <d d'>4 <d d'>2 <cis cis'>4 |
2630   <b b'>4. <b' b'>8 <fis fis'>2 |
2631   <e e'>4 <d d'> <a' a'>2 |
2632 }
2633
2634 \score {
2635   <<  % combine ChoirStaff and PianoStaff in parallel
2636     \new ChoirStaff <<
2637       \new Staff = "sopranos" <<
2638         \set Staff.instrumentName = #"Soprano"
2639         \new Voice = "sopranos" {
2640           \global
2641           \sopranoMusic
2642         }
2643       >>
2644       \new Lyrics \lyricsto "sopranos" {
2645         \sopranoWords
2646       }
2647       \new Staff = "altos" <<
2648         \set Staff.instrumentName = #"Alto"
2649         \new Voice = "altos" {
2650           \global
2651           \altoMusic
2652         }
2653       >>
2654       \new Lyrics \lyricsto "altos" {
2655         \altoWords
2656       }
2657       \new Staff = "tenors" <<
2658         \set Staff.instrumentName = #"Tenor"
2659         \new Voice = "tenors" {
2660           \global
2661           \tenorMusic
2662         }
2663       >>
2664       \new Lyrics \lyricsto "tenors" {
2665         \tenorWords
2666       }
2667       \new Staff = "basses" <<
2668         \set Staff.instrumentName = #"Bass"
2669         \new Voice = "basses" {
2670           \global
2671           \bassMusic
2672         }
2673       >>
2674       \new Lyrics \lyricsto "basses" {
2675         \bassWords
2676       }
2677     >>  % end ChoirStaff
2678
2679     \new PianoStaff <<
2680       \set PianoStaff.instrumentName = #"Piano  "
2681       \new Staff = "upper" \upper
2682       \new Staff = "lower" \lower
2683     >>
2684   >>
2685 }
2686 @end lilypond
2687
2688
2689 @node Scrivere una partitura da zero
2690 @subsection Scrivere una partitura da zero
2691 @translationof Building a score from scratch
2692
2693 @cindex modello, scrivere il tuo
2694 @cindex esempio di scrittura di una partitura
2695 @cindex scrivere una partitura, esempio
2696 @cindex partitura, esempio di scrittura
2697
2698 Dopo aver acquisito un po' di confidenza nella scrittura del codice LilyPond,
2699 potresti scoprire che è più facile costruire una partitura da zero
2700 piuttosto che modificare uno dei modelli.  In questo modo puoi
2701 anche sviluppare il tuo stile per adattarlo al tipo di musica che
2702 vuoi.  Come esempio, vediamo come mettere insieme la partitura di
2703 un preludio per organo.
2704
2705 Cominciamo con una sezione d'intestazione.  Qui va il titolo, il nome del
2706 compositore, etc, poi vengono le varie definizioni, e infine il
2707 blocco della partitura.  Spieghiamo questi prima a grandi linee
2708 e in seguito aggiungeremo i dettagli.
2709
2710 Useremo le prime due battute del preludio di Bach basato
2711 su @emph{Jesu, meine Freude}, che è scritto per organo con due
2712 manuali e pedaliera.  Puoi vedere queste due battute
2713 in fondo a questa sezione.  La parte per il manuale superiore ha due
2714 voci, quella inferiore e la pedaliera ne hanno una.  Abbiamo quindi bisogno
2715 di quattro definizioni musicali e di una definizione per stabilire il
2716 tempo e la tonalità:
2717
2718 @example
2719 \version @w{"@version{}"}
2720 \header @{
2721   title = "Jesu, meine Freude"
2722   composer = "J S Bach"
2723 @}
2724 keyTime = @{ \key c \minor \time 4/4 @}
2725 ManualOneVoiceOneMusic = @{ s1 @}
2726 ManualOneVoiceTwoMusic = @{ s1 @}
2727 ManualTwoMusic = @{ s1 @}
2728 PedalOrganMusic = @{ s1 @}
2729
2730 \score @{
2731 @}
2732 @end example
2733
2734 Per ora abbiamo usato soltanto una nota spaziatrice, @code{s1},
2735 invece di musica vera e propria.  La aggiungeremo in seguito.
2736
2737 Ora vediamo cosa dovrebbe andare nel blocco della partitura.  Mostriamo soltanto
2738 la struttura del pentagramma che vogliamo.  La musica per organo di solito viene
2739 scritta su tre righi, uno per ogni mano e uno per i pedali.  I righi della
2740 tastiera dovrebbero essere raggruppati insieme con una graffa, dunque dobbiamo
2741 usare PianoStaff per loro.  La parte del primo manuale ha bisogno di due voci
2742 mentre la parte per il secondo manuale di una soltanto.
2743
2744 @example
2745 \new PianoStaff <<
2746   \new Staff = "ManualOne" <<
2747     \new Voice @{
2748       \ManualOneVoiceOneMusic
2749     @}
2750     \new Voice @{
2751       \ManualOneVoiceTwoMusic
2752     @}
2753   >>  % end ManualOne Staff context
2754   \new Staff = "ManualTwo" <<
2755     \new Voice @{
2756       \ManualTwoMusic
2757     @}
2758   >>  % end ManualTwo Staff context
2759 >>  % end PianoStaff context
2760 @end example
2761
2762 Poi dobbiamo aggiungere un rigo per i pedali.  Questo va sotto il
2763 PianoStaff, ma deve svolgersi simultaneamente a quest'ultimo, quindi
2764 abbiamo bisogno delle parentesi angolari intorno ai due gruppi.  Altrimenti,
2765 verrà generato un errore nel file di log.  È un errore comune che
2766 farai prima o poi!  Prova a copiare l'esempio finale alla fine di
2767 questa sezione, togli le parentesi angolari, e compilalo per vedere
2768 quali errori genera.
2769
2770 @example
2771 <<  % PianoStaff and Pedal Staff must be simultaneous
2772   \new PianoStaff <<
2773     \new Staff = "ManualOne" <<
2774       \new Voice @{
2775         \ManualOneVoiceOneMusic
2776       @}
2777       \new Voice @{
2778         \ManualOneVoiceTwoMusic
2779       @}
2780     >>  % end ManualOne Staff context
2781     \new Staff = "ManualTwo" <<
2782       \new Voice @{
2783         \ManualTwoMusic
2784       @}
2785     >>  % end ManualTwo Staff context
2786   >>  % end PianoStaff context
2787   \new Staff = "PedalOrgan" <<
2788     \new Voice @{
2789       \PedalOrganMusic
2790     @}
2791   >>
2792 >>
2793 @end example
2794
2795 Non è necessario usare il costrutto simultaneo @code{<< @dots{} >>} per il rigo del
2796 secondo manuale e per quello della pedaliera, poiché contengono solo una
2797 espressione musicale, ma non è male usarlo comunque; usare sempre le parentesi
2798 angolari dopo @code{\new Staff} è una buona abitudine da coltivare nel caso ci
2799 sia più di una voce.  Per le Voci, è vero l'opposto: queste devono essere
2800 seguite regolarmente da parentesi graffe @code{@{ @dots{} @}} nel caso in cui
2801 la musica sia composta da diverse variabili che devono essere eseguite
2802 consecutivamente.
2803
2804 Aggiungiamo questa struttura al blocco della partitura, e aggiustiamo
2805 l'indentazione.  Aggiungiamo anche le chiavi appropriate, controlliamo che i
2806 gambi, le legature di portamento e quelle di valore in ogni voce del rigo
2807 superiore puntino nella direzione giusta usando @code{\voiceOne} e
2808 @code{\voiceTwo}, e inseriamo l'armatura di chiave e il tempo per ogni rigo
2809 attraverso la nostra variabile predefinita, @code{\keyTime}.
2810
2811 @example
2812 \score @{
2813   <<  % PianoStaff and Pedal Staff must be simultaneous
2814     \new PianoStaff <<
2815       \new Staff = "ManualOne" <<
2816         \keyTime  % set key and time signature
2817         \clef "treble"
2818         \new Voice @{
2819           \voiceOne
2820           \ManualOneVoiceOneMusic
2821         @}
2822         \new Voice @{
2823           \voiceTwo
2824           \ManualOneVoiceTwoMusic
2825         @}
2826       >>  % end ManualOne Staff context
2827       \new Staff = "ManualTwo" <<
2828         \keyTime
2829         \clef "bass"
2830         \new Voice @{
2831           \ManualTwoMusic
2832         @}
2833       >>  % end ManualTwo Staff context
2834     >>  % end PianoStaff context
2835     \new Staff = "PedalOrgan" <<
2836       \keyTime
2837       \clef "bass"
2838       \new Voice @{
2839         \PedalOrganMusic
2840       @}
2841     >>  % end PedalOrgan Staff
2842   >>
2843 @}  % end Score context
2844 @end example
2845
2846 @cindex allungabilità dei righi
2847 @cindex righi, allungabilità
2848
2849 L'aspetto dei righi dell'organo mostrati sopra è quasi perfetto; tuttavia
2850 c'è un piccolo difetto che non è visibile se si guarda un sistema
2851 singolo soltanto: La distanza tra il rigo della pedaliera e il rigo della mano
2852 sinistra dovrebbe essere all'incirca la stessa distanza tra il rigo della mano
2853 destra e quello della mano sinistra.  In particolare, l'allungabilità dei righi
2854 in un contesto @code{PianoStaff} è limitata (in modo che la distanza tra i righi
2855 della mano destra e sinistra non possa diventare eccessiva), e il rigo della
2856 pedaliera dovrebbe comportarsi allo stesso modo.
2857
2858 @cindex sottoproprietà
2859 @cindex proprietà, sottoproprietà
2860 @cindex oggetti grafici
2861 @cindex grafici, oggetti
2862 @cindex grob
2863
2864 L'allungabilità dei righi può essere controllata con la proprietà
2865 @code{staff-staff-spacing} dell' @q{oggetto grafico} @code{VerticalAxisGroup}
2866 (gli oggetti grafici vengono comunemente chiamati @q{grob} nella documentazione
2867 di lilypond)    -- non preoccuparti dei dettagli in questo momento; in seguito
2868 verrà fornita una spiegazione approfondita.  I curiosi possono dare
2869 un'occhiata a @ruser{Overview of modifying properties}.
2870 In questo caso, vogliamo modificare soltanto la sottoproprietà
2871 @code{allungabilità}.  Di nuovo, chi è curioso può trovare i valori predefiniti
2872 per la proprietà staff-staff-spacing nel file @file{scm/define-grobs.scm}
2873 guardando la definizione del grob @code{VerticalAxisGroup}.  Il valore dell'
2874 @code{allungabilità} viene preso dalla definizione del contesto @code{PianoStaff}
2875 (nel file @file{ly/engraver-init.ly}) così che i valori siano identici.
2876
2877 @example
2878 \score @{
2879   <<  % PianoStaff e Pedal Staff devono essere simultanei
2880     \new PianoStaff <<
2881       \new Staff = "ManualOne" <<
2882         \keyTime  % imposta l'armatura di chiave e il tempo
2883         \clef "treble"
2884         \new Voice @{
2885           \voiceOne
2886           \ManualOneVoiceOneMusic
2887         @}
2888         \new Voice @{
2889           \voiceTwo
2890           \ManualOneVoiceTwoMusic
2891         @}
2892       >>  % fine del contesto ManualOne Staff
2893       \new Staff = "ManualTwo" \with @{
2894         \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
2895       @} <<
2896         \keyTime
2897         \clef "bass"
2898         \new Voice @{
2899           \ManualTwoMusic
2900         @}
2901       >>  % fine del contesto ManualTwo Staff
2902     >>  % fine del contesto PianoStaff
2903     \new Staff = "PedalOrgan" <<
2904       \keyTime
2905       \clef "bass"
2906       \new Voice @{
2907         \PedalOrganMusic
2908       @}
2909     >>  % fine di PedalOrgan Staff
2910   >>
2911 @}  % fine del contesto Score
2912 @end example
2913
2914 Questo completa la struttura.  Qualsiasi musica per organo a tre righi
2915 avrà una struttura simile, sebbene il numero delle voci
2916 possa variare.  Tutto ciò che resta da fare ora
2917 è aggiungere la musica, e combinare tutte le parti insieme.
2918
2919 @lilypond[quote,verbatim,ragged-right,addversion]
2920 \header {
2921   title = "Jesu, meine Freude"
2922   composer = "J S Bach"
2923 }
2924 keyTime = { \key c \minor \time 4/4 }
2925 ManualOneVoiceOneMusic = \relative {
2926   g'4 g f ees |
2927   d2 c |
2928 }
2929 ManualOneVoiceTwoMusic = \relative {
2930   ees'16 d ees8~ 16 f ees d c8 d~ d c~ |
2931   8 c4 b8 c8. g16 c b c d |
2932 }
2933 ManualTwoMusic = \relative {
2934   c'16 b c8~ 16 b c g a8 g~ 16 g aes ees |
2935   f16 ees f d g aes g f ees d ees8~ 16 f ees d |
2936 }
2937 PedalOrganMusic = \relative {
2938   r8 c16 d ees d ees8~ 16 a, b g c b c8 |
2939   r16 g ees f g f g8 c,2 |
2940 }
2941
2942 \score {
2943   <<  % PianoStaff and Pedal Staff must be simultaneous
2944     \new PianoStaff <<
2945       \new Staff = "ManualOne" <<
2946         \keyTime  % set key and time signature
2947         \clef "treble"
2948         \new Voice {
2949           \voiceOne
2950           \ManualOneVoiceOneMusic
2951         }
2952         \new Voice {
2953           \voiceTwo
2954           \ManualOneVoiceTwoMusic
2955         }
2956       >>  % end ManualOne Staff context
2957       \new Staff = "ManualTwo" \with {
2958         \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
2959       } <<
2960         \keyTime
2961         \clef "bass"
2962         \new Voice {
2963           \ManualTwoMusic
2964         }
2965       >>  % end ManualTwo Staff context
2966     >>  % end PianoStaff context
2967     \new Staff = "PedalOrgan" <<
2968       \keyTime
2969       \clef "bass"
2970       \new Voice {
2971         \PedalOrganMusic
2972       }
2973     >>  % end PedalOrgan Staff context
2974   >>
2975 }  % end Score context
2976 @end lilypond
2977
2978 @seealso
2979 Glossario musicale:
2980 @rglosnamed{system,sistema}.
2981
2982 @node Ridurre l'input grazie a variabili e funzioni
2983 @subsection Ridurre l'input grazie a variabili e funzioni
2984 @translationof Saving typing with variables and functions
2985
2986 @cindex variabili
2987 @cindex variabili
2988
2989 Finora hai visto questo tipo di cose:
2990
2991 @lilypond[quote,verbatim,ragged-right]
2992 hornNotes = \relative { c''4 b dis c }
2993 \score {
2994   {
2995     \hornNotes
2996   }
2997 }
2998 @end lilypond
2999
3000 Potresti anche essere accorto che questo può essere utile nella musica minimalista:
3001
3002 @lilypond[quote,verbatim,ragged-right]
3003 fragmentA = \relative { a'4 a8. b16 }
3004 fragmentB = \relative { a'8. gis16 ees4 }
3005
3006 violin = \new Staff {
3007   \fragmentA \fragmentA |
3008   \fragmentB \fragmentA |
3009 }
3010
3011 \score {
3012   {
3013     \violin
3014   }
3015 }
3016 @end lilypond
3017
3018 Tuttavia, puoi usare queste variabili (note anche come
3019 macro, o comandi definiti dall'utente) anche per le modifiche manuali:
3020
3021 @c TODO Avoid padtext - not needed with skylining
3022 @lilypond[quote,verbatim,ragged-right]
3023 dolce = \markup { \italic \bold dolce }
3024
3025 padText = { \once \override TextScript.padding = #5.0 }
3026 fthenp =_\markup {
3027   \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
3028 }
3029
3030 violin = \relative c'' {
3031   \repeat volta 2 {
3032     c4._\dolce b8 a8 g a b |
3033     \padText
3034     c4.^"hi there!" d8 e' f g d |
3035     c,4.\fthenp b8 c4 c-. |
3036   }
3037 }
3038
3039 \score {
3040   {
3041     \violin
3042   }
3043   \layout { ragged-right = ##t }
3044 }
3045 @end lilypond
3046
3047 Chiaramente queste variabili sono utili per ridurre la quantità di
3048 testo da scrivere.  Ma vale la pena tenerle in considerazione anche se
3049 le usi una volta sola -- perché riducono la complessità.  Vediamo l'esempio
3050 precedente senza alcuna variabile.  È molto difficile da leggere,
3051 soprattutto l'ultima linea.
3052
3053 @example
3054 violin = \relative c'' @{
3055   \repeat volta 2 @{
3056     c4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
3057     \once \override TextScript.padding = #5.0
3058     c4.^"hi there!" d8 e' f g d |
3059     c,4.\markup @{
3060       \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
3061     @}
3062     b8 c4 c-. |
3063   @}
3064 @}
3065 @end example
3066
3067 Finora abbiamo visto la sostituzione statica -- quando LilyPond
3068 vede @code{\padText}, lo sostituisce con quel che noi abbiamo
3069 definito che sia (ovvero tutto ciò che sta a destra di
3070 @code{padtext=}).
3071
3072 LilyPond può gestire anche la sostituzione non statica (la puoi
3073 immaginare come una funzione).
3074
3075 @lilypond[quote,verbatim,ragged-right]
3076 padText =
3077 #(define-music-function
3078      (parser location padding)
3079      (number?)
3080    #{
3081      \once \override TextScript.padding = #padding
3082    #})
3083
3084 \relative {
3085   c'''4^"piu mosso" b a b |
3086   \padText #1.8
3087   c4^"piu mosso" d e f |
3088   \padText #2.6
3089   c4^"piu mosso" fis a g |
3090 }
3091 @end lilypond
3092
3093 L'uso di variabili è anche un buon modo per ridurre il lavoro quando
3094 la sintassi di input di LilyPond cambia (vedi
3095 @rprogram{Aggiornare i file con convert-ly}).  Se si ha un'unica
3096 definizione (come @code{\dolce}) per tutti i file di input
3097 (vedi @ref{Style sheets}), allora se la sintassi cambia bisogna
3098 aggiornare soltanto la singola definizione @code{\dolce},
3099 invece di dover modificare tutti i file @file{.ly}.
3100
3101
3102 @node Partiture e parti
3103 @subsection Partiture e parti
3104 @translationof Scores and parts
3105
3106 Nella musica orchestrale, tutte le note vengono stampate due volte.  Una
3107 volta nella parte per i musicisti e una volta nella partitura completa
3108 per il direttore.  Le variabili sono utili se si vuole evitare il doppio
3109 lavoro.  La musica viene inserita una volta e salvata all'interno di una
3110 variabile.  I contenuti di quella variabile vengono poi usati per generare
3111 sia la parte che l'intera partitura.
3112
3113 Conviene definire le note in un file speciale.  Ad esempio,
3114 supponiamo che il file @file{horn-music.ly} contenga la seguente parte
3115 di un duetto per corno e fagotto
3116
3117 @example
3118 hornNotes = \relative @{
3119   \time 2/4
3120   r4 f8 a | cis4 f | e4 d |
3121 @}
3122 @end example
3123
3124 @noindent
3125 Poi una parte individuale si ottiene inserendo il seguente codice in un file
3126
3127 @example
3128 \include "horn-music.ly"
3129
3130 \header @{
3131   instrument = "Horn in F"
3132 @}
3133
3134 @{
3135  \transpose f c' \hornNotes
3136 @}
3137 @end example
3138
3139 La linea
3140
3141 @example
3142 \include "horn-music.ly"
3143 @end example
3144
3145 @noindent
3146 sostituisce i contenuti di @file{horn-music.ly} in quella posizione del
3147 file, quindi @code{hornNotes} è definito dopo.  Il comando
3148 @code{\transpose f@tie{}c'} indica che l'argomento, ovvero
3149 @code{\hornNotes}, deve essere trasposto di una quinta ascendente.  La tonalità
3150 @code{f} è indicata dalla nota @code{c'}, che corrisponde all'accordatura
3151 di un normale corno francese in@tie{}Fa.  La trasposizione può essere vista
3152 nel seguente output
3153
3154 @lilypond[quote,ragged-right]
3155 \transpose f c' \relative {
3156   \time 2/4
3157   r4 f8 a | cis4 f | e4 d |
3158 }
3159 @end lilypond
3160
3161 Nei brani di insieme, una delle voci non suona per molte
3162 misure.  Questo viene indicato da una pausa speciale, la pausa
3163 multi-misura.  Si inserisce con una @code{R} maiuscola seguita da una
3164 durata (@code{1}@tie{}per una semibreve, @code{2}@tie{}per una minima,
3165 etc.).  Moltiplicando la durata, si possono costruire pause
3166 più lunghe.  Ad esempio, questa pausa prende 3@tie{}misure in un
3167 tempo di 2/4
3168
3169 @example
3170 R2*3
3171 @end example
3172
3173 Quando la parte viene stampata, le pause multiple devono essere
3174 condensate.  Si può fare impostando una variabile run-time
3175
3176 @example
3177 \set Score.skipBars = ##t
3178 @end example
3179
3180 @noindent
3181 Questo comando imposta la proprietà @code{skipBars} nel contesto
3182 @code{Score} su vero (@code{##t}).  Aggiungendo la pausa e questa
3183 opzione alla musica precedente, si arriva al seguente risultato
3184
3185 @lilypond[quote,ragged-right]
3186 \transpose f c' \relative c {
3187   \time 2/4
3188   \set Score.skipBars = ##t
3189   R2*3 |
3190   r4 f8 a | cis4 f | e4 d |
3191 }
3192 @end lilypond
3193
3194
3195 Lo spartito si forma combinando tutta la musica insieme.  Assumendo che
3196 l'altra voce si trovi in @code{bassoonNotes} nel file
3197 @file{bassoon-music.ly}, lo spartito sarà
3198
3199 @example
3200 \include "bassoon-music.ly"
3201 \include "horn-music.ly"
3202
3203 <<
3204   \new Staff \hornNotes
3205   \new Staff \bassoonNotes
3206 >>
3207 @end example
3208
3209 @noindent
3210 ovvero
3211
3212 @lilypond[quote,ragged-right]
3213 \relative <<
3214   \new Staff {
3215     \clef "treble"
3216     \time 2/4
3217     R2*3 |
3218     r4 f8 a | cis4 f | e4 d |
3219   }
3220   \new Staff {
3221     \clef "bass"
3222     \time 2/4
3223     r4 d,8 f | gis4 c | b4 bes |
3224     a8 e f4 | g4 d | gis4 f |
3225   }
3226 >>
3227 @end lilypond