]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/fr/essay/engraving.itely
Merge branch 'master' into lilypond/translation
[lilypond.git] / Documentation / fr / essay / engraving.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
2
3 @ignore
4     Translation of GIT committish: 541f77187b475f4ea84ca36485d2255dd7db0437
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.13.4"
12
13 @c Translators: Jean-Charles Malahieude, John Mandereau, Gauvain Pocentek
14 @c Translation checkers: 
15
16 @node La gravure musicale
17 @chapter La gravure musicale
18 @translationof Music engraving
19
20 Ce chapitre traite des objectifs et de l'architecture de LilyPond.
21
22 @c TODO:
23 @c remove 3mm eps bounding box left padding for Sarabande (This will
24 @c     require adding a new snippet option to lilypond-book.py
25 @c check formatting of HTML output
26 @c
27
28 @menu
29 * L'histoire de LilyPond::      ce qui ne va pas avec les logiciels
30 * La gravure en détails::       de l'homme à la machine
31 * La gravure automatisée::      de la machine à l'homme
32 * De la théorie à la pratique:: qui fait quoi
33 * Démonstration par l'exemple:: LilyPond à l'œuvre       
34 * Comparatif (BWV 861)::                    
35 @end menu
36
37 @node L'histoire de LilyPond
38 @section L'histoire de LilyPond
39 @translationof The LilyPond story
40
41 Bien avant que LilyPond soit à l'origine de tout un matériel d'orchestre
42 d'excellente facture ou qu'il participe à la création d'ouvrages
43 universitaires, avant même qu'il serve à imprimer la plus simple des
44 mélodies, avant que la communauté des utilisateurs de LilyPond
45 s'étende sur toute la planète, LilyPond est parti du constat suivant@tie{}:
46
47 @quotation
48 Pourquoi la plupart des partitions qui sortent d'un ordinateur ne
49 parvient-elle pas à égaler la beauté et l'élégance des partitions
50 gravées à la main@tie{}?
51 @end quotation
52
53 @noindent
54 Certaines réponses sont évidentes si l'on considère les deux partitions
55 @ifnottex
56 ci-dessous.
57 @end ifnottex
58 @iftex
59 des pages qui suivent.
60 @end iftex
61 La première, qui date des années 1950, a été gravée à la main ; la
62 seconde est une édition informatisée contemporaine.
63
64 @ifnottex
65 @quotation
66 @noindent
67 Bärenreiter BA 320, @copyright{}1950 :
68
69 @sourceimage{baer-suite1-fullpage,,,png}
70 @end quotation
71
72 @quotation
73 @noindent
74 Henle n° 666, @copyright{}2000 :
75
76 @sourceimage{henle-suite1-fullpage,,,png}
77 @end quotation
78 @end ifnottex
79
80 Il s'agit de la même musique, tirée de la première suite pour
81 violoncelle solo de Bach, mais ce n'est pas si évident, surtout
82 lorsqu'on imprime ces deux pages et les considère à distance.
83 @ifnottex
84 (Les images contenues dans la version PDF de ce manuel sont en haute
85 résolution, en vue de leur impression.)
86 @end ifnottex
87 Si vous posez ces pages sur un pupitre et les lisez ou prenez votre
88 archet, vous constaterez que la gravure manuelle est nettement plus
89 agréable à la vue.  Ses lignes sont fluides et il y a du mouvement,
90 c'est de la musique et c'est vivant.  Quant à l'édition moderne, elle a
91 l'air terne et mécanique.
92
93 Ce qui rend cette nouvelle édition différente n'est pas évident au
94 premier coup d'œil : c'est propre et condensé, presque @qq{mieux} que
95 l'autre dans la mesure où tout y est @qq{calculé} pour atteindre
96 l'uniformité.  À vrai dire, il nous a fallu un moment pour nous en
97 rendre compte.  Notre but étant d'améliorer la notation informatisée, il
98 nous fallait mettre le doigt sur ce qui ne va pas.
99
100 Le problème se situe au niveau même de la précision toute mathématique
101 qui amène à l'uniformité de cette nouvelle édition.  Considérons les
102 barres de mesure en milieu de ligne@tie{}: dans la partition
103 traditionnelle, leur emplacement varie quelque peu, à l'inverse de la
104 nouvelle, où toutes les barres sont rigoureusement alignées.  Pour que
105 ce soit bien clair, le schéma ci-dessous montre en parallèle ce
106 positionnement, tant pour la version traditionnelle -- à gauche -- que
107 pour la version moderne -- à droite.
108
109 @quotation
110 @iftex
111 @sourceimage{pdf/page-layout-comparison,,,}
112 @end iftex
113 @ifnottex
114 @sourceimage{page-layout-comparison,,,png}
115 @end ifnottex
116 @end quotation
117 @noindent
118
119 Sur la partition générée par l'ordinateur, même les notes sont alignées
120 et la mélodie finit par disparaître derrière un quadrillage à base de
121 signes musicaux.
122
123 Il y a bien sûr d'autres divergences.  En ce qui concerne l'édition
124 traditionnelle, les traits verticaux sont plus épais, les liaisons plus
125 rapprochées des têtes de note, et la pente des ligatures -- liens
126 groupant les croches -- pas toujours la même.  D'aucuns diront que tout
127 ceci n'est que pinaillerie, il n'en demeure pas moins que cette
128 partition a plus de lisibilité.  Dans la partition informatisée, il n'y
129 a pratiquement aucune différence d'une ligne à l'autre, et si
130 l'interprète la quitte des yeux un instant, il risque de ne plus savoir
131 où il en était sur la page. 
132
133 LilyPond a été conçu dans le but de résoudre les problèmes que nous
134 avons décelés dans divers logiciels existant et aussi dans l'optique
135 d'atteindre une qualité comparable aux meilleures partitions gravées à
136 la main. 
137
138 @iftex
139 @page
140 @noindent
141 Bärenreiter BA 320, @copyright{}1950 :
142
143 @sourceimage{baer-suite1-fullpage,16cm,,}
144 @page
145 @noindent
146 Henle no 666, @copyright{}2000 :
147 @sp 3
148 @sourceimage{henle-suite1-fullpage,16cm,,}
149 @page
150 @end iftex
151
152 @node La gravure en détails
153 @section La gravure en détails
154 @translationof Engraving details
155
156 @cindex gravure
157 @cindex typographie musicale
158 @cindex musique et typographie
159 @cindex plate engraving
160 @cindex music engraving
161
162 L'art de la typographie musicale est celui de la @emph{gravure
163 musicale}.  Ce terme vient du procédé traditionnel de l'impression
164 musicale@footnote{Dès le début, les imprimeurs européens ont essayé
165 plusieurs techniques, allant de la matrice en bois sculpté à la fine
166 plaque de métal ciselée, en passant par des typons mobiles.  L'avantage
167 de ces derniers résidait dans la possibilité d'effectuer aisément des
168 corrections et de facilement ajouter à la musique texte et paroles.
169 Néanmoins seule la gravure offrait l'avantage d'appréhender le rendu
170 global.  C'est la raison pour laquelle la gravure est devenue le
171 standard en matière de musique imprimée, à l'exception près de certains
172 livres de cantiques, y compris au XXe siècle, essentiellement pour des
173 raisons de simplicité et de coût.}.  Il y a encore quelques décennies,
174 les partitions étaient réalisées en taillant et ciselant la musique dans
175 des plaques de zinc ou d'étain, en inverse, comme dans un miroir.  Ces
176 plaques étaient encrées et les reliefs créés par les poinçons et les
177 découpes retenaient l'encre.  La partition était alors réalisée en
178 pressant le papier contre la plaque.  Découpes et poinçons étaient
179 entièrement faits à la main.  Dans la mesure où les corrections étaient
180 presque irréalisables, la gravure devait être correcte dès le premier
181 essai.  Cela demande évidemment une très grande habileté.  La gravure
182 musicale est un métier d'artisan, appris sur le tas.  Un graveur ne
183 devenait un maître accompli qu'après une dizaine d'années de pratique. 
184
185 @quotation
186 @iftex
187 @sourceimage{hader-slaan,,7cm,}
188 @end iftex
189 @ifnottex
190 @sourceimage{hader-slaan,,,jpg}
191 @end ifnottex
192 @end quotation
193
194 LilyPond s'inspire du travail réalisé par les maîtres graveurs qui
195 officiaient chez les éditeurs européens jusque dans les années 1950.
196 Ceux-ci sont bien  souvent considérés comme ayant atteint le sommet de
197 leur art, et comptent dans leurs rangs des maisons telles que
198 Bärenreiter, Duhem, Durand, Hofmeister, Peters ou Schott.  Au fil de
199 notre analyse de ces éditions, nous en avons appris encore plus sur ce
200 qu'il faut pour obtenir une partition d'excellente facture, et ce sur
201 quoi LilyPond devait porter ses efforts.
202
203 @c Now all newly printed music is produced with computers.  This has
204 @c obvious advantages: prints are cheaper to make, editorial work can be
205 @c delivered by email, and the original data can be easily stored.
206 @c Unfortunately, computer-generated scores rarely match the quality of
207 @c hand-engraved scores.  Instead, computer printouts have a bland,
208 @c mechanical look, which makes them unpleasant to play from.
209
210 @menu
211 * Fontes et polices::             De la création des polices musicales
212 * Espacement::                    Considérations sur les espacements
213 * Lignes supplémentaires::        Cas particulier en matière de notation
214 * Tailles::                       Considérations sur la taille des portées
215 * La raison de tous ces efforts:: Pourquoi s'attacher aux détails
216 @end menu
217
218 @node Fontes et polices
219 @unnumberedsubsec Fontes et polices
220 @translationof Music fonts
221
222 Les images ci-dessous mettent en évidence certaines différences entre
223 l'art du graveur traditionnel et le résultat habituel sorti d'un
224 ordinateur.  L'image de gauche est un @emph{fac simile} d'un bémol tiré
225 d'une édition Bärenreiter traditionnelle@tie{}; celle de droite est
226 issue de la même partition, éditée en 2000.  Bien que toutes deux soient
227 imprimées avec le même encrage, la version @qq{ancienne} paraît plus
228 noire : les lignes de la portée y sont plus épaisses et le galbe du
229 bémol de Bärenreiter est à la limite de la volupté.  Sur l'autre image,
230 les lignes sont plus fines et le bémol semble raide, coincé.
231
232 @multitable @columnfractions .25 .25 .25 .25
233 @item @tab
234 @ifnotinfo
235 @iftex
236 @sourceimage{baer-flat-gray,,4cm,}
237 @end iftex
238 @ifnottex
239 @sourceimage{baer-flat-gray,,,png}
240 @end ifnottex
241
242 @tab
243 @iftex
244 @sourceimage{henle-flat-gray,,4cm,}
245 @end iftex
246 @ifnottex
247 @sourceimage{henle-flat-gray,,,png}
248 @end ifnottex
249
250 @end ifnotinfo
251 @ifinfo
252 @sourceimage{henle-flat-bw,,,png}
253 @sourceimage{baer-flat-bw,,,png}
254 @sourceimage{lily-flat-bw,,,png}
255 @end ifinfo
256
257
258 @item @tab
259 Bärenreiter (1950)
260 @tab
261 Henle (2000)
262
263 @end multitable
264
265 @cindex symboles musicaux
266 @cindex police
267 @cindex densité
268 @cindex contraste
269
270 Lorsque nous nous sommes décidés à écrire un programme permettant de
271 typographier la musique, aucune police librement accessible ne
272 correspondait à l'esthétique de nos partitions préférées.  Sans
273 toutefois nous décourager, nous avons créé notre propre jeu de symboles
274 musicaux à partir des éditions traditionnelles dont nous disposions.
275 L'expérience aidant, notre goût typographique s'est développé et nous
276 avons pu appréhender certaines subtilités stylistiques qui nous font
277 trouver maintenant de piètre qualité des polices que nous avions tout
278 d'abord appréciées.
279
280 À titre d'exemple, voici deux fontes musicales : la première ligne
281 comporte des caractères de la police par défaut du logiciel Sibelius --
282 la police @emph{Opus} -- et la deuxième, ces mêmes caractères dans notre
283 propre police pour LilyPond.
284
285 @quotation
286 @iftex
287 @sourceimage{pdf/OpusAndFeta,,,}
288 @end iftex
289 @ifnottex
290 @sourceimage{OpusAndFeta,,,png}
291 @end ifnottex
292 @end quotation
293
294 Les symboles de LilyPond sont plus forts et leur épaisseur plus
295 équilibrée, ce qui d'ailleurs les rend plus lisibles.  Les extrémités en
296 pointe, comme pour le soupir, devraient avoir une terminaison légèrement
297 arrondie plutôt qu'un angle tranchant.  Ceci s'explique par la fragilité
298 des poinçons qui s'émoussent rapidement lors du martellement et de la
299 ciselure.  Par ailleurs, la densité de la police doit tenir compte de
300 l'épaisseur des lignes, ligatures et liaisons afin d'obtenir un rendu
301 plein d'intensité et d'équilibre.
302
303 Vous noterez aussi que notre ronde n'est pas ovoïde, mais plutôt en
304 forme de losange.  La barre de notre bémol est comme brossée, le haut
305 étant de fait un peu plus large.  Notre dièse et notre bécarre sont plus
306 évidents à reconnaître à distance du fait que leurs barres transversales
307 n'ont pas la même pente et que les verticales sont plus épaisses.
308
309 @node Espacement
310 @unnumberedsubsec Espacement
311 @translationof Optical spacing
312
313 Si l'on considère l'espacement, sa répartition devrait refléter la durée
314 des notes.  Néanmoins, et comme nous l'avons vu plus haut avec la suite
315 de Bach, la plupart des éditions modernes se basent sur des durées à la
316 précision mathématique, ce qui entraine un effet des plus monotones.
317 Dans l'exemple qui suit, le même motif est imprimé deux fois@tie{}: la
318 première en appliquant un espacement chronométrique, la seconde avec
319 quelques corrections.  Quelle version remporte vos suffrages@tie{}?
320
321 @cindex optique et espacement
322 @cindex espacement et effet d'optique
323
324
325 @lilypond
326 \paper {
327   ragged-right = ##t
328   indent = #0.0
329 }
330
331 music = {
332    c'4 e''4 e'4 b'4 |
333    \stemDown
334    b'8[ e'' a' e'']
335    \stemNeutral
336    e'8[ e'8 e'8 e'8]
337 }
338 \score
339 {
340   \music
341   \layout {
342     \context {
343       \Staff
344       \override NoteSpacing #'stem-spacing-correction = #0.0
345       \override NoteSpacing #'same-direction-correction = #0.0
346       \override StaffSpacing #'stem-spacing-correction = #0.0
347     }
348   }
349 }
350 @end lilypond
351
352 @lilypond
353 \paper {
354   ragged-right = ##t
355   indent = #0.0
356 }
357
358 music = {
359    c'4 e''4 e'4 b'4 |
360    \stemDown
361    b'8[ e'' a' e'']
362    \stemNeutral
363    e'8[ e'8 e'8 e'8]
364 }
365
366 \score
367 {
368   \music
369   \layout {
370     \context {
371       \Staff
372       \override NoteSpacing #'stem-spacing-correction = #0.6
373     }
374   }
375 }
376 @end lilypond
377
378 @cindex rythmes réguliers
379 @cindex espacement régulier
380 @cindex régulier, espacement
381
382 Chaque mesure de ce fragment comporte des notes d'égale valeur, ce qui
383 devrait se constater au niveau de l'espacement.  Malheureusement, notre
384 œil nous trompe@tie{}: non seulement il considère la distance séparant
385 deux têtes de notes mais, de surcroît, il prend en compte l'espace
386 entre deux hampes.  Par voie de conséquence, une succession de notes
387 hampe en haut puis hampe en bas devrait comporter un espace accru et,
388 dans une situation inverse, être plus resserrée, sans oublier de
389 considérer la hauteur de chacune de ces notes.  La deuxième ligne
390 comporte de tels aménagements alors que, dans la première ligne, la
391 succession hampe descendante puis montante laisse apparaître des notes
392 resserrées.  Un maître graveur ajusterait les espaces pour obtenir un
393 rendu qui flatte l'œil.
394
395 Autre effet d'optique -- que d'ailleurs LilyPond prend en considération
396 -- l'espace entre la hampe et la barre de mesure.  Lorsqu'une barre est
397 précédée d'une hampe montante, il est judicieux d'accroître l'espace
398 qui les sépare pour éviter cette sensation de tassement.  Une note dont
399 la hampe va vers le bas ne nécessite pas un tel ajustement.
400
401 @node Lignes supplémentaires
402 @unnumberedsubsec Lignes supplémentaires
403 @translationof Ledger lines
404
405 @cindex lignes supplémentaires
406 @cindex collisions
407
408 Les lignes supplémentaires sont une gageure pour le typographe@tie{}:
409 les différents symboles musicaux doivent être suffisamment rapprochés
410 pour que le lecteur identifie la hauteur au premier coup d'œil.  Vous
411 noterez, dans l'exemple qui suit, que les lignes supplémentaires sont un
412 peu plus épaisses que celles de la portée.  Par ailleurs, un maître
413 graveur écourtera la ligne supplémentaire en présence d'une altération.
414 LilyPond, dans sa recherche d'efficacité, adopte ces pratiques.
415
416 @multitable @columnfractions .25 .25 .25 .25
417 @item @tab
418
419 @iftex
420 @sourceimage{baer-ledger,3cm,,}
421 @end iftex
422 @ifnottex
423 @sourceimage{baer-ledger,,,png}
424 @end ifnottex
425
426 @tab
427
428 @iftex
429 @sourceimage{lily-ledger,3cm,,}
430 @end iftex
431 @ifnottex
432 @sourceimage{lily-ledger,,,png}
433 @end ifnottex
434
435 @end multitable
436
437
438 @node Tailles
439 @unnumberedsubsec Tailles
440 @translationof Optical sizing
441
442 Une même œuvre peut être imprimée dans différents formats -- d'une
443 partie instrumentale au conducteur format de poche.  Les graveurs
444 traditionnels utilisaient alors des poinçons différents pour obtenir le
445 meilleur rendu selon la taille de la partition.  L'avènement des fontes
446 digitalisées permet d'obtenir n'importe quelle taille à partir d'un
447 simple tracé.  Bien que ceci constitue un progrès en soi, il nous faut
448 cependant nuancer@tie{}: les glyphes sont moins forts lorsqu'ils sont de
449 taille réduite.
450
451 Pour les besoins de lilyPond, nous avons créé des polices de graisse
452 différente selon la taille.  Voici ce que produit LilyPond dans une
453 taille de portée de 26@tie{}points@tie{}:
454
455 @quotation
456 @iftex
457 @sourceimage{pdf/size26,,23mm,}
458 @end iftex
459 @ifnottex
460 @sourceimage{size26,,,png}
461 @end ifnottex
462 @end quotation
463
464 @noindent
465 et la même musique en 11@tie{}points, grossie de 236@tie{}% pour obtenir
466 une taille identique à l'image précédente@tie{}:
467
468 @quotation
469 @iftex
470 @sourceimage{pdf/size11,,23mm,}
471 @end iftex
472 @ifnottex
473 @sourceimage{size11,,,png}
474 @end ifnottex
475 @end quotation
476
477 @noindent
478 Comme vous le constatez, LilyPond imprime des lignes un peu plus
479 épaisses pour garantir une meilleure lecture à taille réduite.
480
481 @ignore
482 This also allows staves of different sizes to coexist peacefully when
483 used together on the same page:
484
485 @c TODO: are the stems in this example the right thickness? How should
486 @c line weights be scaled for small staves?
487
488 @c Grieg's Violin Sonata Op. 45
489 @lilypond[indent=1.5cm]
490 global = {
491   \time 6/8
492   \key c \minor
493 }
494
495 \new Score <<
496   \new Staff \with {
497       fontSize = #-4
498       \override StaffSymbol #'staff-space = #(magstep -4)
499       \override StaffSymbol #'thickness = #(magstep -3)
500     }
501     \relative c' {
502       \global
503       \set Staff.instrumentName = #"Violin"
504       c8.(\f^> b16 c d) ees8.(^> d16 c b)
505       g8.(^> b16 c ees) g8-.^> r r
506       R2.
507     }
508   \new PianoStaff <<
509     \set PianoStaff.instrumentName = #"Piano"
510     \new Staff \relative c' {
511       \global
512       s2.
513       s4. s8 r8 r16 <c f aes c>
514       <c f aes c>4.^> <c ees g>8 r r
515     }
516     \new Staff \relative c {
517       \global
518       \clef "bass"
519       <<
520         {
521           \once \override DynamicText #'X-offset = #-3
522           <ees g c>2.~->^\f
523           <ees g c>4.~ <ees g c>8
524         } \\ {
525           <c g c,>2.~
526           <c g c,>4.~ <c g c,>8
527         }
528       >>
529       r8 r16 <f, c' aes'>16
530       <f c' aes'>4.-> <c' g'>8 r r
531     }
532   >>
533 >>
534 @end lilypond
535 @end ignore
536
537 @node La raison de tous ces efforts
538 @unnumberedsubsec La raison de tous ces efforts
539 @translationof Why work so hard?
540
541 Les musiciens sont normalement plus concentrés sur la manière dont ils
542 jouent la musique que sur son apparence, aussi ces pinailleries sur des
543 détails de typographie peuvent paraître académiques.  Il n'en est rien.  
544 La partition contribue, au même titre que bien d'autres éléments, à
545 l'existence même d'une représentation@tie{}: tout doit être fait pour
546 que l'interprète donne le meilleur de lui-même, et ce qui est peu clair
547 ou pas agréable à lire constitue un frein.
548
549 La musique gravée de manière traditionnelle présente des symboles denses
550 et des lignes épaisses. Ceci produit un résultat équilibré, à plus
551 forte raison si la partition est éloignée du lecteur, comme lorsqu'elle
552 est posée sur un pupitre.  Une répartition attentive des blancs permet
553 de resserrer la musique sans pour autant tasser les symboles et, au
554 final, diminue le nombre de tournes -- avantage indéniable.
555
556 C'est une caractéristique commune de la typographie.  La présentation
557 devrait être soignée, non seulement pour l'amour de l'art, mais plus
558 spécialement parce qu'elle vient en aide au lecteur dans sa tâche.
559 Pour du matériel d'interprétation tel que les partitions de musique,
560 ceci est doublement important@tie{}: les musiciens sont limités dans
561 leur attention.  Au moins leur attention se porte sur la lecture, au
562 plus ils peuvent se concentrer sur l'exécution.  En d'autres termes, une
563 meilleure typographie se traduit par une meilleure interprétation. 
564
565 Ces considérations montrent bien que la typographie musicale est un art
566 à la fois complexe et plein de subtilités, et qu'elle recquiert des
567 compétences particulières que la majorité des musiciens ne possède pas.
568 LilyPond s'efforce de transposer le degré d'excellence de la gravure
569 traditionnelle à l'ère de l'ordinateur et donc de le mettre à
570 disposition de tous les musiciens.  Nous avons affiné nos algorithmes,
571 le @emph{design} de nos fontes et les réglages du programme de manière à
572 produire des partitions d'une qualité comparable aux bonnes vieilles
573 éditions que nous avons toujours autant de plaisir à voir et à
574 interpréter.
575
576
577 @node La gravure automatisée
578 @section La gravure automatisée
579 @translationof Automated engraving
580
581 @cindex gravure automatisée
582 @cindex automatisée, gravure
583
584 Nous allons maintenant examiner les éléments nécessaires à la création
585 d'un logiciel capable d'imiter le rendu des partitions gravées à
586 l'ancienne.  Nous commencerons par voir comment inculquer à l'ordinateur
587 les @qq{bonnes manières} de la présentation.  Nous nous attarderons
588 ensuite sur l'analyse comparative par rapport aux éditions
589 traditionnelles, avant de considérer le degré de flexibilité à y inclure
590 pour être en mesure de gérer les différents cas de figure particuliers à
591 la notation.
592
593 @menu
594 * Concours de beauté::           l'option du moindre mal
595 * Modélisation et banc d'essai:: l'évaluation des performances
596 * Règles de formatage::          l'architecture flexible
597 @end menu
598
599 @node Concours de beauté
600 @unnumberedsubsec Concours de beauté
601 @translationof Beauty contests
602
603 Quels sont en réalité nos critères de formatage@tie{}?  Considérant
604 l'image suivante, laquelle de ces trois configurations devrions-nous
605 choisir pour formater la liaison@tie{}?
606
607 @lilypond
608 \relative c {
609     \clef bass
610     \once \override Slur #'positions = #'(1.5 . 1)
611     e8[( f] g[ a b d,)] r4
612     \once \override Slur #'positions = #'(2 . 3)
613     e8[( f] g[ a b d,)] r4
614     e8[( f] g[ a b d,)] r4
615 }
616 @end lilypond
617
618 Seuls quelques ouvrages traitent de l'art de graver la musique.  Ils ne
619 contiennent malheureusement que des généralités et quelques exemples.
620 La lecture de telles règles est certes instructive, mais est très loin
621 de nous conduire à un algorithme prêt à être implémenté dans un
622 programme.  Dans la pratique, suivre les instructions de ces traités
623 aboutirait à des algorithmes qui figent bon nombre d'exceptions.
624 Répertorier tous ces cas de figure demanderait un travail considérable,
625 qui finalement ne les couvrirait pas tous.
626
627 @quotation
628 @iftex
629 @sourceimage{ross-beam-scan,7cm,,}
630 @end iftex
631 @ifnottex
632 @sourceimage{ross-beam-scan,,,.jpg}
633 @end ifnottex
634 @end quotation
635
636 @emph{Règles de formatages définies par l'exemple. Image tirée de
637 l'ouvrage de Ted Ross  @qq{The Art of Music Engraving}}
638
639 Plutôt que d'écrire une foultitude de règles qui embrasserait tous les
640 cas de figure possibles et imaginables en matière de mise en forme, nous
641 avons préféré inculquer à LilyPond un certain nombre d'objectifs qui lui
642 permette de choisir entre différentes alternatives selon leur
643 esthétique.  Pour ce faire, chacune des configurations est analysée en
644 terme de moins bonne qualité, et nous opterons pour celle étant la moins
645 mauvaise.
646
647 Voici, à titre d'exemple, trois configurations possibles pour le tracé
648 d'une liaison@tie{}; Lilypond leur attribue individuellement une @qq{note
649 de laideur}.  Le premier essai se voit attribuer 15,39 points notamment
650 pour l'effleurement de la tête de note.
651
652 @lilypond
653 \relative c {
654     \clef bass
655     \once \override Slur #'positions = #'(1.5 . 1)
656     e8[(_"15.39" f] g[ a b d,)] r4
657 }
658 @end lilypond
659
660 La liaison ci-dessous reste à une distance uniforme des notes, mais il
661 faut tenir compte du fait qu'elle n'est pas rattachée aux première et
662 dernière notes. Ceci nous fait 1,71@tie{}points pour le début de la
663 liaison et 9,37 pour la terminaison -- qui est beaucoup plus éloignée de
664 la dernière note.  Par ailleurs, la liaison monte alors que la mélodie
665 redescend, ce qui entraîne une pénalité de 2@tie{}points.  Ceci nous
666 fait un total de 13,08@tie{}points de laideur.
667
668 @lilypond
669 \relative c {
670     \clef bass
671     \once \override Slur #'positions = #'(2 . 3)
672     e8[(_"13.08" f] g[ a b d,)] r4
673 }
674 @end lilypond
675
676 Quant à la liaison qui suit, seule la terminaison reste éloignée de la
677 dernière note, ce qui donne 10,04@tie{}points de laideur auxquels nous
678 ajoutons 2 autres points pour la pente ascendante.  Cette configuration
679 étant la moins laide, ou plutôt la version la plus satisfaisante, nous
680 la sélectionnons.
681
682 @lilypond
683 \relative c {
684     \clef bass
685     e8[(_"12.04" f] g[ a b d,)] r4
686 }
687 @end lilypond
688
689 Cette manière de procéder est générique, et nous y avons recours dans
690 bon nombre de situations, comme pour déterminer la pente d'un lien de
691 croches, formater des accords liés, formater des accords avec des
692 valeurs pointées, positionner les sauts de ligne ou de page.  Cette
693 technique est consommatrice de temps de calcul, dans la mesure où elle
694 examine de nombreuses possibilités ; néanmoins, le jeu en vaut la
695 chandelle, puisque le résultat final est bien meilleur et nous rapproche
696 des éditions traditionnelles.
697
698 @node Modélisation et banc d'essai
699 @unnumberedsubsec Modélisation et banc d'essai
700 @translationof Improvement by benchmarking
701
702 Au fil du temps, le rendu de LilyPond a évolué, et continue de
703 s'améliorer lorsqu'on le compare aux partitions gravées à la main.
704
705 Voici un extrait de l'une de nos éditions de référence (Bärenreiter BA
706 320)@tie{}:
707
708 @iftex
709 @sourceimage{baer-sarabande-hires,16cm,,}
710 @end iftex
711 @ifnottex
712 @sourceimage{baer-sarabande,,,png}
713 @end ifnottex
714
715 @noindent
716 et ce que génère l'une des anciennes versions de LilyPond -- la 1.4,
717 publiée en mai 2001@tie{}:
718
719 @iftex
720 @sourceimage{pdf/lily14-sarabande,16cm,,}
721 @end iftex
722 @ifnottex
723 @sourceimage{lily14-sarabande,,,png}
724 @end ifnottex
725
726 @noindent La sortie LilyPond est certes lisible, et acceptable pour
727 beaucoup de gens.  Cependant, une comparaison minutieuse avec une
728 édition gravée à la main révèle de nombreuses erreurs de
729 formatage@tie{}:
730
731 @iftex
732 @sourceimage{lily14-sarabande-annotated-hires,16cm,,}
733 @end iftex
734 @ifnottex
735 @sourceimage{lily14-sarabande-annotated,,,png}
736 @end ifnottex
737
738 @itemize @bullet
739 @item trop d'espace avant la métrique
740 @item la hampe des notes ligaturées est trop longue
741 @item les deuxième et quatrième mesures sont trop tassées
742 @item la liaison est affreuse
743 @item les indications de trille sont trop grosses
744 @item les hampes sont trop fines
745 @end itemize
746
747 @noindent
748 Passons sous silence les notes et indications absentes, tout comme
749 la faute de hauteur@tie{}!
750
751 En ajustant les algorithmes, paramètres et polices concernés, nous avons
752 pu améliorer le résultat.  La deuxième ligne ci-dessous a été générée
753 par la version la plus récente de LilyPond (@version{}).
754
755 @iftex
756 @sourceimage{baer-sarabande-hires,16cm,,}
757 @end iftex
758 @ifnottex
759 @sourceimage{baer-sarabande,,,png}
760 @end ifnottex
761
762 @lilypond[staffsize=17.5,line-width=15.9\cm]
763 \relative c {
764   \clef "bass"
765   \key d \minor
766   \time 3/4
767   \mergeDifferentlyDottedOn
768   <<
769     {\slurDashed d8.-\flageolet( e16) e4.-\trill( d16 e)}
770      \\
771     {d4_2 a2}
772   >>
773   \slurDashed
774   <f' a, d,>4. e8( d c)
775   \slurSolid
776   bes g' f e16( f g_1 a_2 bes_3 d,_2)
777   \slurDashed
778   cis4.-\trill b8_3( a g)
779   <<
780     {\slurDashed d'8.( e16) e4.-\trill( d16 e)}
781      \\
782     {<f, a>4 a2}
783   >>
784 }
785 @end lilypond
786
787 @noindent
788 Sans être un clone de l'édition de référence, cette sortie est plus
789 proche d'une qualité de publication que les précédentes.
790
791 @node Règles de formatage
792 @unnumberedsubsec Règles de formatage
793 @translationof Getting things right
794
795 Nous pouvons aussi évaluer les capacités de LilyPond dans ses choix, en
796 comparant ses résultats avec ce que génèrent d'autres d'autres logiciels
797 du marché.  Notre choix s'est porté sur Finale@tie{}2008, l'un des
798 logiciels les plus populaires notamment en Amérique du Nord.  Son plus
799 proche concurrent est Sibelius, très répandu sur le marché européen.
800
801 Pour cette analyse comparative, nous avons choisi la fugue en sol mineur
802 du premier livre du Clavier bien tempéré de Bach (BWV@tie{}861). En
803 voici le thème@tie{}:
804
805 @lilypond
806 \relative c' {
807   \key g \minor
808   \clef "treble_8"
809   r8 d ees g, fis4 g
810   r8 a16 bes c8 bes16 a bes8
811 }
812 @end lilypond
813
814 @noindent
815
816 Nous nous sommes intéressés aux sept dernières mesures (27 à 34) de
817 l'œuvre, que nous avons saisies à la fois avec Finale et avec LilyPond.
818 C'est à cet endroit que le sujet est rappelé, dans une strette à trois
819 voix, avant de mener à la conclusion.  Pour ce qui est de Finale, nous
820 nous sommes abstenus d'effectuer quelque ajustement que ce soit dans le
821 but d'obtenir un résultat par défaut.  Ceci permet de vraiment apprécier
822 conjointement ce que génère chacun des deux logiciels sans retouche
823 aucune.  Nous avons toutefois redimensionné la page pour les besoins de
824 cet essai et forcé la musique à tenir sur deux systèmes pour que la
825 comparaison soit plus évidente.  En effet, Finale crée par défaut deux
826 systèmes de trois mesure, et un troisième -- s'étalant sur toute la
827 ligne -- pour la dernière mesure.
828
829 La plupart des différences entre ces deux éditions -- Finale pour la
830 première image -- se situent dans les mesures 28 et 29@tie{}:
831
832 @iftex
833 @sourceimage{pdf/bwv861mm28-29,14cm,,}
834 @end iftex
835 @ifnottex
836 @sourceimage{bwv861mm28-29,,,png}
837 @end ifnottex
838
839 @lilypond[staffsize=19.5,line-width=14\cm]
840 global = {\key g \minor}
841
842 partI = \relative c' {
843   \voiceOne
844   fis8 d' ees g, fis4 g
845   r8 a16 bes c8 bes16 a d8 r r4
846 }
847
848 partII = \relative c' {
849   \voiceTwo
850   d4 r4 r8 d'16 c bes8 c16 d
851   ees8 d c ees a, r r4
852 }
853 partIII = \relative c' {
854   \voiceOne
855   r2 r8 d ees g, fis4 g r8 a16 bes c8 bes16 a
856 }
857 partIV = \relative c {
858   \voiceTwo
859   d4 r r2
860   r8 d ees g, fis4 a
861 }
862
863 \score {
864   <<
865     % \set Score.barNumberVisibility = #all-bar-numbers-visible
866     % required in 2.13
867     \set Score.currentBarNumber = #28
868     \bar ""
869     \new PianoStaff <<
870       \new Staff = "RH" <<
871         \global
872         \new Voice = "voiceI" { \partI }
873         \new Voice = "voiceII" { \partII }
874       >>
875       \new Staff = "LH" <<
876         \clef "bass"
877         \global
878         \new Voice = "voiceIII" { \partIII }
879         \new Voice = "voiceIV" { \partIV }
880       >>
881     >>
882   >>
883   \layout {
884     \context {
885       \Staff
886       \remove "Time_signature_engraver"
887     }
888     \context {
889       \PianoStaff
890       \override StaffGrouper #'between-staff-spacing #'padding = #1
891     }
892   }
893 }
894 @end lilypond
895
896 Entre autres défauts du résultat brut de Finale, nous notons :
897 @itemize @bullet
898 @item La majorité des ligatures est trop éloignée de la portée.
899 Lorsqu'une ligature se retrouve vers le milieu de la portée, la hauteur
900 des hampes qui la portent est d'environ une octave.  Néanmoins, un
901 maître graveur les raccourcira dès lors que cette ligature est en dehors
902 de la portée d'une section à plusieurs voix.  Les règles de ligatures de
903 Finale peuvent être améliorées à l'aide du greffon @emph{Patterson
904 Beams}, que nous avons décidé de laisser de côté pour cet exemple.
905 @item Finale n'ajuste pas la position des notes qui s'entrecroisent.  Il
906 en résulte une lecture peu évidente lorsque les voix supérieure et
907 inférieure de croisent temporairement@tie{}:
908
909 @c KEEPLY
910 @lilypond
911 collide = \once \override NoteColumn #'force-hshift = #0
912 \new Score <<
913   \new Voice = "sample" \relative c''{
914     \key g \minor
915     <<
916       {\voiceOne g4 \collide g4}
917       \new Voice {\voiceTwo bes \collide bes}
918     >>
919   }
920   \new Lyrics \lyricsto "sample" \lyricmode { "bien " " mauvais" }
921 >>
922 @end lilypond
923
924 @item Finale positionne tous les silences d'une même voix à une hauteur
925 fixe de la portée.  Si l'utilisatuer peut les déplacer à loisir, le
926 logiciel ne se soucie en rien de ce qui se passe dans les autres voix.
927 Par chance, il n'y a aucune collision entre un silence et une note dans
928 cet exemple@tie{}; cela tient plutôt à la position des notes qu'à celle
929 des silences.  Tout compte fait, le mérite en revient à Bach plutôt qu'à
930 Finale d'éviter les collisions.
931
932 @end itemize
933
934 Cet exemple ne vise en aucun cas à démontrer que Finale est incapable de
935 fournir un résultat admirable.  Au contraire, un utilisateur chevronné
936 pourra obtenir quelque chose d'excellent, mais au prix d'une bonne dose
937 tant de dextérité que de temps.  La différence fondamentale entre
938 LilyPond et les générateurs de partition commerciaux réside dans le fait
939 suivant@tie{}: LilyPond tend à réduire l'intervention de l'utilisateur à
940 sa plus imple expression, alors que les autres programmes font tout pour
941 avoir une interface attractive pour effectuer toutes les retouches.
942
943 Par ailleurs, Finale commet une erreur particulièrement flagrante@tie{}:
944 il manque un bémol à la mesure 33
945
946 @quotation
947 @iftex
948 @sourceimage{pdf/bwv861mm33-34-annotate,7.93cm,,}
949 @end iftex
950 @ifnottex
951 @sourceimage{bwv861mm33-34-annotate,,,png}
952 @end ifnottex
953 @end quotation
954
955 @noindent
956 Il faut un bémol pour annuler le bécarre qui se trouve dans la même
957 mesure, mais Finale ne s'en rend pas compte parce qu'il se trouve dans
958 une autre voix.  Ainsi, l'utilisateur doit non seulement recourir à un
959 greffon pour gérer les ligatures, repositionner têtes de note et
960 silences, il lui faut de surcroit vérifier qu'à chaque mesure les
961 altérations sont en conformité indépendament des voix s'il veut être à
962 l'abri de toute interruption d'une répétition pour une erreur dans la
963 partition.
964
965 S'il vous plaît d'examiner ces sept mesures de plus près, elles sont
966 reproduites en intégralité à la fin de cet essai, ainsi que quatre
967 autres versions.  Vous noterez certaines variations entre les éditions
968 traditionnelles, et LilyPond tient un rang acceptable.  Il reste tout de
969 même quelques petits défauts à régler, comme le raccourcissement peut
970 être exagéré des hampes@tie{}; il y a donc encore de quoi faire pour les
971 développeurs. 
972
973 La typographie relevant d'un jugement humain, les personnes ne peuvent
974 être remplacées.  Beaucoup de tâches rébarbatives peuvent cependant être
975 automatisées@tie{}: si LilyPond parvenait à gérer la plupart des
976 situations usuelles correctement, ce serait un grand pas en avant pour
977 l'édition informatisée.  Au fil du temps, le logiciel pourra être révisé
978 afin d'automatiser de plus en plus d'actions, de sorte que les
979 ajustements manuels seront de moins en moins nécessaires.  Les cas
980 particuliers peuvent être traités manuellement, notamment grâce à
981 l'architecture flexible de LilyPond.
982
983
984 @node De la théorie à la pratique
985 @section De la théorie à la pratique
986 @translationof Building software
987
988 Nous allons nous intéresser, dans les paragraphes qui suivent, aux
989 arbitrages en terme de programmation qui ont participé à l'élaboration
990 de LilyPond.
991
992 @menu
993 * Représentation de la musique::   le format de saisie
994 * Les constituants de la gravure:: quels symboles graver
995 * Flexibilité architecturale::   
996 @end menu
997
998
999 @node Représentation de la musique
1000 @unnumberedsubsec Représentation de la musique
1001 @translationof Music representation
1002
1003 @cindex syntaxe
1004 @cindex structures récursives
1005 @cindex récursivité des structures
1006
1007 Le format de saisie idéal pour un système évolué de formatage consiste
1008 en la description abstraite du contenu.  Dans le cas qui nous occupe, il
1009 s'agit tout bonnement de la musique.  Cela n'est pas sans poser un
1010 énorme problème@tie{}: comment définir @emph{ce qu'est} la
1011 musique@tie{}?  Pour résoudre ce problème, nous l'avons inversé.  Au
1012 lieu de définir ce qu'est la musique, notre programme sert de
1013 définition@tie{}: nous avons écrit un programme capable de produire des
1014 partitions, et avons ajusté son format de saisie pour être aussi léger
1015 que possible.  Lorsque le format ne peut plus être simplifié, nous
1016 avons par définition atteint le contenu même.  Autrement dit, notre
1017 programme utilise la définition formelle d'un document musical.
1018
1019 La syntaxe est également celle de l'interface utilisateur de LilyPond,
1020 puisqu'elle peut être facilement tapée au clavier@tie{}:
1021
1022 @example
1023 @{
1024   c'4 d'8
1025 @}
1026 @end example
1027
1028 @noindent
1029 sont un do médium noire et un ré croche juste au-dessus.
1030
1031 @lilypond[quote]
1032 {
1033   c'4 d'8
1034 }
1035 @end lilypond
1036
1037 À petite échelle, une telle syntaxe est pratique.  À plus grande
1038 échelle, une structuration est nécessaire.  Sans cela, comment saisir
1039 des pièces aussi complexes qu'un opéra ou une symphonie@tie{}?  La
1040 structure est construite selon le même concept que les expressions
1041 musicales@tie{}: c'est en combinant de petits fragments qu'une musique
1042 plus complexe peut être représentée.  Par exemple@tie{}:
1043
1044 @lilypond[quote,verbatim,fragment,relative=1]
1045 f4
1046 @end lilypond
1047
1048 @noindent
1049 Quand des notes sont combinées simultanément, il suffit de les insérer
1050 entre @code{<<} et @code{>>}@tie{}:
1051
1052 @example
1053 <<c4 d4 e4>>
1054 @end example
1055
1056 @lilypond[quote,fragment,relative=1]
1057 \new Voice { <<c4 d4 e>> }
1058 @end lilypond
1059
1060 @noindent
1061 Insérées dans une paire d'accolades @code{@{@tie{}@dots{}@tie{}@}}, ces
1062 expressions sont intégrées dans une séquence@tie{}:
1063
1064 @example
1065 @{ f4 <<c4 d4 e4>> @}
1066 @end example
1067
1068 @lilypond[quote,relative=1,fragment]
1069 { f4 <<c d e4>> }
1070 @end lilypond
1071
1072 @noindent
1073 Ceci constitue une nouvelle expression, qui peut être à son tour
1074 combinée avec une autre expression simultanée (en l'occurence une
1075 blanche) à l'aide de @code{<<}, @code{\\} et @code{>>}@tie{}:
1076
1077 @example
1078 << g2 \\ @{ f4 <<c4 d4 e4>> @} >>
1079 @end example
1080
1081 @lilypond[quote,fragment,relative=2]
1082 \new Voice { << g2 \\ { f4 <<c d e>> } >> }
1083 @end lilypond
1084
1085 De telles structures récursives peuvent être définies formellement et
1086 de manière ordonnée avec une @emph{grammaire libre de tout contexte}.
1087 Le code d'analyse de la saisie est également généré depuis cette
1088 grammaire.  Autrement dit, la définition de la syntaxe de LilyPond est
1089 claire et sans ambiguïté.
1090
1091 Ce sont la syntaxe et l'interface qui concernent les utilisateurs.
1092 Elles sont sujettes à discussion, puisque relatives aux goûts de chacun.
1093 Bien que ces discussions soient intéressantes, elles ne sont pas
1094 productives.  À l'échelle de LilyPond, l'importance du format de saisie
1095 est minime@tie{}: inventer une syntaxe claire est bien plus aisé
1096 qu'écrire un code de mise en page décent.  Ceci est d'ailleurs
1097 illustré par le nombre de lignes de code de ces composants
1098 respectifs@tie{}: l'analyse du texte de saisie et sa représentation
1099 pèsent moins de 10@tie{}% du code.
1100
1101 Dans la conception des structures utilisées par LilyPond, nous avons
1102 pris certaines options divergentes des autres logiciels.  Considérons la
1103 nature par essence hiérarchique de la notation musicale@tie{}:
1104
1105 @lilypond[quote,fragment]
1106 <<
1107 \new Staff \relative c'' {
1108   \key g \major
1109   \time 3/4
1110   d4 g,8 a b c d4 g, g
1111 }
1112 \new Staff \relative c' {
1113   \clef "bass"
1114   \key g \major
1115   <g b d>2 a4 b2.
1116 }
1117 >>
1118 @end lilypond
1119
1120 Nous y voyons des hauteurs regroupées en accords appartenant à des
1121 mesures elles-même rattachées à des portées.  On pourrait représenter
1122 cela par un système de boîtes imbriquées@tie{}:
1123
1124 @quotation
1125 @iftex
1126 @sourceimage{pdf/nestedboxes,,4cm,}
1127 @end iftex
1128 @ifnottex
1129 @sourceimage{nestedboxes,,,png}
1130 @end ifnottex
1131 @end quotation
1132
1133 Cette structure est cependant réductrice car reposant sur des postulats
1134 extrêmement restrictifs.  Cela devient plus évident dès lors que la
1135 musique se complique@tie{}:
1136
1137 @lilypond[quote]
1138 \layout {
1139   \context {
1140     \Score
1141     \remove "Timing_translator"
1142     \remove "Default_bar_line_engraver"
1143   }
1144   \context {
1145     \Staff
1146     \consists "Timing_translator"
1147     \consists "Default_bar_line_engraver"
1148   }
1149 }
1150
1151 \new PianoStaff <<
1152   \new Staff = "RH" <<
1153     \new Voice = "I" \relative c''' {
1154       \time 3/4
1155       \voiceOne
1156       \times 6/7 {g8 g g g g g g}
1157       \oneVoice
1158       r4 <b,, fis' g bes> r4\fermata
1159     }
1160     \new Voice = "II" \relative c' {
1161       \voiceTwo
1162       c4
1163       \times 4/5 {
1164         <c ees>8 f g
1165         \change Staff = "LH" \oneVoice
1166         \stemUp g,( c}
1167       r4
1168       \override Stem #'cross-staff = ##t
1169       \override Stem #'length = #12
1170       <fis, b>) r\fermata
1171     }
1172   >>
1173   \new Staff = "LH" <<
1174     \new Voice = "III" \relative c' {
1175       \time 2/4
1176       \clef "bass"
1177       g4 \stopStaff s
1178       \startStaff s2*2
1179     }
1180   >>
1181 >>
1182 @end lilypond
1183
1184 Ici, les portées débutent et s'arrêtent n'importe où, les voix passent
1185 d'une portée à l'autre, et parfois même occupent deux portées.  Nombre
1186 de logiciels auront d'énormes difficultés à reproduire cet exemple, pour
1187 la bonne et simple raison qu'ils se basent sur le modèle hiérarchique de
1188 boîtes imbriquées.  LilyPond, quant à lui, tend à préserver la
1189 dichotomie entre le fromat de saisie et une structure aussi flexible que
1190 possible.
1191
1192
1193 @node Les constituants de la gravure
1194 @unnumberedsubsec Les constituants de la gravure
1195 @translationof What symbols to engrave?
1196
1197 @cindex gravure
1198 @cindex typographie
1199 @cindex graveur
1200 @cindex greffon
1201 @cindex module
1202
1203 Si le processus de formatage se charge de décider où positionner les
1204 symboles, encore faudrait-il savoir @emph{quels} symboles doivent
1205 apparaitre -- ou bien, quelle notation utiliser.
1206
1207 La notation musicale consitue une forme d'enregistrement de la musique
1208 qui a d'ailleurs évolué sur un millier d'années.  La forme que nous
1209 utilisons de nos jours remonte au début de la Renaissance.  Bien que ses
1210 fondements n'aient pas changé -- des têtes de note réparties sur une
1211 portée à cinq lignes --, certains détails sont apparus qui permettent de
1212 rendre compte des apports de la notation contemporaine.  La notation
1213 musicale couvre cinq siècles de musique, allant de la simple monodie à
1214 de gigantesques contrepoints orchestraux. 
1215
1216 Comment intégrer un tel monstre aux si nombreux visages ? Notre solution
1217 est de clairement distinguer la notation -- @emph{quels} symboles
1218 utiliser -- de la gravure -- @emph{où} les placer.  Pour appréhender la
1219 notation, nous l'avons disséquée en éléments simples (et
1220 programmables)@tie{}: chaque type de symbole est géré par un module --
1221 ou greffon -- différent.  Tous ces modules sont entièrement
1222 configurables et indépendants, chacun pouvant être développé et amélioré
1223 séparément.  Nous appelons ces modules des graveurs (@emph{engravers} en
1224 anglais), par analogie avec ces professionels qui mettent en forme
1225 graphiquement les idées musicales.
1226
1227
1228 Le module le plus basique, qu'on appelle @code{Note_heads_engraver},
1229 crée les têtes de notes@tie{}:
1230
1231 @lilypond[quote,ragged-right]
1232 \include "engraver-example.ily"
1233
1234 \score {
1235   \topVoice
1236   \layout {
1237     \context {
1238       \Voice
1239       \remove "Stem_engraver"
1240       \remove "Phrasing_slur_engraver"
1241       \remove "Slur_engraver"
1242       \remove "Script_engraver"
1243       \remove "Beam_engraver"
1244       \remove "Auto_beam_engraver"
1245     }
1246     \context {
1247       \Staff
1248       \remove "Accidental_engraver"
1249       \remove "Key_engraver"
1250       \remove "Clef_engraver"
1251       \remove "Bar_engraver"
1252       \remove "Time_signature_engraver"
1253       \remove "Staff_symbol_engraver"
1254       \consists "Pitch_squash_engraver"
1255     }
1256   }
1257 }
1258 @end lilypond
1259
1260 @noindent
1261 Puis le module @code{Staff_symbol_engraver} génère les objets représentant
1262 les lignes de portée@tie{}:
1263
1264 @lilypond[quote,ragged-right]
1265 \include "engraver-example.ily"
1266
1267 \score {
1268   \topVoice
1269   \layout {
1270     \context {
1271       \Voice
1272       \remove "Stem_engraver"
1273       \remove "Phrasing_slur_engraver"
1274       \remove "Slur_engraver"
1275       \remove "Script_engraver"
1276       \remove "Beam_engraver"
1277       \remove "Auto_beam_engraver"
1278     }
1279     \context {
1280       \Staff
1281       \remove "Accidental_engraver"
1282       \remove "Key_engraver"
1283       \remove "Clef_engraver"
1284       \remove "Bar_engraver"
1285       \consists "Pitch_squash_engraver"
1286       \remove "Time_signature_engraver"
1287     }
1288   }
1289 }
1290 @end lilypond
1291
1292 @noindent
1293 le module @code{Clef_engraver} fournit au @code{Note_head_engraver}
1294 la hauteur à laquelle doit être placée chaque tête de note@tie{}:
1295
1296 @lilypond[quote,ragged-right]
1297 \include "engraver-example.ily"
1298
1299 \score {
1300   \topVoice
1301   \layout {
1302     \context {
1303       \Voice
1304       \remove "Stem_engraver"
1305       \remove "Phrasing_slur_engraver"
1306       \remove "Slur_engraver"
1307       \remove "Script_engraver"
1308       \remove "Beam_engraver"
1309       \remove "Auto_beam_engraver"
1310     }
1311     \context {
1312       \Staff
1313       \remove "Accidental_engraver"
1314       \remove "Key_engraver"
1315       \remove "Bar_engraver"
1316       \remove "Time_signature_engraver"
1317     }
1318   }
1319 }
1320 @end lilypond
1321
1322 @noindent
1323 et, enfin, les hampes et leurs crochets sont gérés par le
1324 @code{Stem_engraver}@tie{}:
1325
1326 @lilypond[quote,ragged-right]
1327 \include "engraver-example.ily"
1328
1329 \score {
1330   \topVoice
1331   \layout {
1332     \context {
1333       \Voice
1334       \remove "Phrasing_slur_engraver"
1335       \remove "Slur_engraver"
1336       \remove "Script_engraver"
1337       \remove "Beam_engraver"
1338       \remove "Auto_beam_engraver"
1339     }
1340     \context {
1341       \Staff
1342       \remove "Accidental_engraver"
1343       \remove "Key_engraver"
1344       \remove "Bar_engraver"
1345       \remove "Time_signature_engraver"
1346     }
1347   }
1348 }
1349 @end lilypond
1350
1351 @noindent
1352 Le module @code{Stem_engraver} est appelé dès qu'une tête de note
1353 apparaît.  Pour chaque note rencontrée -- ou groupe de notes s'il s'agit
1354 d'un accord --, un objet hampe est créé et attaché à la tête de note.
1355 Si l'on ajoute les modules en charge des ligatures, des liaisons, des
1356 accents, des barres de mesure, de la métrique et de l'armure, nous avons
1357 tout ce qui est nécessaire à une partition.
1358
1359 @lilypond[quote,ragged-right]
1360 \include "engraver-example.ily"
1361 \score { \topVoice }
1362 @end lilypond
1363
1364 @cindex polyphony
1365 @cindex engraving multiple voices
1366 @cindex contexts
1367
1368 Le principe décrit plus haut fonctionne très bien pour de la musique
1369 monophonique, mais qu'en est-il de la polyphonie@tie{}?  Dans ce cas,
1370 plusieurs voix peuvent partager la même portée@tie{}:
1371
1372 @lilypond[quote,ragged-right]
1373 \include "engraver-example.ily"
1374 \new Staff << \topVoice \\ \botVoice >>
1375 @end lilypond
1376
1377 Ici, la portée et les altérations sont partagées mais les hampes,
1378 liaisons, liens, etc. dépendent de chaque voix.  De plus, les graveurs
1379 doivent être regroupés.  Les graveurs de têtes de note, hampes,
1380 liaisons, etc. sont donc inclus dans un groupe appelé @emph{Voice context}
1381 (contexte de voix),  alors que l'armure, les altérations, les
1382 barres de mesures, etc. sont placées dans un groupe @emph{Staff context}
1383 (contexte de portée).  Dans le cas d'une polyphonie, un contexte de
1384 portée contient plusieurs contextes de voix.  De même, plusieurs
1385 contextes de portée peuvent être assemblés dans un contexte de partition
1386 (@emph{Score context})@tie{}:
1387
1388 @lilypond[quote,ragged-right]
1389 \include "engraver-example.ily"
1390 \score {
1391    <<
1392       \new Staff << \topVoice \\ \botVoice >>
1393       \new Staff << \pah \\ \hoom >>
1394    >>
1395 }
1396 @end lilypond
1397
1398 @seealso
1399 Référence des propriétés internes :
1400 @rinternals{Contexts}.
1401
1402
1403 @node Flexibilité architecturale
1404 @unnumberedsubsec Flexibilité architecturale
1405 @translationof Flexible architecture
1406
1407 Pour ses premiers pas, LilyPond était totalement écrit en langage
1408 C++@tie{}; les programmeurs gravaient les fonctionnalités du programme
1409 dans le marbre.  Cela s'est avéré peu satisfaisant pour plusieurs
1410 raisons@tie{}:
1411
1412 @itemize
1413
1414 @item Il peut arriver que LilyPond commette une erreur, auquel cas
1415 l'utilisateur doit pouvoir déroger aux décisions arbitraires, et donc
1416 se servir du moteur de formatage.  Par conséquent,  les règles et
1417 paramètres ne peuvent être fixés lors de la compilation, mais doivent
1418 être accessibles lors de l'exécution.  
1419
1420 @item Graver est une affaire de jugement visuel, donc une affaire de goût.
1421 Nous savons que les utilisateurs peuvent ne pas être d'accord avec nous.
1422 Il faut donc qu'il aient accès aux définitions des styles
1423 typographiques.
1424
1425 @item Enfin, nous redéfinissons continuellement les règles de formatage,
1426 et avons donc besoin d'une approche souple des règles.  Le C++ implique
1427 une méthode de groupement des règles qui ne correspond pas au
1428 fonctionnement de la notation musicale.
1429
1430 @end itemize
1431
1432 @cindex Scheme, langage de programmation
1433 @cindex langage de programmation Scheme
1434
1435 Nous avons résolu ces problème par l'adjonction d'un interpréteur pour
1436 le Scheme et la réécriture de parties entières de LilyPond dans ce
1437 langage.  L'architecture du programme repose sur la notion d'objets
1438 graphiques que l'on peut décrire par des variables ou des fonctions
1439 Scheme.  Elle doit prendre en compte les règles de formatage, le style
1440 typographique et les décisions de formatage individuelles.
1441 L'utilisateur de LilyPond peut accéder directement à la majorité de ces
1442 contrôles.
1443
1444 La mise en page dépend des variables Scheme.  Par exemple, la variable
1445 @var{direction} définie pour de nombreux objets, encode le choix entre
1446 haut et bas (ou gauche et droite).  L'image qui suit présente deux
1447 accords, accentués et arpégés.  Pour le premier accord, la direction de
1448 chaque objet est vers le bas (ou la gauche).  Les objets sont dirigés
1449 vers le haut (ou la droite) pour le second.
1450
1451 @lilypond[quote,ragged-right]
1452 \new Score \with {
1453    \override SpacingSpanner #'spacing-increment = #3
1454    \override TimeSignature #'transparent = ##t
1455 } \relative c' {
1456    \stemDown <e g b>4_>-\arpeggio
1457    \override Arpeggio #'direction = #RIGHT
1458    \stemUp <e g b>4^>-\arpeggio
1459 }
1460 @end lilypond
1461
1462 @cindex score formatting
1463 @cindex formatting a score
1464 @cindex formatting rules
1465
1466 @noindent
1467 Le processus de mise en forme d'une partition consiste à lire et
1468 écrire des variables d'objets.  Certaines variables ont une valeur
1469 prédéfinie.  Par exemple, l'épaisseur de nombreuses lignes --
1470 caractéristiques d'un style typographique -- est préétablie.  La changer
1471 entraîne un changement du style typographique.
1472
1473 @lilypond[quote,ragged-right]
1474 fragment = {
1475    \clef bass f8 as8
1476    c'4-~ c'16 as g f e16 g bes c' des'4
1477 }
1478 <<
1479    \new Staff \fragment
1480    \new Staff \with {
1481       \override Beam #'beam-thickness = #0.3
1482       \override Stem #'thickness = #0.5
1483       \override Bar #'thickness = #3.6
1484       \override Tie #'thickness = #2.2
1485       \override StaffSymbol #'thickness = #3.0
1486       \override Tie #'extra-offset = #'(0 .  0.3)
1487       }
1488       \fragment
1489 >>
1490 @end lilypond
1491
1492 Les valeurs prédéfinies de certaines variables font aussi partie des
1493 règles de formatage.  Chaque objet possède des variables contenant des
1494 procédures.  Ces procédures réalisent le formatage prédéfini, dont
1495 l'apparence peut être changée en remplaçant ces procédures par d'autres.
1496 Dans l'exemple suivant, la règle permettant à l'objet @qq{tête de note}
1497 de dessiner son symbole est modifiée au cours de l'extrait musical :
1498
1499 @lilypond[quote,ragged-right]
1500 #(set-global-staff-size 30)
1501
1502 #(define (mc-squared grob orig current)
1503   (let* ((interfaces (ly:grob-interfaces grob))
1504          (pos (ly:grob-property grob 'staff-position)))
1505     (if (memq 'note-head-interface interfaces)
1506         (begin
1507           (ly:grob-set-property! grob 'stencil
1508             (grob-interpret-markup grob
1509               (make-lower-markup 0.5
1510                 (case pos
1511                   ((-5) "m")
1512                   ((-3) "c ")
1513                   ((-2) (make-smaller-markup (make-bold-markup "2")))
1514                   (else "bla")))))))))
1515
1516 \new Voice \relative c' {
1517   \stemUp
1518   \set autoBeaming = ##f
1519   \time 2/4
1520   <d f g>4
1521   \once \override NoteHead #'stencil = #note-head::brew-ez-stencil
1522   \once \override NoteHead #'font-size = #-7
1523   \once \override NoteHead #'font-family = #'sans
1524   \once \override NoteHead #'font-series = #'bold
1525   <d f g>4
1526   \once \override NoteHead #'style = #'cross
1527   <d f g>4
1528   \applyOutput #'Voice #mc-squared
1529   <d f g>4
1530   <<
1531     { d8[ es-( fis^^ g] fis2-) }
1532     \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
1533   >>
1534 }
1535 @end lilypond
1536
1537
1538 @node Démonstration par l'exemple
1539 @section Démonstration par l'exemple
1540 @translationof Putting LilyPond to work
1541
1542 @cindex simple examples
1543 @cindex examples, simple
1544
1545 Nous vous avons montré ce que devrait être la gravure musicale, et
1546 comment nous avons construit notre logiciel pour imiter cette apparence.
1547 Nous nous sommes énormément investis dans cette construction. En guise
1548 de  récompense pour ce long travail, vous pouvez à votre tour 
1549 utiliser le programme pour imprimer votre musique.
1550 Commençons par quelques notes@dots{}
1551
1552 @lilypond[quote,relative=1]
1553 {
1554   \time 2/4
1555   c4 c g'4 g a4 a g2
1556 }
1557 @end lilypond
1558
1559 @noindent
1560 Lorsqu'on leur ajoute des accords et des paroles, on obtient une chanson
1561 populaire@dots{}
1562
1563 @lilypond[quote,ragged-right]
1564 <<
1565    \chords { c2 c f2 c }
1566    \new Staff
1567    \relative c' {
1568      \time 2/4
1569      c4 c g' g a a g2
1570    }
1571    \addlyrics { twin -- kle twin -- kle lit -- tle star }
1572 >>
1573 @end lilypond
1574
1575 On peut aussi éditer de la polyphonie ou une partition pour piano.
1576 Quant à ce qui suit, admirez l'exotisme de certaines
1577 constructions@dots{}
1578
1579 @lilypond[quote]
1580 \header {
1581   title = "Screech and boink"
1582   subtitle = "Random complex notation"
1583   composer = "Han-Wen Nienhuys"
1584 }
1585
1586 \score {
1587   \context PianoStaff <<
1588     \new Staff = "up" {
1589       \time 4/8
1590       \key c \minor
1591       << {
1592         \revert Stem #'direction
1593         \change Staff = down
1594         \set subdivideBeams = ##t
1595         g16.[
1596           \change Staff = up
1597           c'''32
1598           \change Staff = down
1599           g32
1600           \change Staff = up
1601           c'''32
1602           \change Staff = down
1603           g16]
1604         \change Staff = up
1605         \stemUp
1606         \set followVoice = ##t
1607         c'''32([ b''16 a''16 gis''16 g''32)]
1608       } \\ {
1609         s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d'']
1610       } \\ {
1611         s4 \autoBeamOff d''8.. f''32
1612       } \\ {
1613         s4 es''4
1614       } >>
1615     }
1616
1617     \new Staff = "down" {
1618       \clef bass
1619       \key c \minor
1620       \set subdivideBeams = ##f
1621       \override Stem  #'french-beaming = ##t
1622       \override Beam  #'beam-thickness = #0.3
1623       \override Stem  #'thickness = #4.0
1624       g'16[ b16 fis16 g16]
1625       << \makeClusters {
1626         as16 <as b>
1627         <g b>
1628         <g cis>
1629       } \\ {
1630         \override Staff.Arpeggio  #'arpeggio-direction =#down
1631         <cis, e, gis, b, cis>4\arpeggio
1632       }
1633     >> }
1634   >>
1635   \midi {
1636     \context {
1637       \Score
1638       tempoWholesPerMinute = #(ly:make-moment 60 8)
1639     }
1640   }
1641   \layout {
1642     \context {
1643       \Staff
1644       \consists Horizontal_bracket_engraver
1645     }
1646   }
1647 }
1648 @end lilypond
1649
1650 Ces fragments ont tous été écrits à la main, mais ce n'est pas une
1651 obligation.  Dans la mesur où le moteur de formatage est presque
1652 complètement automatisé, il peut servir à générer du matériel imprimable
1653 pour d'autres programmes en charge de manipuler de la musique.  LilyPond
1654 est parfaitement en mesure de convertir des bases de données musicales
1655 aux fins de les utiliser dans des sites internet ou des présentations
1656 multimédia.
1657
1658 Vous avez constaté, au fil de notre propos, que le format source est
1659 purement textuel et peut donc être réutilisé dans d'autres formats
1660 basés sur une description textuelle comme @LaTeX{}, HTML ou -- ce qui
1661 est le cas pour la documentation de LilyPond -- Texinfo.  À l'aide du
1662 script @command{lilypond-book} fournit avec LilyPond, les fragments
1663 de code insérés feront place à une image dans le fichier résultant,
1664 qu'il soit au format PDF ou HTML.  Il existe aussi une extension pour
1665 OpenOffice.org -- OOoLilyPond -- qui permet d'insérer des extraits dans
1666 un document.
1667
1668 Pour mieux voir LilyPond en action, consulter la documentation ou
1669 accéder directement au logiciel, rendez-vous sur www.lilypond.org.
1670
1671 @page
1672 @node Comparatif (BWV 861)
1673 @section Comparatif (BWV 861)
1674 @translationof Engraved examples (BWV 861)
1675
1676 Cette annexe présente quatre éditions de référence et deux éditions
1677 informatisées des sept dernières mesures de la fugue en sol mineur
1678 extraite du Premier livre du clavier bien tempéré de Bach
1679 (BWV@tie{}861).
1680
1681 @noindent
1682 Bärenreiter BA5070 (Neue Ausgabe Sämtlicher Werke, Serie V, Band 6.1,
1683 1989) :
1684
1685 @iftex
1686 @sourceimage{bwv861-baer,16cm,,}
1687 @end iftex
1688 @ifnottex
1689 @sourceimage{bwv861-baer-small,,,png}
1690 @end ifnottex
1691
1692 @noindent
1693 Bärenreiter BA5070 (Neue Ausgabe Sämtlicher Werke, Serie V, Band 6.1,
1694 1989), à partir d'une autre source.  En plus de  différences au niveau
1695 des éléments textuels, ce travail montre que, au sein d'une même maison
1696 d'édition, les appréciations peuvent être différentes selon le
1697 graveur@tie{}:
1698
1699 @iftex
1700 @sourceimage{bwv861-baer-alt,16cm,,}
1701 @end iftex
1702 @ifnottex
1703 @sourceimage{bwv861-baer-alt-small,,,png}
1704 @end ifnottex
1705
1706 @noindent
1707 Breitkopf & Härtel, édité par Ferruccio Busoni (Wiesbaden, 1894),
1708 disponible à la Petrucci Music Library (IMSLP #22081).  Les éléments
1709 éditoriaux tels que doigtés et articulations en ont été gommés aux fins
1710 de comparaison avec les autres éditions@tie{}:
1711
1712 @iftex
1713 @sourceimage{bwv861-breitkopf,16cm,,}
1714 @end iftex
1715 @ifnottex
1716 @sourceimage{bwv861-breitkopf-small,,,png}
1717 @end ifnottex
1718
1719 @noindent
1720 Bach-Gesellschaft edition (Leipzig, 1866), disponible à la Petrucci
1721 Music Library (IMSPL #02221) :
1722
1723 @iftex
1724 @sourceimage{bwv861-gessellschaft,16cm,,}
1725 @end iftex
1726 @ifnottex
1727 @sourceimage{bwv861-gessellschaft-small,,,png}
1728 @end ifnottex
1729
1730 @noindent
1731 Finale 2008 :
1732
1733 @iftex
1734 @sourceimage{pdf/bwv861-finale2008a,,,}
1735 @end iftex
1736 @ifnottex
1737 @sourceimage{bwv861-finale2008a,,,png}
1738 @end ifnottex
1739
1740 @sp 4
1741 @noindent
1742 LilyPond, version @version{} :
1743
1744 @lilypond[staffsize=14.3,line-width=15.9\cm]
1745 global = {\key g \minor}
1746
1747 partI = \relative c' {
1748   \voiceOne
1749   fis8 d' ees g, fis4 g
1750   r8 a16 bes c8 bes16 a d8 r r4
1751   r2 r8 d16 ees f8 ees16 d
1752   ees4 ~ ees16 d c bes a4 r8 ees'16 d
1753   c8 d16 ees d8 e16 fis g8 fis16 g a4 ~
1754   a8 d, g f ees d c bes
1755   a2 g\fermata \bar "|."
1756 }
1757
1758 partII = \relative c' {
1759   \voiceTwo
1760   d4 r4 r8 d'16 c bes8 c16 d
1761   ees8 d c ees a, r r4
1762   r8 fis16 g a8 g16 fis g2 ~
1763   g2 r8 d' ees g,
1764   fis4 g r8 a16 bes c8 bes16 a
1765   bes4. <g b>8 <a c> r <d, g> r
1766   <ees g>4 <d fis> d2
1767 }
1768 partIII = \relative c' {
1769   \voiceOne
1770   r2 r8 d ees g, fis4 g r8 a16 bes c8 bes16 a
1771   bes2 ~ bes8 b16 a g8 a16 b
1772   c4 r r2
1773   R1
1774   r8 d ees g, fis4 g
1775   r8 a16 bes c8 bes16 a b2
1776 }
1777 partIV = \relative c {
1778   \voiceTwo
1779   d4 r r2
1780   r8 d ees g, fis4 a
1781   d,8 d'16 c bes8 c16 d ees2 ~
1782   ees8 ees16 d c8 d16 ees fis,8 a16 g fis8 g16 a
1783   d,8 d'16 c bes8 c16 d ees8 c a fis'
1784   g f ees d c bes a g
1785   c a d d, g2\fermata
1786 }
1787
1788 \score {
1789   <<
1790     % \set Score.barNumberVisibility = #all-bar-numbers-visible
1791     % required in 2.13
1792     \set Score.currentBarNumber = #28
1793     \bar ""
1794     \new PianoStaff <<
1795       \new Staff = "RH" <<
1796         \global
1797         \new Voice = "voiceI" { \partI }
1798         \new Voice = "voiceII" { \partII }
1799       >>
1800
1801       \new Staff = "LH" <<
1802         \clef "bass"
1803         \global
1804         \new Voice = "voiceIII" { \partIII }
1805         \new Voice = "voiceIV" { \partIV }
1806       >>
1807     >>
1808   >>
1809   \layout {
1810     \context {
1811       \Staff
1812       \remove "Time_signature_engraver"
1813     }
1814     \context {
1815       \PianoStaff
1816       \override StaffGrouper #'between-staff-spacing #'padding = #1
1817     }
1818   }
1819 }
1820 @end lilypond