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