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