]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/it/essay/engraving.itely
Imported Upstream version 2.19.50
[lilypond.git] / Documentation / it / essay / engraving.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
2
3 @ignore
4     Translation of GIT committish: c72179ccf41124936a43bb7279d92c6cb6266b7b
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  For details, see the Contributors'
8     Guide, node Updating translation committishes..
9 @end ignore
10
11 @c \version "2.19.24"
12
13 @c Translators: Tommaso Gordini
14 @c Translation checkers: Federico Bruni
15
16 @node Incisione musicale
17 @chapter Incisione musicale
18 @translationof Music engraving
19
20 In questo saggio spieghiamo le ragioni per cui LilyPond è stato creato e
21 come fa a produrre spartiti così belli.
22
23 @c TODO:
24 @c remove 3mm eps bounding box left padding for Sarabande (This will
25 @c     require adding a new snippet option to lilypond-book.py
26 @c check formatting of HTML output
27
28 @menu
29 * Storia di LilyPond::
30 * Incisione in dettaglio::
31 * Incisione automatizzata::
32 * Costruzione del software::
33 * Mettere LilyPond al lavoro::
34 * Esempi di incisione (BWV 861)::
35 @end menu
36
37 @node Storia di LilyPond
38 @section Storia di LilyPond
39 @translationof The LilyPond story
40
41 Molto tempo prima che LilyPond venisse adoperato per incidere gradevoli
42 spartiti da leggere nelle esecuzioni, prima che ci si potessero creare
43 dispense per i corsi universitari o perfino semplici melodie, prima ancora che
44 esistessero una comunità di utenti sparsa in tutto il mondo o addirittura
45 un saggio sull'incisione musicale, LilyPond ha preso vita con una domanda:
46
47 @quotation
48 Perché la maggior parte degli spartiti generati da un software non riesce a
49 raggiungere la bellezza e l'equilibrio di uno spartito inciso a mano?
50 @end quotation
51
52 @noindent
53 Possiamo trovare alcune risposte esaminando i due spartiti
54 @ifnottex
55 qui sotto.
56 @end ifnottex
57 @iftex
58 nelle pagine seguenti.
59 @end iftex
60 Il primo è un bellissimo spartito inciso a mano nel 1950; il secondo è
61 un'edizione moderna realizzata al computer.
62
63 @ifnottex
64 @quotation
65 @noindent
66 Bärenreiter BA 320, @copyright{}1950:
67
68 @sourceimage{baer-suite1-fullpage,,,png}
69 @end quotation
70
71 @quotation
72 @noindent
73 Henle no. 666, @copyright{}2000:
74
75 @sourceimage{henle-suite1-fullpage,,,png}
76 @end quotation
77 @end ifnottex
78
79 Le note, prese dalla prima Suite di Bach per violoncello solo,
80 sono identiche, ma il loro aspetto sulla pagina è diverso, specialmente
81 se le stampate e le guardate da lontano.
82 @ifnottex
83 (La versione in PDF di questo manuale contiene immagini ad alta
84 risoluzione adatte alla stampa.)
85 @end ifnottex
86 Provate a leggerle o a suonarle da entrambe le edizioni e vi accorgerete che quella
87 incisa a mano è più piacevole da usare.  Possiede linee fluide e un
88 certo movimento, e trasmette la sensazione di essere una musica viva e dotata
89 di respiro, mentre la versione più recente appare fredda e meccanica.
90
91 È difficile accorgersi immediatamente di che cosa rende il secondo
92 spartito diverso dal primo.  Tutto sembra pulito e ordinato, forse anche
93 @qq{migliore} perché più computerizzato e uniforme.  In verità, la cosa
94 ci ha lasciati perplessi per un bel po'.  Volevamo migliorare la
95 notazione prodotta al computer, ma prima di tutto dovevamo capire
96 che cosa c'era di sbagliato.
97
98 La risposta sta nell'uniformità perfetta, quasi matematica,
99 dell'edizione moderna.  Trovate le stanghette di battuta a metà di
100 ciascun rigo: nello spartito inciso a mano la loro posizione varia
101 naturalmente, mentre in quello più nuovo sono incolonnate quasi
102 perfettamente.  Lo mostriamo in questi schemi di impaginazione
103 semplificati, ricavati dall'incisione tradizionale (a sinistra) e
104 dall'edizione recente (a destra):
105
106 @quotation
107 @iftex
108 @sourceimage{pdf/page-layout-comparison,,,}
109 @end iftex
110 @ifnottex
111 @sourceimage{page-layout-comparison,,,png}
112 @end ifnottex
113 @end quotation
114 @noindent
115
116 Nella seconda sono incolonnate anche le singole teste delle note,
117 il che annulla il contorno della melodia, facendolo
118 scomparire in una rigida griglia di simboli musicali.
119
120 Ci sono anche altre differenze: nell'edizione incisa a mano le linee
121 verticali sono tutte più spesse, le legature si trovano più vicine alle
122 teste delle note e si osserva una maggiore varietà nella pendenza delle travature.
123 Anche se dettagli come questi possono sembrare pignoli, il risultato è
124 una pagina di musica più facile da leggere.  Nello spartito generato dal
125 software, invece, i righi sono quasi identici, e se il musicista
126 distoglie lo sguardo dalla pagina per un istante, si perderà.
127
128 LilyPond è stato progettato per risolvere i problemi che abbiamo
129 riscontrato nei programmi in circolazione e per creare musica bella da
130 vedere che imiti i migliori spartiti incisi a mano.
131
132 @iftex
133 @page
134 @noindent
135 Bärenreiter BA 320, @copyright{}1950:
136
137 @sourceimage{baer-suite1-fullpage-hires,16cm,,}
138 @page
139 @noindent
140 Henle no. 666, @copyright{}2000:
141 @sp 3
142 @sourceimage{henle-suite1-fullpage-hires,16cm,,}
143 @page
144 @end iftex
145
146 @node Incisione in dettaglio
147 @section Incisione in dettaglio
148 @translationof Engraving details
149
150 @cindex incisione
151 @cindex tipografia, musica
152 @cindex tipografia musicale
153 @cindex incisione di lastre
154 @cindex incisione musicale
155
156 L'arte della tipografia musicale è chiamata
157 @emph{incisione (su lastra)}, un termine che deriva dalla pratica
158 della stampa musicale a mano.@footnote{I primi stampatori europei
159 esplorarono diversi procedimenti, tra cui blocchi di legno intagliati
160 a mano, caratteri mobili e sottili lastre metalliche incise.
161 La tipocomposizione presentava il vantaggio di poter essere corretta
162 più facilmente e di semplificare l'inserimento di testo e parole, ma solo
163 l'incisione permetteva di impaginare la musica senza
164 ostacoli e di inserire notazioni impreviste.  Alla fine, gli spartiti
165 incisi a mano divennero lo standard per tutta la musica stampata,
166 con l'eccezione di alcuni inni e canzonieri per i quali la
167 tipocomposizione era giustificata per il fatto di essere più semplice ed economica,
168 anche nel XX secolo.}  Solo pochi decenni fa, gli spartiti erano
169 realizzati incidendo e punzonando la musica in modo speculare su una
170 lastra di zinco o peltro.  La lastra, poi, veniva inchiostrata e le
171 depressioni prodotte da incisioni e punzonature trattenevano
172 l'inchiostro.  Imprimendo la carta sulla lastra, si produceva l'immagine
173 della pagina.  Punzonature e incisioni erano realizzate completamente
174 a mano e correggere un errore era piuttosto laborioso, perciò
175 l'incisione doveva essere praticamente perfetta al primo colpo.  Saper
176 incidere le lastre era una competenza che richiedeva un alto grado di
177 specializzazione; un artigiano doveva sostenere quasi cinque anni di
178 formazione prima di acquisire il titolo di maestro incisore, e per
179 diventare veramente abile servivano altri cinque anni di esperienza.
180
181 @quotation
182 @iftex
183 @sourceimage{hader-slaan,,7cm,}
184 @end iftex
185 @ifnottex
186 @sourceimage{hader-slaan,,,jpg}
187 @end ifnottex
188 @end quotation
189
190 LilyPond si ispira alle incisioni manuali tradizionali pubblicate
191 per tutta la prima metà del XX secolo dalle principali case editrici
192 musicali europee, tra cui Bärenreiter, Duhem, Durand, Hofmeister, Peters
193 e Schott.  Quei nomi e quel periodo storico sono talvolta considerati il
194 culmine della pratica dell'incisione musicale artigianale.
195 Avendo studiato queste edizioni, abbiamo imparato molto su come stanno
196 le cose in uno spartito ben inciso e ne abbiamo individuato gli elementi
197 da imitare con LilyPond.
198
199 @c Oggi tutta la musica di nuova pubblicazione è prodotta con il
200 @c computer, il che presenta vantaggi piuttosto ovvi: le stampe sono
201 @c più economiche da realizzare, il lavoro editoriale può essere
202 @c recapitato per email e si possono archiviare i dati originali con
203 @c facilità.  Sfortunatamente, gli spartiti realizzati in questo modo
204 @c raramente eguagliano la qualità di quelli incisi a mano:
205 @c appaiono blandi, meccanici, il che li rende sgradevoli da usare.
206
207 @menu
208 * Font musicali::
209 * Spaziatura ottica::
210 * Tagli addizionali::
211 * Dimensionamento ottico::
212 * Perché lavorare così duramente?::
213 @end menu
214
215 @node Font musicali
216 @unnumberedsubsec Font musicali
217 @translationof Music fonts
218
219 Le immagini qui sotto mostrano alcune differenze tra un'incisione
220 tradizionale e un tipico spartito prodotto dal computer.  L'immagine a
221 sinistra riproduce un bemolle preso da un'edizione
222 Bärenreiter incisa a mano; quella a destra raffigura lo stesso
223 segno ma preso da un'edizione della stessa musica pubblicata nel 2000.
224 Nonostante che le due immagini siano stampate con la stessa tonalità
225 d'inchiostro, la versione Bärenreiter sembra più scura: le linee del
226 rigo sono più grosse e il bemolle appare audacemente arrotondato,
227 quasi voluttuoso.  Nell'immagine a destra, invece, le linee sono più
228 sottili e il segno è piuttosto diritto e con spigoli vivi.
229
230 @multitable @columnfractions .25 .25 .25 .25
231 @item @tab
232 @ifnotinfo
233 @iftex
234 @sourceimage{baer-flat-gray,,4cm,}
235 @end iftex
236 @ifnottex
237 @sourceimage{baer-flat-gray,,,png}
238 @end ifnottex
239
240 @tab
241 @iftex
242 @sourceimage{henle-flat-gray,,4cm,}
243 @end iftex
244 @ifnottex
245 @sourceimage{henle-flat-gray,,,png}
246 @end ifnottex
247
248 @end ifnotinfo
249 @ifinfo
250 @sourceimage{henle-flat-bw,,,png}
251 @sourceimage{baer-flat-bw,,,png}
252 @sourceimage{lily-flat-bw,,,png}
253 @end ifinfo
254
255
256 @item @tab
257 Bärenreiter (1950)
258 @tab
259 Henle (2000)
260
261 @end multitable
262
263 @cindex simboli musicali
264 @cindex caratteri musicali
265 @cindex nerezza
266 @cindex bilanciamento
267
268 Quando abbiamo deciso di scrivere un programma per creare la tipografia
269 musicale, non esistevano caratteri liberamente disponibili che
270 corrispondessero all'eleganza delle nostre edizioni preferite.  Per nulla
271 scoraggiati, imperterriti abbiamo creato una collezione di simboli musicali basandoci
272 sulle belle stampe degli spartiti incisi a mano.  L'esperienza, poi, ha
273 contribuito a sviluppare un certo gusto tipografico e ci ha permesso di
274 apprezzare anche i sottili dettagli del design.  Senza quest'esperienza, non
275 avremmo potuto renderci conto di quanto brutti fossero i caratteri che
276 avevamo ammirato all'inizio.
277
278 Di seguito ne esemplifichiamo due: la serie
279 superiore è nel font predefinito del programma Sibelius
280 (l'@emph{Opus}); la serie inferiore, in quello di LilyPond.
281
282 @quotation
283 @iftex
284 @sourceimage{pdf/OpusAndFeta,,,}
285 @end iftex
286 @ifnottex
287 @sourceimage{OpusAndFeta,,,png}
288 @end ifnottex
289 @end quotation
290
291 I simboli di LilyPond sono più grossi e il loro peso è più coerente, il
292 che li rende più facili da leggere.  I tratti terminali sottili, come
293 quelli alle due estremità della pausa di un quarto, non dovrebbero
294 finire con punte taglienti, ma piuttosto con forme arrotondate,
295 perché gli spigoli vivi delle matrici dei punzoni sono fragili e a forza
296 di battere sul metallo si usurano rapidamente.  Considerati insieme, nerezza
297 del carattere, spessore delle linee, delle travature e delle legature
298 devono essere ben amalgamati insieme per restituire un'impressione generale
299 forte ma equilibrata.
300
301 Inoltre, notate che la testa della nostra semiminima non è ellittica, ma
302 leggermente sagomata a diamante.  Il gambo verticale del segno di
303 bemolle è lievemente rastremato, allargandosi verso l'alto.  I segni di
304 diesis e bequadro si distinguono meglio da lontano perché le loro linee
305 angolate presentano una pendenza diversa e i tratti verticali sono più
306 grossi.
307
308 @node Spaziatura ottica
309 @unnumberedsubsec Spaziatura ottica
310 @translationof Optical spacing
311
312 Nella spaziatura della musica, la distribuzione dello spazio dovrebbe
313 rispecchiare le durate fra le note.  Tuttavia, come abbiamo visto prima nella
314 suite di Bach, molti spartiti moderni aderiscono alle durate con
315 precisione matematica, con scarsi risultati.  Nel prossimo
316 esempio, lo stesso motivo viene stampato due volte: la prima, usando
317 l'esatta spaziatura matematica; la seconda, con le correzioni.  Quale
318 preferite?
319
320 @cindex spaziatura ottica
321
322 @lilypond
323 \paper {
324   ragged-right = ##t
325   indent = #0.0
326 }
327
328 music = {
329    c'4 e''4 e'4 b'4
330    \stemDown
331    b'8[ e'' a' e'']
332    \stemNeutral
333    e'8[ e'8 e'8 e'8]
334 }
335 \score
336 {
337   \music
338   \layout {
339     \context {
340       \Staff
341       \override NoteSpacing.stem-spacing-correction = #0.0
342       \override NoteSpacing.same-direction-correction = #0.0
343       \override StaffSpacing.stem-spacing-correction = #0.0
344     }
345   }
346 }
347 @end lilypond
348
349 @lilypond
350 \paper {
351   ragged-right = ##t
352   indent = #0.0
353 }
354
355 music = {
356    c'4 e''4 e'4 b'4 |
357    \stemDown
358    b'8[ e'' a' e'']
359    \stemNeutral
360    e'8[ e'8 e'8 e'8]
361 }
362
363 \score
364 {
365   \music
366   \layout {
367     \context {
368       \Staff
369       \override NoteSpacing.stem-spacing-correction = #0.6
370     }
371   }
372 }
373 @end lilypond
374
375 @cindex ritmi regolari
376 @cindex spaziatura regolare
377 @cindex spaziatura, regolare
378
379 Ciascuna misura contiene unicamente note da suonare in un ritmo
380 costante, e gli spazi interposti dovrebbero riflettere questa situazione.
381 Purtroppo, però, l'occhio ci inganna un po': non solo esso rileva la distanza
382 tra le teste delle note, ma tiene conto anche di quella tra
383 gambi consecutivi. Di conseguenza, le note di una combinazione
384 gambo in su/@/gambo in giù dovrebbero essere più distanti tra loro e
385 quelle di una combinazione gambo in giù/@/gambo in su più vicine, il
386 tutto a seconda di come si combinano le posizioni verticali delle note.
387 Le due misure inferiori sono stampate con questa correzione; quelle
388 superiori, tuttavia, contengono ammassi di note
389 gambo in giù/@/gambo in su.  Un maestro incisore avrebbe aggiustato la
390 spaziatura come richiesto per compiacere l'occhio.
391
392 Gli algoritmi di spaziatura di LilyPond prendono in considerazione anche
393 le stanghette.  Perciò, l'ultimo gambo in su nell'esempio
394 correttamente spaziato è stato allontanato ulteriormente dalla
395 stanghetta finale per evitare troppe linee verticali vicine nella parte finale della
396 misura.  Un gambo in giù, invece, non avrebbe richiesto quest'accortezza.
397
398 @node Tagli addizionali
399 @unnumberedsubsec Tagli addizionali
400 @translationof Ledger lines
401
402 @cindex tagli addizionali
403 @cindex collisioni
404
405 I tagli addizionali presentano una sfida tipografica: rendono più
406 difficile inserire il corretto spazio tra simboli musicali vicini e
407 debbono essere abbastanza nitidi da permettere di identificare l'altezza
408 della nota a colpo d'occhio.  Nell'esempio qui sotto, vediamo come i tagli
409 addizionali dovrebbero essere più spessi di una normale linea del rigo e che un
410 incisore esperto li accorcerà per permettere di avvicinare le
411 alterazioni alla testa della nota.  Nell'incisione con LilyPond abbiamo
412 incluso anche questa funzionalità.
413
414 @multitable @columnfractions .25 .25 .25 .25
415 @item @tab
416
417 @iftex
418 @sourceimage{baer-ledger,3cm,,}
419 @end iftex
420 @ifnottex
421 @sourceimage{baer-ledger,,,png}
422 @end ifnottex
423
424 @tab
425
426 @iftex
427 @sourceimage{lily-ledger,3cm,,}
428 @end iftex
429 @ifnottex
430 @sourceimage{lily-ledger,,,png}
431 @end ifnottex
432
433 @end multitable
434
435
436 @node Dimensionamento ottico
437 @unnumberedsubsec Dimensionamento ottico
438 @translationof Optical sizing
439
440 Potrebbe essere necessario stampare la musica in una varietà di
441 formati diversi.  All'inizio, questo si poteva ottenere creando punzoni
442 in ciascuno dei corpi richiesti, il che significa che ogni
443 punzone era disegnato per dare il meglio di sé in quel particolare
444 corpo.  Con l'avvento dei font digitali, invece, una singola struttura
445 può essere rimpicciolita o ingrandita in scala a piacimento, il che è
446 molto comodo, ma nei corpi più piccoli i caratteri appariranno molto
447 ‘leggeri’.
448
449 In LilyPond, abbiamo creato font in una serie di pesi corrispondenti a
450 una gamma di corpi per la musica.  La prossima è un'incisione di
451 LilyPond in corpo 26:
452
453 @quotation
454 @iftex
455 @sourceimage{pdf/size26,,23mm,}
456 @end iftex
457 @ifnottex
458 @sourceimage{size26,,,png}
459 @end ifnottex
460 @end quotation
461
462 @noindent
463 e questa è la stessa incisione in corpo 11, poi ingrandita del 236% per
464 riportarla alle stesse dimensioni dell'esempio precedente:
465
466 @quotation
467 @iftex
468 @sourceimage{pdf/size11,,23mm,}
469 @end iftex
470 @ifnottex
471 @sourceimage{size11,,,png}
472 @end ifnottex
473 @end quotation
474
475 @noindent
476 Nei corpi piccoli, LilyPond usa linee proporzionalmente più grosse in
477 modo che la musica sia ancora ben leggibile.
478
479 Ciò permette anche che righi in corpi diversi coesistano pacificamente
480 se usati insieme sulla stessa pagina:
481
482 @c E. Grieg, Sonata per violino Op. 45
483 @lilypond[indent=1.5\cm]
484 global = {
485   \time 6/8
486   \key c \minor
487 }
488
489 \score {
490   <<
491     \new Staff \with {
492       \magnifyStaff #2/3
493     }
494     \relative {
495       \global
496       \set Staff.instrumentName = #"Violino"
497       c'8.(\f^> b16 c d) ees8.(^> d16 c b)
498       g8.(^> b16 c ees) g8-.^> r r
499       R2.
500     }
501     \new PianoStaff <<
502       \set PianoStaff.instrumentName = #"Piano"
503       \new Staff \relative {
504         \global
505         s2.
506         s4. s8 r8 r16 <c' f aes c>
507         <c f aes c>4.^> <c ees g>8 r r
508       }
509       \new Staff \relative {
510         \global
511         \clef "bass"
512         <<
513         {
514           \once \override DynamicText.X-offset = #-3
515           <ees g c>2.~->^\f
516           <ees g c>4.~ <ees g c>8
517         } \\ {
518           <c g c,>2.~
519           <c g c,>4.~ <c g c,>8
520         }
521         >>
522         r8 r16 <f, c' aes'>16
523         <f c' aes'>4.-> <c' g'>8 r r
524       }
525     >>
526   >>
527 }
528 @end lilypond
529
530
531 @node Perché lavorare così duramente?
532 @unnumberedsubsec Perché lavorare così duramente?
533 @translationof Why work so hard?
534
535 Di solito, i musicisti sono presi più dall'eseguire la musica
536 che dall'esaminarla così come appare sulla pagina, perciò i dettagli
537 tipografici troppo cavillosi rischiano di passare per accademia.  Ma non è
538 così.  Gli spartiti sono materiale da utilizzare praticamente: ogni cosa
539 viene fatta per aiutare il musicista a migliorare il proprio rendimento, e
540 tutto ciò che si rivela poco chiaro o poco piacevole da leggere diventa
541 un ostacolo.
542
543 La musica incisa nel modo tradizionale impiega simboli neri su un rigo
544 ‘pesante’ per creare un aspetto forte, ben bilanciato, chiaramente
545 distinguibile quando è molto distante da chi deve leggerla: se messa su
546 un leggio, per esempio.  Un'attenta distribuzione degli
547 spazi bianchi permette di disporre le note in modo molto serrato
548 senza però affollare i simboli sul rigo.  Il risultato riduce al minimo il
549 numero delle voltate, con grande vantaggio per l'esecutore.
550
551 Questa è una caratteristica tipica della tipografia.  L'aspetto della pagina
552 dovrebbe essere bello, e non di per sé, ma soprattutto perché aiuta il
553 lettore nel proprio compito.  Per la musica stampata ciò è doppiamente
554 importante, perché i musicisti reggono un carico di  attenzione
555 limitato: meno ne debbono impiegare per leggere la musica, più ne possono
556 concentrare nell'eseguirla. In altre parole: migliore è la tipografia,
557 migliori saranno le esecuzioni.
558
559 Questi esempi dimostrano che la tipografia musicale è un'arte raffinata e
560 complessa, la cui messa in pratica richiede notevoli competenze di solito
561 non possedute dai musicisti.  LilyPond costituisce il nostro sforzo per
562 importare l'eccellenza grafica della musica incisa a mano nell'era
563 informatica e renderla disponibile a qualunque musicista.  Abbiamo
564 sintonizzato i nostri algoritmi, i disegni dei font e le
565 impostazioni del programma per produrre stampe corrispondenti alla
566 qualità delle vecchie edizioni che amiamo osservare e suonare.
567
568 @node Incisione automatizzata
569 @section Incisione automatizzata
570 @translationof Automated engraving
571
572 @cindex incisione, automatizzata
573 @cindex incisione automatizzata
574
575 Qui descriviamo ciò che serve per creare un software in grado di
576 simulare l'aspetto degli spartiti incisi: un metodo di descrizione della
577 buona formattazione al computer e numerosi confronti dettagliati con
578 incisioni effettivamente esistenti.
579
580 @menu
581 * Concorsi di bellezza::
582 * Miglioramento per analisi comparativa::
583 * Mettere le cose a posto::
584 @end menu
585
586 @node Concorsi di bellezza
587 @unnumberedsubsec Concorsi di bellezza
588 @translationof Beauty contests
589
590 In che modo noi decidiamo veramente sulla formattazione?  In
591 altre parole: quale delle tre configurazioni seguenti dovremmo
592 scegliere per avere la legatura migliore?
593
594 @lilypond
595 \relative {
596   \clef bass
597   \once \override Slur.positions = #'(1.5 . 1)
598   e8[( f] g[ a b d,)] r4
599   \once \override Slur.positions = #'(2 . 3)
600   e8[( f] g[ a b d,)] r4
601   e8[( f] g[ a b d,)] r4
602 }
603 @end lilypond
604
605 Esistono pochi libri sull'arte di incidere la musica, i quali, purtroppo,
606 si limitano a fornire alcune semplici regole generali e qualche esempio.
607 Da esse si può imparare qualcosa, ma sempre troppo poco per mettere a
608 punto un algoritmo implementabile senza troppa fatica in un computer:
609 seguendole, le eccezioni da codificare a mano sarebbero ancora troppe.
610 Analizzare tutti questi casi è un lavoro enorme, e spesso nemmeno tutti
611 vengono contemplati:
612
613 @quotation
614 @iftex
615 @sourceimage{ross-beam-scan,7cm,,}
616 @end iftex
617 @ifnottex
618 @sourceimage{ross-beam-scan,,,.jpg}
619 @end ifnottex
620 @end quotation
621
622 (Fonte: Ted Ross, @emph{The Art of Music Engraving})
623
624 Anziché cercare di scrivere regole di formattazione dettagliate
625 per ogni situazione possibile, dobbiamo solo descrivere gli
626 obiettivi in modo sufficientemente completo da permettere a LilyPond di
627 giudicare da solo l'attrattiva delle diverse possibilità.  Poi, per ogni
628 configurazione calcoliamo un punteggio di  bruttezza e scegliamo quella
629 meno brutta.
630
631 Per esempio, qui sotto mostriamo tre possibilità per una legatura,
632 a ciascuna delle quali LilyPond ha assegnato un punteggio in @q{punti di
633 bruttezza}.  Il primo esempio ottiene 15,39 punti perché la legatura
634 attraversa una delle teste delle note:
635
636 @lilypond
637 \relative {
638   \clef bass
639   \once \override Slur.positions = #'(1.5 . 1)
640   e8[(_"15.39" f] g[ a b d,)] r4
641 }
642 @end lilypond
643
644 Il secondo è più bello, ma la legatura non comincia o finisce sulle
645 teste delle note. Ottiene 1,71 punti a sinistra e 9,37 punti a destra,
646 più altri 2 punti a causa del fatto che la legatura ascende mentre la
647 melodia discende, per un totale di 13,08 punti di bruttezza:
648
649 @lilypond
650 \relative {
651   \clef bass
652   \once \override Slur.positions = #'(2 . 3)
653   e8[(_"13.08" f] g[ a b d,)] r4
654 }
655 @end lilypond
656
657 La legatura finale ottiene 10,04 punti per il vuoto a destra e 2 punti
658 per la pendenza verso l'alto, ma è la più attraente delle tre
659 configurazioni, e così LilyPond sceglie questa:
660
661 @lilypond
662 \relative {
663   \clef bass
664   e8[(_"12.04" f] g[ a b d,)] r4
665 }
666 @end lilypond
667
668 Questa tecnica è del tutto generale e viene adoperata per prendere
669 decisioni ottimali in merito alla configurazione dei gambi delle note,
670 delle legature di valore e dei punti negli accordi, nelle interruzioni
671 di rigo e di pagina.  Si può giudicare la bontà di queste decisioni
672 confrontandole con incisioni effettivamente esistenti.
673
674 @node Miglioramento per analisi comparativa
675 @unnumberedsubsec Miglioramento per analisi comparativa
676 @translationof Improvement by benchmarking
677
678 Gli spartiti generati da LilyPond sono migliorati gradualmente nel tempo e
679 continuano a migliorare grazie al confronto con quelli incisi a mano.
680
681 Per esempio, qui sotto si vede una riga di un brano di riferimento preso
682 da un'edizione incisa (Bärenreiter BA320):
683
684 @iftex
685 @sourceimage{baer-sarabande-hires,16cm,,}
686 @end iftex
687 @ifnottex
688 @sourceimage{baer-sarabande,,,png}
689 @end ifnottex
690
691 @noindent
692 e qui la stessa citazione realizzata con una vecchissima versione di LilyPond
693 (versione 1.4, maggio 2001):
694
695 @iftex
696 @sourceimage{pdf/lily14-sarabande,16cm,,}
697 @end iftex
698 @ifnottex
699 @sourceimage{lily14-sarabande,,,png}
700 @end ifnottex
701
702 @noindent La musica prodotta da LilyPond 1.4 è senza dubbio leggibile, ma un
703 confronto serrato con lo spartito precedente ha mostrato numerosi
704 errori nei dettagli di formattazione:
705
706 @iftex
707 @sourceimage{lily14-sarabande-annotated-hires,16cm,,}
708 @end iftex
709 @ifnottex
710 @sourceimage{lily14-sarabande-annotated,,,png}
711 @end ifnottex
712
713 @itemize @bullet
714 @item c'è troppo spazio prima dell'indicazione di tempo
715 @item i gambi delle note con travature sono troppo lunghi
716 @item la seconda e la quarta misura sono troppo strette
717 @item la legatura ha un aspetto imbarazzante
718 @item le indicazioni di trillo sono troppo grandi
719 @item i gambi sono troppo sottili
720 @end itemize
721
722 @noindent
723 (Mancavano anche due teste di note, alcune indicazioni editoriali e
724 c'era un'altezza errata!)
725
726 Aggiustando le regole di formattazione e il disegno del font, lo
727 spartito è notevolmente migliorato.  Confrontate lo stesso spartito di
728 riferimento e quello prodotto con la versione corrente di LilyPond
729 (@version{}):
730
731 @iftex
732 @sourceimage{baer-sarabande-hires,16cm,,}
733 @end iftex
734 @ifnottex
735 @sourceimage{baer-sarabande,,,png}
736 @end ifnottex
737
738 @lilypond[staffsize=17.5,line-width=15.9\cm]
739 \relative c {
740   \clef "bass"
741   \key d \minor
742   \time 3/4
743   \mergeDifferentlyDottedOn
744   <<
745     { \slurDashed d8.-\flageolet( e16) e4.-\trill( d16 e) }
746      \\
747     { d4_2 a2 }
748   >>
749   \slurDashed
750   <f' a, d,>4. e8( d c)
751   \slurSolid
752   bes8 g' f e16( f g_1 a_2 bes_3 d,_2)
753   \slurDashed
754   cis4.-\trill b8_3( a g)
755   <<
756     { \slurDashed d'8.( e16) e4.-\trill( d16 e) }
757      \\
758     { <f, a>4 a2 }
759   >>
760 }
761 @end lilypond
762
763 @noindent
764 Non è certo un clone dell'edizione di riferimento, ma è comunque molto
765 più vicino a una qualità editoriale rispetto alla versione precedente.
766
767 @node Mettere le cose a posto
768 @unnumberedsubsec Mettere le cose a posto
769 @translationof Getting things right
770
771 Siamo in grado di misurare l'abilità di LilyPond nel prendere decisioni
772 sull'incisione della musica anche confrontando il suo prodotto con
773 quello di un software commerciale.  In questo caso abbiamo
774 scelto Finale 2008, uno dei programmi di notazione musicale
775 a pagamento più diffusi, in particolare nel Nord America.  Sibelius è il
776 suo più acerrimo rivale e sembra andare particolarmente bene nel mercato
777 europeo.
778
779 Per il nostro confronto, abbiamo selezionato la Fuga in sol minore dal
780 Libro I del @emph{Clavicembalo ben temperato} BWV 861 di Bach, il cui
781 soggetto d'apertura è
782
783 @lilypond
784 \relative {
785   \key g \minor
786   \clef "treble_8"
787   r8 d' ees g, fis4 g
788   r8 a16 bes c8 bes16 a bes8
789 }
790 @end lilypond
791
792 @noindent
793 Abbiamo inciso le ultime sette misure del brano (n. 28--34) con Finale e
794 con LilyPond.  In questo punto della composizione, il soggetto ritorna
795 in uno stretto a tre parti e conduce alla sezione finale.  Abbiamo
796 resistito alla tentazione di apportare qualunque modifica al prodotto
797 predefinito di Finale, perché stiamo cercando di mostrare che cosa
798 ciascun software riesce a fare da solo, senza interventi umani.  Le
799 uniche modifiche di rilievo introdotte sono state aggiustare le
800 dimensioni della pagina per adattarla a quelle di questo saggio e
801 forzare la musica in due soli sistemi per rendere più agevole il
802 confronto. Per impostazione predefinita, invece, Finale avrebbe inciso
803 due sistemi di tre misure ciascuno e un terzo sistema contenente la sola
804 misura finale larga tutta la riga.
805
806 Molte delle differenze tra le due versioni si concentrano nelle misure
807 28--29, come mostriamo qui di seguito (Finale sta sopra):
808
809 @iftex
810 @sourceimage{pdf/bwv861mm28-29,14cm,,}
811 @end iftex
812 @ifnottex
813 @sourceimage{bwv861mm28-29,,,png}
814 @end ifnottex
815
816 @lilypond[staffsize=19.5,line-width=14\cm]
817 global = { \key g \minor }
818
819 partI = \relative {
820   \voiceOne
821   fis'8 d' ees g, fis4 g
822   r8 a16 bes c8 bes16 a d8 r r4
823 }
824
825 partII = \relative {
826   \voiceTwo
827   d'4 r4 r8 d'16 c bes8 c16 d
828   ees8 d c ees a, r r4
829 }
830
831 partIII = \relative {
832   \voiceOne
833   r2 r8 d' ees g, fis4 g r8 a16 bes c8 bes16 a
834 }
835
836 partIV = \relative {
837   \voiceTwo
838   d4 r r2
839   r8 d ees g, fis4 a
840 }
841
842 \score {
843   <<
844     % \set Score.barNumberVisibility = #all-bar-numbers-visible
845     % required in 2.13
846     \set Score.currentBarNumber = #28
847     \bar ""
848     \new PianoStaff <<
849       \new Staff = "RH" <<
850         \global
851         \new Voice = "voiceI" { \partI }
852         \new Voice = "voiceII" { \partII }
853       >>
854       \new Staff = "LH"
855       <<
856         \clef "bass"
857         \global
858         \new Voice = "voiceIII" { \partIII }
859         \new Voice = "voiceIV" { \partIV }
860       >>
861     >>
862   >>
863   \layout {
864     \context {
865       \Staff
866       \remove "Time_signature_engraver"
867     }
868     \context {
869       \PianoStaff
870       \override StaffGrouper.staff-staff-spacing.padding = #1
871     }
872   }
873 }
874 @end lilypond
875
876 Tra le carenze nell'output non modificato di Finale segnaliamo quanto segue.
877 @itemize @bullet
878 @item La maggior parte delle travature è troppo lontana dal rigo.  Una
879 travatura che punta verso il centro del rigo dovrebbe essere lunga circa
880 un'ottava, ma gli incisori la abbreviano quando nella musica a più voci
881 punta in senso contrario.  Il sistema di travature di
882 Finale può essere facilmente migliorato con il suo plug-in Patterson
883 Beam, ma qui abbiamo scelto di omettere questa funzionalità.
884 @item Finale non regola le posizioni delle teste delle note quando queste
885 vengono a trovarsi troppo vicine, il che rende la musica estremamente
886 difficile da leggere se voce superiore e inferiore invertono
887 temporaneamente la posizione:
888
889 @lilypond
890 collide = \once \override NoteColumn.force-hshift = #0
891
892 \score {
893   <<
894     \new Voice = "sample" \relative c''{
895       \key g \minor
896       <<
897         { \voiceOne g4 \collide g4 }
898         \new Voice { \voiceTwo bes \collide bes }
899       >>
900     }
901     \new Lyrics \lyricsto "sample" { "good " " bad" }
902   >>
903 }
904 @end lilypond
905
906 @item Finale ha messo tutte le pause alla stessa altezza sul rigo.
907 L'utente è libero di regolarle secondo la propria necessità, ma in
908 nessun modo il programma tenta di prendere in considerazione il contenuto
909 dell'altra voce.  Il caso ha voluto che in quest'esempio non si verificassero
910 vere e proprie collisioni tra note e pause, ma la cosa ha a che fare
911 più con la posizione delle note che con quella delle pause.  In altre
912 parole, Bach merita più considerazione per evitare una collisione
913 completa di quanta non gliene riservi Finale.
914 @end itemize
915
916 Con il confronto appena operato non intendiamo affatto suggerire che
917 Finale non possa essere adoperato per produrre spartiti di qualità
918 editoriale.  Tutto il contrario: nelle mani di un utente esperto può farlo e
919 in effetti lo fa, ma richiede abilità e tempo.  Una delle differenze
920 fondamentali tra LilyPond e i programmi di notazione musicale
921 commerciali è che il primo spera di ridurre gli interventi umani al
922 minimo, mentre gli altri puntano a fornire un'interfaccia attraente in
923 cui operare questo tipo di modifiche.
924
925 Particolarmente eclatante è l'omissione da parte di Finale di un un bemolle
926 a misura 33:
927
928 @quotation
929 @iftex
930 @sourceimage{pdf/bwv861mm33-34-annotate,7.93cm,,}
931 @end iftex
932 @ifnottex
933 @sourceimage{bwv861mm33-34-annotate,,,png}
934 @end ifnottex
935 @end quotation
936
937 @noindent
938 Il bemolle è richiesto per annullare il bequadro presente poco prima
939 nella stessa misura, ma Finale l'ha tralasciato perché appartenente a
940 un'altra voce. Così, oltre ad attivare il plug-in per le travature e a
941 controllare la spaziatura delle teste delle note e delle pause, l'utente
942 deve controllare anche gli accidenti nelle voci che si incrociano per
943 scongiurare che errori di questo tipo facciano interrompere una prova.
944
945 Se vi interessa esaminare questi esempi più nel dettaglio, alla fine del
946 saggio potete trovare l'estratto completo di sette misure insieme ad
947 altre quattro incisioni pubblicate.  Un attento esame dei
948 frammenti rivela che tra le incisioni manuali esiste una certo
949 intervallo di variazione tollerabile, ma anche che LilyPond regge il
950 confronto abbastanza bene.  L'output di LilyPond non è ancora privo
951 di difetti, per esempio appare un po' troppo aggressivo
952 nell'accorciare i gambi, il che permette ancora un certo margine di
953 manovra per sviluppi e messe a punto successive.
954
955 Naturalmente, la tipografia si basa sul giudizio di una forma da parte
956 dell'uomo, il che rende le persone ancora insostituibili.  Tuttavia si
957 può automatizzare gran parte del lavoro noioso, e se LilyPond
958 riesce a risolvere correttamente la maggior parte delle situazioni
959 frequenti, il miglioramento rispetto al software in circolazione sarà
960 enorme.  Via via che gli anni passano, il programma può essere
961 perfezionato per eseguire automaticamente un numero sempre più elevato
962 di operazioni, così da rendere le sovrascritture manuali sempre meno
963 indispensabili.  Dove queste si rivelassero indispensabili, la struttura di
964 LilyPond è stata progettata avendo in mente la flessibilità.
965
966 @node Costruzione del software
967 @section Costruzione del software
968 @translationof Building software
969
970 Questa sezione descrive alcune decisioni di programmazione prese
971 durante la progettazione di LilyPond.
972
973 @menu
974 * Rappresentazione della musica::
975 * Quali simboli incidere?::
976 * Architettura flessibile::
977 @end menu
978
979
980 @node Rappresentazione della musica
981 @unnumberedsubsec Rappresentazione della musica
982 @translationof Music representation
983
984 @cindex sintassi
985 @cindex strutture ricorsive
986
987 Idealmente, il formato di input per qualsiasi sistema di formattazione ad
988 alto livello consiste in una descrizione astratta del contenuto da formattare,
989 che nel nostro caso è la musica stessa.  La questione solleva un problema
990 formidabile: in che modo possiamo definire che cos'è davvero la musica?
991 Anziché tentare di trovare una risposta, abbiamo rovesciato la domanda.
992 Scriviamo un programma in grado di produrre spartiti e rendiamone il
993 formato il più snello possibile: quando non potremo ridurlo
994 ulteriormente, ci ritroveremo per definizione
995 con il contenuto in sé.  Il nostro programma, dunque, serve a definire
996 la forma di un contenuto musicale.
997
998 Anche la sintassi è un aspetto dell'interfaccia utente di LilyPond, quindi è semplice
999 da scrivere:
1000
1001 @example
1002 @{
1003   c'4 d'8
1004 @}
1005 @end example
1006
1007 @noindent
1008 crea un do centrale da un quarto (C1) e un re da un'ottavo
1009 immediatamente sopra il do centrale (D1).
1010
1011 @lilypond[quote]
1012 {
1013   c'4 d'8
1014 }
1015 @end lilypond
1016
1017 A scala microscopica, una sintassi simile si adopera facilmente.  A una
1018 scala più larga, però, anche la sintassi ha bisogno di una struttura.  In
1019 quale altro modo, altrimenti, sarebbe possibile scrivere brani complessi come
1020 sinfonie e opere liriche?  La struttura è formata dal concetto di
1021 espressioni musicali: combinando minuscoli frammenti di musica in
1022 frammenti più consistenti, possiamo esprimere musica più complessa.  Per
1023 esempio
1024
1025 @lilypond[quote,verbatim,fragment]
1026 f'4
1027 @end lilypond
1028
1029 @noindent
1030 Possiamo costruire note simultanee racchiudendole tra
1031 @code{<<} e @code{>>}:
1032
1033 @example
1034 <<c4 d4 e4>>
1035 @end example
1036
1037 @lilypond[quote,fragment,relative=1]
1038 \new Voice { <<c4 d4 e>> }
1039 @end lilypond
1040
1041 @noindent
1042 Possiamo mettere in sequenza queste due espressioni racchiudendole tra
1043 parentesi graffe @code{@{@tie{}@dots{}@tie{}@}}:
1044
1045 @example
1046 @{ f4 <<c4 d4 e4>> @}
1047 @end example
1048
1049 @lilypond[quote,relative=1,fragment]
1050 { f4 <<c d e4>> }
1051 @end lilypond
1052
1053 @noindent
1054 Anche quella qui sopra è un'espressione, perciò può essere ulteriormente
1055 combinata con un'altra espressione simultanea (una minima, in questo
1056 caso):
1057 @code{<<}, @code{\\}, e @code{>>}:
1058
1059 @example
1060 << g2 \\ @{ f4 <<c4 d4 e4>> @} >>
1061 @end example
1062
1063 @lilypond[quote,fragment,relative=2]
1064 \new Voice { << g2 \\ { f4 <<c d e>> } >> }
1065 @end lilypond
1066
1067 Strutture ricorsive come quelle appena esaminate possono essere
1068 specificate in modo pulito e formale in una grammatica indipendente dal
1069 contesto, la quale genera anche il codice di analisi.  In altre parole, la
1070 sintassi di LilyPond è definita in modo chiaro e privo di ambiguità
1071
1072 Interfacce utente e sintassi sono gli elementi immediatamente visibili
1073 agli utenti e quelli con cui essi hanno più a che fare.  Un po' sono una
1074 questione di gusto, un po' l'argomento di molte discussioni: non troppo
1075 produttive, però, nonostante qualche pregio ce l'abbiano.  Nel quadro più
1076 ampio di LilyPond, la sintassi di input non è molto importante:
1077 inventare una sintassi pulita è facile; molto più difficile, invece, è
1078 scrivere un codice di formattazione decente.  Contiamo le righe di
1079 codice destinate ai due componenti e troveremo la conferma di quanto abbiamo
1080 appena affermato: analisi e rappresentazione occupano meno del 10% del
1081 codice sorgente.
1082
1083 Nel progettare le strutture usate in LilyPond, abbiamo preso decisioni
1084 diverse da quelle che appaiono in altri programmi.  Considerate la
1085 natura gerarchica della notazione musicale:
1086
1087 @lilypond[quote,fragment]
1088 <<
1089   \new Staff \relative {
1090     \key g \major
1091     \time 3/4
1092     d''4 g,8 a b c d4 g, g
1093   }
1094   \new Staff \relative {
1095     \clef "bass"
1096     \key g \major
1097     <g b d>2 a4 b2.
1098   }
1099 >>
1100 @end lilypond
1101
1102 In questo caso, abbiamo altezze raggruppate in accordi che appartengono
1103 alle misure, le quali appartengono ai righi.  La cosa assomiglia a
1104 una struttura ordinata di scatole annidate:
1105
1106 @quotation
1107 @iftex
1108 @sourceimage{pdf/nestedboxes,,4cm,}
1109 @end iftex
1110 @ifnottex
1111 @sourceimage{nestedboxes,,,png}
1112 @end ifnottex
1113 @end quotation
1114
1115 Purtroppo, la struttura è ordinata perché si basa su alcuni presupposti
1116 troppo restrittivi, il che diventa evidente considerando un esempio
1117 musicale più complesso:
1118
1119 @lilypond[quote]
1120 \layout {
1121   \context {
1122     \Score
1123     \remove "Timing_translator"
1124     \remove "Default_bar_line_engraver"
1125   }
1126   \context {
1127     \Staff
1128     \consists "Timing_translator"
1129     \consists "Default_bar_line_engraver"
1130   }
1131 }
1132
1133 \new PianoStaff <<
1134   \new Staff = "RH" <<
1135     \new Voice = "I" \relative {
1136       \time 3/4
1137       \voiceOne
1138       \tuplet 7/6 { g''8 g g g g g g }
1139       \oneVoice
1140       r4 <b,, fis' g bes> r4\fermata
1141     }
1142     \new Voice = "II" \relative {
1143       \voiceTwo
1144       c'4
1145       \tuplet 5/4 {
1146         <c ees>8 f g
1147         \change Staff = "LH" \oneVoice
1148         \stemUp g,( c}
1149       r4
1150       \override Stem.cross-staff = ##t
1151       \override Stem.length = #12
1152       <fis, b>) r\fermata
1153     }
1154   >>
1155   \new Staff = "LH" <<
1156     \new Voice = "III" \relative {
1157       \time 2/4
1158       \clef "bass"
1159       g4 \stopStaff s
1160       \startStaff s2*2
1161     }
1162   >>
1163 >>
1164 @end lilypond
1165
1166 In quest'esempio, i righi si interrompono arbitrariamente, le voci
1167 saltano dall'uno all'altro e su ciascun pentagramma c'è un'indicazione
1168 di tempo diversa.  Molti programmi avrebbero del filo da torcere per
1169 riprodurlo, proprio perché costruiti con una struttura a scatole
1170 annidate.  Con LilyPond, d'altronde, abbiamo cercato di mantenere
1171 formato di input e struttura il più possibile flessibili.
1172
1173 @node Quali simboli incidere?
1174 @unnumberedsubsec Quali simboli incidere?
1175 @translationof What symbols to engrave?
1176
1177 @cindex incisione
1178 @cindex tipografia
1179 @cindex incisore
1180 @cindex plug-in
1181
1182 Il processo di formattazione decide dove mettere i simboli, tuttavia
1183 ciò può essere fatto solo dopo aver deciso @emph{quali} simboli vanno
1184 stampati: in altre parole, dopo aver deciso quale notazione adoperare.
1185
1186 La comune notazione musicale è un sistema di registrazione della musica
1187 evolutosi nel corso degli ultimi mille anni.  La forma normalmente
1188 adoperata oggi risale agli inizi del Rinascimento, e anche se nei
1189 princìpi di base è rimasta praticamente immutata (cioè testa delle note su
1190 un pentagramma di cinque linee), continua a modificarsi nei dettagli per
1191 permettere di esprimere le innovazioni introdotte dalla notazione
1192 contemporanea. Dunque, la comune notazione musicale comprende circa
1193 cinque secoli di musica, con applicazioni che spaziano dalle melodie
1194 monofoniche ai mostruosi contrappunti di una grande orchestra.
1195
1196 In che modo possiamo noi imbrigliare un simile mostro a sette teste e
1197 costringerlo entro i limiti di un programma per computer?  La nostra
1198 soluzione è stata quella di spezzare il problema della notazione (al
1199 contrario dell'incisione, che riguarda la tipografia) in ‘bocconi’
1200 digeribili e programmabili: ciascun tipo di simbolo è gestito da un modulo
1201 a sé, un cosiddetto plug-in, completamente modulare e
1202 indipendente, così da poter essere sviluppato e migliorato
1203 separatamente.  Tali plug-in sono chiamati @emph{incisori} per analogia con
1204 l'artigiano che traduce le idee musicali in simboli grafici.
1205
1206 Nell'esempio seguente, cominciamo con il plug-in per le teste delle
1207 note, il @code{Note_heads_engraver}.
1208
1209 @lilypond[quote,ragged-right]
1210 \include "engraver-example.ily"
1211
1212 \score {
1213   \topVoice
1214   \layout {
1215     \context {
1216       \Voice
1217       \remove "Stem_engraver"
1218       \remove "Phrasing_slur_engraver"
1219       \remove "Slur_engraver"
1220       \remove "Script_engraver"
1221       \remove "New_fingering_engraver"
1222       \remove "Beam_engraver"
1223       \remove "Auto_beam_engraver"
1224     }
1225     \context {
1226       \Staff
1227       \remove "Accidental_engraver"
1228       \remove "Key_engraver"
1229       \remove "Clef_engraver"
1230       \remove "Bar_engraver"
1231       \remove "Time_signature_engraver"
1232       \remove "Staff_symbol_engraver"
1233       \consists "Pitch_squash_engraver"
1234     }
1235   }
1236 }
1237 @end lilypond
1238
1239 @noindent
1240 Poi il @code{Staff_symbol_engraver} aggiunge il rigo,
1241
1242 @lilypond[quote,ragged-right]
1243 \include "engraver-example.ily"
1244
1245 \score {
1246   \topVoice
1247   \layout {
1248     \context {
1249       \Voice
1250       \remove "Stem_engraver"
1251       \remove "Phrasing_slur_engraver"
1252       \remove "Slur_engraver"
1253       \remove "Script_engraver"
1254       \remove "New_fingering_engraver"
1255       \remove "Beam_engraver"
1256       \remove "Auto_beam_engraver"
1257     }
1258     \context {
1259       \Staff
1260       \remove "Accidental_engraver"
1261       \remove "Key_engraver"
1262       \remove "Clef_engraver"
1263       \remove "Bar_engraver"
1264       \consists "Pitch_squash_engraver"
1265       \remove "Time_signature_engraver"
1266     }
1267   }
1268 }
1269 @end lilypond
1270
1271 @noindent
1272 il @code{Clef_engraver} definisce un punto di riferimento per il rigo,
1273
1274 @lilypond[quote,ragged-right]
1275 \include "engraver-example.ily"
1276
1277 \score {
1278   \topVoice
1279   \layout {
1280     \context {
1281       \Voice
1282       \remove "Stem_engraver"
1283       \remove "Phrasing_slur_engraver"
1284       \remove "Slur_engraver"
1285       \remove "Script_engraver"
1286       \remove "New_fingering_engraver"
1287       \remove "Beam_engraver"
1288       \remove "Auto_beam_engraver"
1289     }
1290     \context {
1291       \Staff
1292       \remove "Accidental_engraver"
1293       \remove "Key_engraver"
1294       \remove "Bar_engraver"
1295       \remove "Time_signature_engraver"
1296     }
1297   }
1298 }
1299 @end lilypond
1300
1301 @noindent
1302 e lo @code{Stem_engraver} aggiunge i gambi.
1303
1304 @lilypond[quote,ragged-right]
1305 \include "engraver-example.ily"
1306
1307 \score {
1308   \topVoice
1309   \layout {
1310     \context {
1311       \Voice
1312       \remove "Phrasing_slur_engraver"
1313       \remove "Slur_engraver"
1314       \remove "Script_engraver"
1315       \remove "New_fingering_engraver"
1316       \remove "Beam_engraver"
1317       \remove "Auto_beam_engraver"
1318     }
1319     \context {
1320       \Staff
1321       \remove "Accidental_engraver"
1322       \remove "Key_engraver"
1323       \remove "Bar_engraver"
1324       \remove "Time_signature_engraver"
1325     }
1326   }
1327 }
1328 @end lilypond
1329
1330 @noindent
1331 Ogni volta che il programma incontra una testa di nota (o più d'una, se
1332 si tratta di un accordo) leggendo il file sorgente, avvisa lo
1333 @code{Stem_engraver}, il quale crea un gambo e glielo
1334 unisce. Aggiungendo gli incisori per travature, legature, accenti,
1335 accidenti, stanghette di battuta, indicazioni di tempo e armature di
1336 chiave, otteniamo la notazione completa.
1337
1338 @lilypond[quote,ragged-right]
1339 \include "engraver-example.ily"
1340 \score { \topVoice }
1341 @end lilypond
1342
1343 @cindex polifonia
1344 @cindex incisione di voci multiple
1345 @cindex contesti
1346
1347 Questo sistema funziona bene per la musica monofonica, ma che succede
1348 con la polifonia?  Nella notazione polifonica, voci diverse possono
1349 condividere lo stesso rigo:
1350
1351 @lilypond[quote,ragged-right]
1352 \include "engraver-example.ily"
1353 \new Staff << \topVoice \\ \botVoice >>
1354 @end lilypond
1355
1356 Nell'esempio qui sopra, armatura di chiave e rigo sono condivisi, ma gambi,
1357 legature, travature, eccetera, appartengono in modo esclusivo a ciascuna
1358 voce, perciò gli incisori devono essere raggruppati.  Quelli per teste
1359 delle note, gambi, legature, eccetera, vanno in un gruppo chiamato
1360 @q{contesto Voice}, mentre quelli per chiave, accidenti, misure,
1361 eccetera, in un gruppo chiamato @q{contesto Staff}.  Nel caso della
1362 polifonia, un singolo contesto Staff contiene più di un contesto Voice.
1363 Analogamente, contesti Staff multipli possono essere messi in un singolo
1364 contesto Score.  Il contesto Score rappresenta il contesto notazionale di
1365 livello massimo.
1366
1367 @lilypond[quote,ragged-right]
1368 \include "engraver-example.ily"
1369 \score {
1370    <<
1371       \new Staff << \topVoice \\ \botVoice >>
1372       \new Staff << \pah \\ \hoom >>
1373    >>
1374 }
1375 @end lilypond
1376
1377 @seealso
1378 Internals Reference:
1379 @rinternalsnamed{Contexts, Contesti}.
1380
1381 @node Architettura flessibile
1382 @unnumberedsubsec Architettura flessibile
1383 @translationof Flexible architecture
1384
1385 Quando abbiamo cominciato, abbiamo scritto LilyPond
1386 interamente nel linguaggio di programmazione C++, scolpendo nella pietra
1387 le sue funzionalità.  Per una serie di ragioni, però, la cosa si è
1388 rivelata insoddisfacente.
1389
1390 @itemize
1391
1392 @item Quando LilyPond commette degli errori, gli utenti devono
1393 sovrascrivere le decisioni di formattazione, il che significa, in altre
1394 parole, che devono poter accedere al motore di formattazione.  Quindi, regole
1395 e impostazioni non possono essere stabilite da noi durante la
1396 composizione, ma devono essere accessibili agli utenti durante
1397 l'esecuzione del programma.
1398
1399 @item La bontà di un'incisione viene giudicata dagli occhi, e in ultima
1400 analisi è questione di gusto.  Per quanto esperti noi siamo, gli utenti
1401 possono essere in disaccordo con le nostre decisioni personali, perciò devono
1402 poter accedere anche alle definizioni dello stile tipografico.
1403
1404 @item Infine, gli algoritmi di formattazione vengono rifiniti
1405 incessantemente da noi, il che ci richiede di dover contare su un approccio
1406 alle regole flessibile, e il modo con cui C++ impone di raggrupparle
1407 non può essere applicato facilmente alla formattazione della notazione
1408 musicale.
1409
1410 @end itemize
1411
1412 @cindex linguaggio di programmazione Scheme
1413
1414 Abbiamo affrontato questi problemi integrando in LilyPond un interprete del
1415 linguaggio di programmazione Scheme e riscrivendoci parti del programma.
1416 Ora l'architettura di formattazione è costruita intorno
1417 alla nozione di oggetti grafici, descritti dalle variabili e dalle
1418 funzioni di Scheme, e comprende regole di formattazione, stile
1419 tipografico e decisioni di formattazione individuali.  L'utente può
1420 accedere direttamente alla maggior parte di questi controlli.
1421
1422 Le variabili di Scheme controllano le decisioni in merito all'aspetto della
1423 pagina.  Per esempio, molti oggetti grafici possidono una variabile di
1424 direzione che codifica la scelta tra su e giù (o tra destra e sinistra).
1425 Qui sotto vedete due accordi con accenti e arpeggi.  Nel primo, tutti gli
1426 oggetti grafici hanno direzione giù (o sinistra), nel secondo, hanno
1427 direzione su (destra).
1428
1429 @lilypond[quote,ragged-right]
1430 \score {
1431   \relative {
1432     \stemDown <e' g b>4_>-\arpeggio
1433     \override Arpeggio.direction = #RIGHT
1434     \stemUp <e g b>4^>-\arpeggio
1435   }
1436   \layout {
1437     \context {
1438       \Score
1439       \override SpacingSpanner.spacing-increment = #3
1440       \hide TimeSignature
1441     }
1442   }
1443 }
1444 @end lilypond
1445
1446 @cindex formattare uno spartito
1447 @cindex formattazione di uno spartito
1448 @cindex regole di formattazione
1449
1450 @noindent
1451 Il processo di formattazione di uno spartito consiste nel leggere e
1452 scrivere le variabili degli oggetti grafici, alcune delle quali hanno un
1453 valore predefinito.  Per esempio, lo spessore di molte linee -- una
1454 caratteristica dello stile tipografico -- è una di queste.  Siete liberi
1455 di modificare questo valore, donando al vostro spartito un'impressione
1456 tipografica diversa.
1457
1458 @lilypond[quote,ragged-right]
1459 fragment = {
1460    \clef bass f8 as8
1461    c'4-~ c'16 as g f e16 g bes c' des'4
1462 }
1463 <<
1464    \new Staff \fragment
1465    \new Staff \with {
1466       \override Beam.beam-thickness = #0.3
1467       \override Stem.thickness = #0.5
1468       \override Bar.thickness = #3.6
1469       \override Tie.thickness = #2.2
1470       \override StaffSymbol.thickness = #3.0
1471       \override Tie.extra-offset = #'(0 .  0.3)
1472       }
1473       \fragment
1474 >>
1475 @end lilypond
1476
1477 Anche le regole di formattazione sono variabili preimpostate: ogni
1478 oggetto possiede variabili contenenti procedure.  Sono queste ultime a
1479 eseguire la formattazione vera e propria, e sostituendone di diverse,
1480 possiamo modificare l'aspetto degli oggetti.  Nell'esempio seguente, la
1481 regola che governa quali oggetti sono adoperati per produrre il
1482 simbolo della testa di nota è cambiata nel corso del frammento.
1483
1484 @lilypond[quote,ragged-right]
1485 #(set-global-staff-size 30)
1486
1487 #(define (mc-squared grob orig current)
1488   (let* ((interfaces (ly:grob-interfaces grob))
1489          (pos (ly:grob-property grob 'staff-position)))
1490     (if (memq 'note-head-interface interfaces)
1491         (begin
1492           (ly:grob-set-property! grob 'stencil
1493             (grob-interpret-markup grob
1494               (make-lower-markup 0.5
1495                 (case pos
1496                   ((-5) "m")
1497                   ((-3) "c ")
1498                   ((-2) (make-smaller-markup (make-bold-markup "2")))
1499                   (else "bla")))))))))
1500
1501 \new Voice \relative {
1502   \stemUp
1503   \set autoBeaming = ##f
1504   \time 2/4
1505   <d' f g>4
1506   \once \override NoteHead.stencil = #note-head::brew-ez-stencil
1507   \once \override NoteHead.font-size = #-7
1508   \once \override NoteHead.font-family = #'sans
1509   \once \override NoteHead.font-series = #'bold
1510   <d f g>4
1511   \once \override NoteHead.style = #'cross
1512   <d f g>4
1513   \applyOutput Voice #mc-squared
1514   <d f g>4
1515   <<
1516     { d8[ es-( fis^^ g] fis2-) }
1517     \repeat unfold 5 { \applyOutput Voice #mc-squared s8 }
1518   >>
1519 }
1520 @end lilypond
1521
1522 @node Mettere LilyPond al lavoro
1523 @section Mettere LilyPond al lavoro
1524 @translationof Putting LilyPond to work
1525
1526 @cindex esempi semplici
1527 @cindex esempi, semplice
1528
1529 Abbiamo scritto LilyPond per sperimentare come sia possibile condensare
1530 l'arte dell'incisione musicale in un programma per computer.  Grazie a
1531 tutto questo duro lavoro, ora il programma può essere adoperato per
1532 eseguire compiti utili.  La sua applicazione più semplice è la stampa
1533 delle note.
1534
1535 @lilypond[quote,relative=1]
1536 {
1537   \time 2/4
1538   c4 c g'4 g a4 a g2
1539 }
1540 @end lilypond
1541
1542 @noindent
1543 Aggiungendo i nomi degli accordi e le parole, otteniamo una notazione
1544 da canzoniere.
1545
1546 @lilypond[quote,ragged-right]
1547 <<
1548    \chords { c2 c f2 c }
1549    \new Staff
1550    \relative {
1551      \time 2/4
1552      c'4 c g' g a a g2
1553    }
1554    \addlyrics { twin -- kle twin -- kle lit -- tle star }
1555 >>
1556 @end lilypond
1557
1558 Possiamo stampare anche notazione polifonica e musica per pianoforte.
1559 L'esempio seguente combina alcune costruzioni più esotiche.
1560
1561 @lilypond[quote,line-width=15.9\cm]
1562 \header {
1563   title = "Screech and boink"
1564   subtitle = "Random complex notation"
1565   composer = "Han-Wen Nienhuys"
1566 }
1567
1568 \score {
1569   \context PianoStaff <<
1570     \new Staff = "up" {
1571       \time 4/8
1572       \key c \minor
1573       << {
1574         \revert Stem.direction
1575         \change Staff = down
1576         \set subdivideBeams = ##t
1577         g16.[
1578           \change Staff = up
1579           c'''32
1580           \change Staff = down
1581           g32
1582           \change Staff = up
1583           c'''32
1584           \change Staff = down
1585           g16]
1586         \change Staff = up
1587         \stemUp
1588         \set followVoice = ##t
1589         c'''32([ b''16 a''16 gis''16 g''32)]
1590       } \\ {
1591         s4 \tuplet 3/2 { d'16[ f' g'] } as'32[ b''32 e'' d'']
1592       } \\ {
1593         s4 \autoBeamOff d''8.. f''32
1594       } \\ {
1595         s4 es''4
1596       } >>
1597     }
1598
1599     \new Staff = "down" {
1600       \clef bass
1601       \key c \minor
1602       \set subdivideBeams = ##f
1603       \override Stem.french-beaming = ##t
1604       \override Beam.beam-thickness = #0.3
1605       \override Stem.thickness = #4.0
1606       g'16[ b16 fis16 g16]
1607       << \makeClusters {
1608         as16 <as b>
1609         <g b>
1610         <g cis>
1611       } \\ {
1612         \override Staff.Arpeggio.arpeggio-direction =#down
1613         <cis, e, gis, b, cis>4\arpeggio
1614       }
1615     >> }
1616   >>
1617   \midi {
1618     \tempo 8 = 60
1619   }
1620   \layout {
1621     \context {
1622       \Staff
1623       \consists "Horizontal_bracket_engraver"
1624     }
1625   }
1626 }
1627 @end lilypond
1628
1629 Tutti i frammenti mostrati sopra sono stati scritti a mano, ma ciò non è
1630 indispensabile.  Dato che il motore di formattazione è in gran parte
1631 automatico, può servire per generare output per altri
1632 programmi che gestiscono musica.  Per esempio, può essere adoperato
1633 anche per convertire database di frammenti musicali in immagini da
1634 utilizzare in siti Web e presentazioni multimediali.
1635
1636 Anche questo documento ne mostra un'applicazione: il formato
1637 di input è testuale, perciò può essere facilmente integrato in altri
1638 formati basati sul testo come @LaTeX{}, HTML o, nel caso di questo
1639 manuale, Texinfo.  Mediante il programma @command{lilypond-book},
1640 compreso in LilyPond, nei file di output PDF o HTML risultanti i
1641 frammenti di input possono essere sostituiti dalle corrispondenti
1642 immagini a contenuto musicale.  Un altro esempio è l'estensione di
1643 terze parti OOoLilyPond per OpenOffice.org o LibreOffice, che rende
1644 estremamente semplice includere frammenti musicali nei documenti.
1645
1646 Per ulteriori esempi di LilyPond all'opera, per la documentazione
1647 completa e per il programma in sé, visitate il nostro sito Internet
1648 ufficiale: www.lilypond.org.
1649
1650 @page
1651 @node Esempi di incisione (BWV 861)
1652 @section Esempi di incisione (BWV 861)
1653 @translationof Engraved examples (BWV 861)
1654
1655 Questa sezione contiene quattro incisioni di riferimento e due versioni
1656 generate al computer delle ultime sette misure della Fuga in Sol minore
1657 dal @emph{Clavicembalo ben temperato}, Libro I, BWV 861, di J.S. Bach.
1658
1659 @noindent
1660 Bärenreiter BA5070 (Neue Ausgabe Sämtlicher Werke, Serie V, Band 6.1,
1661 1989):
1662
1663 @iftex
1664 @sourceimage{bwv861-baer,16cm,,}
1665 @end iftex
1666 @ifnottex
1667 @sourceimage{bwv861-baer-small,,,png}
1668 @end ifnottex
1669
1670 @noindent
1671 Bärenreiter BA5070 (Neue Ausgabe Sämtlicher Werke, Serie V, Band 6.1,
1672 1989), fonte musicale alternativa.  Differenze testuali a parte, questo
1673 esempio mostra leggere variazioni d'incisione anche nella stessa
1674 edizione della medesima casa editrice:
1675
1676 @iftex
1677 @sourceimage{bwv861-baer-alt,16cm,,}
1678 @end iftex
1679 @ifnottex
1680 @sourceimage{bwv861-baer-alt-small,,,png}
1681 @end ifnottex
1682
1683 @noindent
1684 Breitkopf & Härtel, edited by Ferruccio Busoni (Wiesbaden, 1894),
1685 disponibile anche nella Petrucci Music Library (IMSLP #22081).  Le
1686 indicazioni editoriali (diteggiature, articolazioni, eccetera) qui sono
1687 state rimosse per permettere un confronto più agevole con le altre edizioni:
1688
1689 @iftex
1690 @sourceimage{bwv861-breitkopf,16cm,,}
1691 @end iftex
1692 @ifnottex
1693 @sourceimage{bwv861-breitkopf-small,,,png}
1694 @end ifnottex
1695
1696 @noindent
1697 Bach-Gesellschaft edition (Leipzig, 1866), disponibile nella Petrucci
1698 Music Library (IMSPL #02221):
1699
1700 @iftex
1701 @sourceimage{bwv861-gessellschaft,16cm,,}
1702 @end iftex
1703 @ifnottex
1704 @sourceimage{bwv861-gessellschaft-small,,,png}
1705 @end ifnottex
1706
1707 @noindent
1708 Finale 2008:
1709
1710 @iftex
1711 @sourceimage{pdf/bwv861-finale2008a,,,}
1712 @end iftex
1713 @ifnottex
1714 @sourceimage{bwv861-finale2008a,,,png}
1715 @end ifnottex
1716
1717 @sp 4
1718 @noindent
1719 LilyPond, versione @version{}:
1720
1721 @lilypond[staffsize=14.3,line-width=15.9\cm]
1722 global = {\key g \minor}
1723
1724 partI = \relative {
1725   \voiceOne
1726   fis'8 d' ees g, fis4 g
1727   r8 a16 bes c8 bes16 a d8 r r4
1728   r2 r8 d16 ees f8 ees16 d
1729   ees4 ~ 16 d c bes a4 r8 ees'16 d
1730   c8 d16 ees d8 e16 fis g8 fis16 g a4 ~
1731   8 d, g f ees d c bes
1732   a2 g\fermata \bar "|."
1733 }
1734
1735 partII = \relative {
1736   \voiceTwo
1737   d'4 r4 r8 d'16 c bes8 c16 d
1738   ees8 d c ees a, r r4
1739   r8 fis16 g a8 g16 fis g2 ~
1740   2 r8 d' ees g,
1741   fis4 g r8 a16 bes c8 bes16 a
1742   bes4. <g b>8 <a c> r <d, g> r
1743   <ees g>4 <d fis> d2
1744 }
1745 partIII = \relative {
1746   \voiceOne
1747   r2 r8 d' ees g, fis4 g r8 a16 bes c8 bes16 a
1748   bes2 ~ 8 b16 a g8 a16 b
1749   c4 r r2
1750   R1
1751   r8 d ees g, fis4 g
1752   r8 a16 bes c8 bes16 a b2
1753 }
1754 partIV = \relative {
1755   \voiceTwo
1756   d4 r r2
1757   r8 d ees g, fis4 a
1758   d,8 d'16 c bes8 c16 d ees2 ~
1759   8 ees16 d c8 d16 ees fis,8 a16 g fis8 g16 a
1760   d,8 d'16 c bes8 c16 d ees8 c a fis'
1761   g f ees d c bes a g
1762   c a d d, g2\fermata
1763 }
1764
1765 \score {
1766   <<
1767     % \set Score.barNumberVisibility = #all-bar-numbers-visible
1768     % required in 2.13
1769     \set Score.currentBarNumber = #28
1770     \bar ""
1771     \new PianoStaff <<
1772       \new Staff = "RH" <<
1773         \global
1774         \new Voice = "voiceI" { \partI }
1775         \new Voice = "voiceII" { \partII }
1776       >>
1777
1778       \new Staff = "LH" <<
1779         \clef "bass"
1780         \global
1781         \new Voice = "voiceIII" { \partIII }
1782         \new Voice = "voiceIV" { \partIV }
1783       >>
1784     >>
1785   >>
1786   \layout {
1787     \context {
1788       \Staff
1789       \remove "Time_signature_engraver"
1790     }
1791     \context {
1792       \PianoStaff
1793       \override StaffGrouper.staff-staff-spacing.padding = #1
1794     }
1795   }
1796 }
1797 @end lilypond