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