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