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