From: Jean-Charles Malahieude Date: Thu, 1 Apr 2010 20:10:19 +0000 (+0200) Subject: Doc-fr: adding essay X-Git-Tag: release/2.13.18-1~21 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=0e51f83d071939629b5f341e5cc264444456e0dd;p=lilypond.git Doc-fr: adding essay * essay and engraving: full translation * literature: nitpick in node-name --- diff --git a/Documentation/fr/essay.tely b/Documentation/fr/essay.tely new file mode 100644 index 0000000000..a97a383d8b --- /dev/null +++ b/Documentation/fr/essay.tely @@ -0,0 +1,73 @@ +\input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*- +@ignore + Translation of GIT committish: 3b1c477ab2212f124f865c46df350c5a1c1f2412 + + When revising a translation, copy the HEAD committish of the + version that you are working on. For details, see the Contributors' + Guide, node Updating translation committishes.. +@end ignore + +@c Translators: Jean-Charles Malahieude +@c Translation checkers: + +@setfilename lilypond-essay.info +@settitle Essai sur la gravure musicale automatisée +@documentencoding UTF-8 +@documentlanguage fr +@afourpaper + +@macro manualIntro +Cet essai traite de la gravure de la musique et de la notation assistée +par ordinateur à l'aide de LilyPond version @version{}. +@end macro + +@c `Essay' was born 2002-06-03 with git commit e38f5fc... +@macro copyrightDeclare +Copyright @copyright{} 2002--2010 par les auteurs. +@end macro + +@set FDL +@include macros.itexi + +@afourpaper +@c don't remove this comment. +@ignore +@omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen +@omfdescription Essay on automated music engraving +@omftype essay +@omfcategory Applications|Publishing +@omflanguage English +@end ignore + + +@lilyTitlePage{Essai sur la gravure musicale automatisée} + + +@ifnottex + +@menu +* La gravure musicale:: +* Références bibliographiques:: +* GNU Free Documentation License:: Licence de ce document. +* Index de LilyPond:: +@end menu + +@docMain +@end ifnottex + + +@contents + +@allowcodebreaks false + +@include essay/engraving.itely +@include essay/literature.itely + +@include fdl.itexi + +@node Index de LilyPond +@appendix Index de LilyPond + +@printindex cp + +@bye diff --git a/Documentation/fr/essay/engraving.itely b/Documentation/fr/essay/engraving.itely new file mode 100644 index 0000000000..edd13b245e --- /dev/null +++ b/Documentation/fr/essay/engraving.itely @@ -0,0 +1,1818 @@ +@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*- + +@ignore + Translation of GIT committish: 3b1c477ab2212f124f865c46df350c5a1c1f2412 + + When revising a translation, copy the HEAD committish of the + version that you are working on. For details, see the Contributors' + Guide, node Updating translation committishes.. +@end ignore + +@c \version "2.13.4" + +@c Translators: Jean-Charles Malahieude, John Mandereau, Gauvain Pocentek +@c Translation checkers: + +@node La gravure musicale +@chapter La gravure musicale +@translationof Music engraving + +Ce chapitre traite des objectifs et de l'architecture de LilyPond. + +@c TODO: +@c remove 3mm eps bounding box left padding for Sarabande (This will +@c require adding a new snippet option to lilypond-book.py +@c check formatting of HTML output +@c + +@menu +* L'histoire de LilyPond:: ce qui ne va pas avec les logiciels +* La gravure en détails:: de l'homme à la machine +* La gravure automatisée:: de la machine à l'homme +* De la théorie à la pratique:: qui fait quoi +* Démonstration par l'exemple:: +* Comparatif (BWV 861):: +@end menu + +@node L'histoire de LilyPond +@section L'histoire de LilyPond +@translationof The LilyPond story + +Bien avant que LilyPond soit à l'origine de tout un matériel d'orchestre +d'excellente facture ou qu'il participe à la création d'ouvrages +universitaires, avant même qu'il serve à imprimer la plus simple des +mélodies, avant que la communauté des utilisateurs de LilyPond +s'étende sur toute la planète, LilyPond est parti du constat suivant@tie{}: + +@quotation +Pourquoi la plupart des partitions qui sortent d'un ordinateur ne +parvient-elle pas à égaler la beauté et l'élégance des partitions +gravées à la main@tie{}? +@end quotation + +@noindent +Certaines réponses sont évidentes si l'on considère les deux partitions +@ifnottex +ci-dessous. +@end ifnottex +@iftex +des pages qui suivent. +@end iftex +La première, qui date des années 1950, a été gravée à la main ; la +seconde est une édition informatisée contemporaine. + +@ifnottex +@quotation +@noindent +Bärenreiter BA 320, @copyright{}1950 : + +@sourceimage{baer-suite1-fullpage,,,png} +@end quotation + +@quotation +@noindent +Henle n° 666, @copyright{}2000 : + +@sourceimage{henle-suite1-fullpage,,,png} +@end quotation +@end ifnottex + +Il s'agit de la même musique, tirée de la première suite pour +violoncelle solo de Bach, mais ce n'est pas si évident, surtout +lorsqu'on imprime ces deux pages et les considère à distance. +@ifnottex +(Les images contenues dans la version PDF de ce manuel sont en haute +résolution, en vue de leur impression.) +@end ifnottex +Si vous posez ces pages sur un pupitre et les lisez ou prenez votre +archet, vous constaterez que la gravure manuelle est nettement plus +agréable à la vue. Ses lignes sont fluides et il y a du mouvement, +c'est de la musique et c'est vivant. Quant à l'édition moderne, elle a +l'air terne et mécanique. + +Ce qui rend cette nouvelle édition différente n'est pas évident au +premier coup d'œil : c'est propre et condensé, presque @qq{mieux} que +l'autre dans la mesure où tout y est @qq{calculé} pour atteindre +l'uniformité. À vrai dire, il nous a fallu un moment pour nous en +rendre compte. Notre but étant d'améliorer la notation informatisée, il +nous fallait mettre le doigt sur ce qui ne va pas. + +Le problème se situe au niveau même de la précision toute mathématique +qui amène à l'uniformité de cette nouvelle édition. Considérons les +barres de mesure en milieu de ligne@tie{}: dans la partition +traditionnelle, leur emplacement varie quelque peu, à l'inverse de la +nouvelle, où toutes les barres sont rigoureusement alignées. Pour que +ce soit bien clair, le schéma ci-dessous montre en parallèle ce +positionnement, tant pour la version traditionnelle -- à gauche -- que +pour la version moderne -- à droite. + +@quotation +@iftex +@sourceimage{pdf/page-layout-comparison,,,} +@end iftex +@ifnottex +@sourceimage{page-layout-comparison,,,png} +@end ifnottex +@end quotation +@noindent + +Sur la partition générée par l'ordinateur, même les notes sont alignées +et la mélodie finit par disparaître derrière un quadrillage à base de +signes musicaux. + +Il y a bien sûr d'autres divergences. En ce qui concerne l'édition +traditionnelle, les traits verticaux sont plus épais, les liaisons plus +rapprochées des têtes de note, et la pente des ligatures -- liens +groupant les croches -- pas toujours la même. D'aucuns diront que tout +ceci n'est que pinaillerie, il n'en demeure pas moins que cette +partition a plus de lisibilité. Dans la partition informatisée, il n'y +a pratiquement aucune différence d'une ligne à l'autre, et si +l'interprète la quitte des yeux un instant, il risque de ne plus savoir +où il en était sur la page. + +LilyPond a été conçu dans le but de résoudre les problèmes que nous +avons décelés dans divers logiciels existant et aussi dans l'optique +d'atteindre une qualité comparable aux meilleures partitions gravées à +la main. + +@iftex +@page +@noindent +Bärenreiter BA 320, @copyright{}1950 : + +@sourceimage{baer-suite1-fullpage,16cm,,} +@page +@noindent +Henle no 666, @copyright{}2000 : +@sp 3 +@sourceimage{henle-suite1-fullpage,16cm,,} +@page +@end iftex + +@node La gravure en détails +@section La gravure en détails +@translationof Engraving details + +@cindex gravure +@cindex typographie musicale +@cindex musique et typographie +@cindex plate engraving +@cindex music engraving + +L'art de la typographie musicale est celui de la @emph{gravure +musicale}. Ce terme vient du procédé traditionnel de l'impression +musicale@footnote{Dès le début, les imprimeurs européens ont essayé +plusieurs techniques, allant de la matrice en bois sculpté à la fine +plaque de métal ciselée, en passant par des typons mobiles. L'avantage +de ces derniers résidait dans la possibilité d'effectuer aisément des +corrections et de facilement ajouter à la musique texte et paroles. +Néanmoins seule la gravure offrait l'avantage d'appréhender le rendu +global. C'est la raison pour laquelle la gravure est devenue le +standard en matière de musique imprimée, à l'exception près de certains +livres de cantiques, y compris au XXe siècle, essentiellement pour des +raisons de simplicité et de coût.}. Il y a encore quelques décennies, +les partitions étaient réalisées en taillant et ciselant la musique dans +des plaques de zinc ou d'étain, en inverse, comme dans un miroir. Ces +plaques étaient encrées et les reliefs créés par les poinçons et les +découpes retenaient l'encre. La partition était alors réalisée en +pressant le papier contre la plaque. Découpes et poinçons étaient +entièrement faits à la main. Dans la mesure où les corrections étaient +presque irréalisables, la gravure devait être correcte dès le premier +essai. Cela demande évidemment une très grande habileté. La gravure +musicale est un métier d'artisan, appris sur le tas. Un graveur ne +devenait un maître accompli qu'après une dizaine d'années de pratique. + +@quotation +@iftex +@sourceimage{hader-slaan,,7cm,} +@end iftex +@ifnottex +@sourceimage{hader-slaan,,,jpg} +@end ifnottex +@end quotation + +LilyPond s'inspire du travail réalisé par les maîtres graveurs qui +officiaient chez les éditeurs européens jusque dans les années 1950. +Ceux-ci sont bien souvent considérés comme ayant atteint le sommet de +leur art, et comptent dans leurs rangs des maisons telles que +Bärenreiter, Duhem, Durand, Hofmeister, Peters ou Schott. Au fil de +notre analyse de ces éditions, nous en avons appris encore plus sur ce +qu'il faut pour obtenir une partition d'excellente facture, et ce sur +quoi LilyPond devait porter ses efforts. + +@c Now all newly printed music is produced with computers. This has +@c obvious advantages: prints are cheaper to make, editorial work can be +@c delivered by email, and the original data can be easily stored. +@c Unfortunately, computer-generated scores rarely match the quality of +@c hand-engraved scores. Instead, computer printouts have a bland, +@c mechanical look, which makes them unpleasant to play from. + +@menu +* Fontes et polices:: De la création des polices musicales +* Espacement:: Considérations sur les espacements +* Lignes supplémentaires:: Cas particulier en matière de notation +* Tailles:: Considérations sur la taille des portées +* La raison de tous ces efforts:: Pourquoi s'attacher aux détails +@end menu + +@node Fontes et polices +@unnumberedsubsec Fontes et polices +@translationof Music fonts + +Les images ci-dessous mettent en évidence certaines différences entre +l'art du graveur traditionnel et le résultat habituel sorti d'un +ordinateur. L'image de gauche est un @emph{fac simile} d'un bémol tiré +d'une édition Bärenreiter traditionnelle ; celle de droite est issue de +la même partition, éditée en 2000. Bien que toutes deux soient +imprimées avec le même encrage, la version @qq{ancienne} paraît plus +noire : les lignes de la portée y sont plus épaisses et le galbe du +bémol de Bärenreiter est à la limite de la volupté. Sur l'autre image, +les lignes sont plus fines et le bémol semble raide, coincé. + +@multitable @columnfractions .25 .25 .25 .25 +@item @tab +@ifnotinfo +@iftex +@sourceimage{baer-flat-gray,,4cm,} +@end iftex +@ifnottex +@sourceimage{baer-flat-gray,,,png} +@end ifnottex + +@tab +@iftex +@sourceimage{henle-flat-gray,,4cm,} +@end iftex +@ifnottex +@sourceimage{henle-flat-gray,,,png} +@end ifnottex + +@end ifnotinfo +@ifinfo +@sourceimage{henle-flat-bw,,,png} +@sourceimage{baer-flat-bw,,,png} +@sourceimage{lily-flat-bw,,,png} +@end ifinfo + + +@item @tab +Bärenreiter (1950) +@tab +Henle (2000) + +@end multitable + +@cindex symboles musicaux +@cindex police +@cindex densité +@cindex contraste + +Lorsque nous nous sommes décidés à écrire un programme permettant de +typographier la musique, aucune police librement accessible ne +correspondait à l'esthétique de nos partitions préférées. Sans +toutefois nous décourager, nous avons créé notre propre jeu de symboles +musicaux à partir des éditions traditionnelles dont nous disposions. +L'expérience aidant, notre goût typographique s'est développé et nous +avons pu appréhender certaines subtilités stylistiques qui nous font +trouver maintenant de piètre qualité des polices que nous avions tout +d'abord appréciées. + +À titre d'exemple, voici deux fontes musicales : la première ligne +comporte des caractères de la police par défaut du logiciel Sibelius -- +la police @emph{Opus} -- et la deuxième, ces mêmes caractères dans notre +propre police pour LilyPond. + +@quotation +@iftex +@sourceimage{pdf/OpusAndFeta,,,} +@end iftex +@ifnottex +@sourceimage{OpusAndFeta,,,png} +@end ifnottex +@end quotation + +Les symboles de LilyPond sont plus forts et leur épaisseur plus +équilibrée, ce qui d'ailleurs les rend plus lisibles. Les extrémités en +pointe, comme pour le soupir, devraient avoir une terminaison légèrement +arrondie plutôt qu'un angle tranchant. Ceci s'explique par la fragilité +des poinçons qui s'émoussent rapidement lors du martellement et de la +ciselure. Par ailleurs, la densité de la police doit tenir compte de +l'épaisseur des lignes, ligatures et liaisons afin d'obtenir un rendu +plein d'intensité et d'équilibre. + +Vous noterez aussi que notre ronde n'est pas ovoïde, mais plutôt en +forme de losange. La barre de notre bémol est comme brossée, le haut +étant de fait un peu plus large. Notre dièse et notre bécarre sont plus +évidents à reconnaître à distance du fait que leurs barres transversales +n'ont pas la même pente et que les verticales sont plus épaisses. + +@node Espacement +@unnumberedsubsec Espacement +@translationof Optical spacing + +Si l'on considère l'espacement, sa répartition devrait refléter la durée +des notes. Néanmoins, et comme nous l'avons vu plus haut avec la suite +de Bach, la plupart des éditions modernes se basent sur des durées à la +précision mathématique, ce qui entraine un effet des plus monotones. +Dans l'exemple qui suit, le même motif est imprimé deux fois@tie{}: la +première en appliquant un espacement chronométrique, la seconde avec +quelques corrections. Quelle version remporte vos suffrages@tie{}? + +@cindex optique et espacement +@cindex espacement et effet d'optique + + +@lilypond +\paper { + ragged-right = ##t + indent = #0.0 +} + +music = { + c'4 e''4 e'4 b'4 | + \stemDown + b'8[ e'' a' e''] + \stemNeutral + e'8[ e'8 e'8 e'8] +} +\score +{ + \music + \layout { + \context { + \Staff + \override NoteSpacing #'stem-spacing-correction = #0.0 + \override NoteSpacing #'same-direction-correction = #0.0 + \override StaffSpacing #'stem-spacing-correction = #0.0 + } + } +} +@end lilypond + +@lilypond +\paper { + ragged-right = ##t + indent = #0.0 +} + +music = { + c'4 e''4 e'4 b'4 | + \stemDown + b'8[ e'' a' e''] + \stemNeutral + e'8[ e'8 e'8 e'8] +} + +\score +{ + \music + \layout { + \context { + \Staff + \override NoteSpacing #'stem-spacing-correction = #0.6 + } + } +} +@end lilypond + +@cindex rythmes réguliers +@cindex espacement régulier +@cindex régulier, espacement + +Chaque mesure de ce fragment comporte des notes d'égale valeur, ce qui +devrait se constater au niveau de l'espacement. Malheureusement, notre +œil nous trompe@tie{}: non seulement il considère la distance séparant +deux têtes de notes mais, de surcroît, il prend en compte l'espace +entre deux hampes. Par voie de conséquence, une succession de notes +hampe en haut puis hampe en bas devrait comporter un espace accru et, +dans une situation inverse, être plus resserrée, sans oublier de +considérer la hauteur de chacune de ces notes. La deuxième ligne +comporte de tels aménagements alors que, dans la première ligne, la +succession hampe descendante puis montante laisse apparaître des notes +resserrées. Un maître graveur ajusterait les espaces pour obtenir un +rendu qui flatte l'œil. + +Autre effet d'optique -- que d'ailleurs LilyPond prend en considération +-- l'espace entre la hampe et la barre de mesure. Lorsqu'une barre est +précédée d'une hampe montante, il est judicieux d'accroître l'espace +qui les sépare pour éviter cette sensation de tassement. Une note dont +la hampe va vers le bas ne nécessite pas un tel ajustement. + +@node Lignes supplémentaires +@unnumberedsubsec Lignes supplémentaires +@translationof Ledger lines + +@cindex lignes supplémentaires +@cindex collisions + +Les lignes supplémentaires sont une gageure pour le typographe@tie{}: +les différents symboles musicaux doivent être suffisamment rapprochés +pour que le lecteur identifie la hauteur au premier coup d'œil. Vous +noterez, dans l'exemple qui suit, que les lignes supplémentaires sont un +peu plus épaisses que celles de la portée. Par ailleurs, un maître +graveur écourtera la ligne supplémentaire en présence d'une altération. +LilyPond, dans sa recherche d'efficacité, adopte ces pratiques. + +@multitable @columnfractions .25 .25 .25 .25 +@item @tab + +@iftex +@sourceimage{baer-ledger,3cm,,} +@end iftex +@ifnottex +@sourceimage{baer-ledger,,,png} +@end ifnottex + +@tab + +@iftex +@sourceimage{lily-ledger,3cm,,} +@end iftex +@ifnottex +@sourceimage{lily-ledger,,,png} +@end ifnottex + +@end multitable + + +@node Tailles +@unnumberedsubsec Tailles +@translationof Optical sizing + +Une même œuvre peut être imprimée dans différents formats -- d'une +partie instrumentale au conducteur format de poche. Les graveurs +traditionnels utilisaient alors des poinçons différents pour obtenir le +meilleur rendu selon la taille de la partition. L'avènement des fontes +digitalisées permet d'obtenir n'importe quelle taille à partir d'un +simple tracé. Bien que ceci constitue un progrès en soi, il nous faut +cependant nuancer@tie{}: les glyphes sont moins forts lorsqu'ils sont de +taille réduite. + +Pour les besoins de lilyPond, nous avons créé des polices de graisse +différente selon la taille. Voici ce que produit LilyPond dans une +taille de portée de 26@tie{}points@tie{}: + +@quotation +@iftex +@sourceimage{pdf/size26,,23mm,} +@end iftex +@ifnottex +@sourceimage{size26,,,png} +@end ifnottex +@end quotation + +@noindent +et la même musique en 11@tie{}points, grossie de 236@tie{}% pour obtenir +une taille identique à l'image précédente@tie{}: + +@quotation +@iftex +@sourceimage{pdf/size11,,23mm,} +@end iftex +@ifnottex +@sourceimage{size11,,,png} +@end ifnottex +@end quotation + +@noindent +Comme vous le constatez, LilyPond imprime des lignes un peu plus +épaisses pour garantir une meilleure lecture à taille réduite. + +@ignore +This also allows staves of different sizes to coexist peacefully when +used together on the same page: + +@c TODO: are the stems in this example the right thickness? How should +@c line weights be scaled for small staves? + +@c Grieg's Violin Sonata Op. 45 +@lilypond[indent=1.5cm] +global = { + \time 6/8 + \key c \minor +} + +\new Score << + \new Staff \with { + fontSize = #-4 + \override StaffSymbol #'staff-space = #(magstep -4) + \override StaffSymbol #'thickness = #(magstep -3) + } + \relative c' { + \global + \set Staff.instrumentName = #"Violin" + c8.(\f^> b16 c d) ees8.(^> d16 c b) + g8.(^> b16 c ees) g8-.^> r r + R2. + } + \new PianoStaff << + \set PianoStaff.instrumentName = #"Piano" + \new Staff \relative c' { + \global + s2. + s4. s8 r8 r16 + 4.^> 8 r r + } + \new Staff \relative c { + \global + \clef "bass" + << { + \once \override DynamicText #'X-offset = #-3 + 2.~->^\f + 4.~ 8 + } \\ { + 2.~ + 4.~ 8 + } >> + r8 r16 16 + 4.-> 8 r r + } + >> +>> +@end lilypond +@end ignore + +@node La raison de tous ces efforts +@unnumberedsubsec La raison de tous ces efforts +@translationof Why work so hard? + +Les musiciens sont normalement plus concentrés sur la manière dont ils +jouent la musique que sur son apparence, aussi ces pinailleries sur des +détails de typographie peuvent paraître académiques. Il n'en est rien. +La partition contribue, au même titre que bien d'autres éléments, à +l'existence même d'une représentation@tie{}: tout doit être fait pour +que l'interprète donne le meilleur de lui-même, et ce qui est peu clair +ou pas agréable à lire constitue un frein. + +La musique gravée de manière traditionnelle présente des symboles denses +et des lignes épaisses. Ceci produit un résultat équilibré, à plus +forte raison si la partition est éloignée du lecteur, comme lorsqu'elle +est posée sur un pupitre. Une répartition attentive des blancs permet +de resserrer la musique sans pour autant tasser les symboles et, au +final, diminue le nombre de tournes -- avantage indéniable. + +C'est une caractéristique commune de la typographie. La présentation +devrait être soignée, non seulement pour l'amour de l'art, mais plus +spécialement parce qu'elle vient en aide au lecteur dans sa tâche. +Pour du matériel d'interprétation tel que les partitions de musique, +ceci est doublement important@tie{}: les musiciens sont limités dans +leur attention. Au moins leur attention se porte sur la lecture, au +plus ils peuvent se concentrer sur l'exécution. En d'autres termes, une +meilleure typographie se traduit par une meilleure interprétation. + +Ces considérations montrent bien que la typographie musicale est un art +à la fois complexe et plein de subtilités, et qu'elle recquiert des +compétences particulières que la majorité des musiciens ne possède pas. +LilyPond s'efforce de transposer le degré d'excellence de la gravure +traditionnelle à l'ère de l'ordinateur et donc de le mettre à +disposition de tous les musiciens. Nous avons affiné nos algorithmes, +le @emph{design} de nos fontes et les réglages du programme de manière à +produire des partitions d'une qualité comparable aux bonnes vieilles +éditions que nous avons toujours autant de plaisir à voir et à +interpréter. + + +@node La gravure automatisée +@section La gravure automatisée +@translationof Automated engraving + +@cindex gravure automatisée +@cindex automatisée, gravure + +Nous allons maintenant examiner les éléments nécessaires à la création +d'un logiciel capable d'imiter le rendu des partitions gravées à +l'ancienne. Nous commencerons par voir comment inculquer à l'ordinateur +les @qq{bonnes manières} de la présentation. Nous nous attarderons +ensuite sur l'analyse comparative par rapport aux éditions +traditionnelles, avant de considérer le degré de flexibilité à y inclure +pour être en mesure de gérer les différents cas de figure particuliers à +la notation. + +@menu +* Concours de beauté:: l'option du moindre mal +* Modélisation et banc d'essai:: l'évaluation des performances +* Règles de formatage:: l'architecture flexible +@end menu + +@node Concours de beauté +@unnumberedsubsec Concours de beauté +@translationof Beauty contests + +Quels sont en réalité nos critères de formatage@tie{}? Considérant +l'image suivante, laquelle de ces trois configurations devrions-nous +choisir pour formater la liaison@tie{}? + +@lilypond +\relative c { + \clef bass + \once \override Slur #'positions = #'(1.5 . 1) + e8[( f] g[ a b d,)] r4 + \once \override Slur #'positions = #'(2 . 3) + e8[( f] g[ a b d,)] r4 + e8[( f] g[ a b d,)] r4 +} +@end lilypond + +Seuls quelques ouvrages traitent de l'art de graver la musique. Ils ne +contiennent malheureusement que des généralités et quelques exemples. +La lecture de telles règles est certes instructive, mais est très loin +de nous conduire à un algorithme prêt à être implémenté dans un +programme. Dans la pratique, suivre les instructions de ces traités +aboutirait à des algorithmes qui figent bon nombre d'exceptions. +Répertorier tous ces cas de figure demanderait un travail considérable, +qui finalement ne les couvrirait pas tous. + +@quotation +@iftex +@sourceimage{ross-beam-scan,7cm,,} +@end iftex +@ifnottex +@sourceimage{ross-beam-scan,,,.jpg} +@end ifnottex +@end quotation + +@emph{Règles de formatages définies par l'exemple. Image tirée de +l'ouvrage de Ted Ross @qq{The Art of Music Engraving}} + +Plutôt que d'écrire une foultitude de règles qui embrasserait tous les +cas de figure possibles et imaginables en matière de mise en forme, nous +avons préféré inculquer à LilyPond un certain nombre d'objectifs qui lui +permette de choisir entre différentes alternatives selon leur +esthétique. Pour ce faire, chacune des configurations est analysée en +terme de moins bonne qualité, et nous opterons pour celle étant la moins +mauvaise. + +Voici, à titre d'exemple, trois configurations possibles pour le tracé +d'une liaison@tie{}; Lilypond leur attribue individuellement une @qq{note +de laideur}. Le premier essai se voit attribuer 15,39 points notamment +pour l'effleurement de la tête de note. + +@lilypond +\relative c { + \clef bass + \once \override Slur #'positions = #'(1.5 . 1) + e8[(_"15.39" f] g[ a b d,)] r4 +} +@end lilypond + +La liaison ci-dessous reste à une distance uniforme des notes, mais il +faut tenir compte du fait qu'elle n'est pas rattachée aux première et +dernière notes. Ceci nous fait 1,71 points pour le début de la +liaison et 9,37 pour la terminaison -- qui est beaucoup plus éloignée de +la dernière note. Par ailleurs, la liaison monte alors que la mélodie +redescend, ce qui entraîne une pénalité de 2 points. Ceci nous fait un +total de 13,08 points de laideur. + +@lilypond +\relative c { + \clef bass + \once \override Slur #'positions = #'(2 . 3) + e8[(_"13.08" f] g[ a b d,)] r4 +} +@end lilypond + +Quant à la liaison qui suit, seule la terminaison reste éloignée de la +dernière note, ce qui donne 10,04 points de laideur auxquels nous +ajoutons 2 autres points pour la pente ascendante. Cette configuration +étant la moins laide, ou plutôt la version la plus satisfaisante, nous +la sélectionnons. + +@lilypond +\relative c { + \clef bass + e8[(_"12.04" f] g[ a b d,)] r4 +} +@end lilypond + +Cette manière de procéder est générique, et nous y avons recours dans +bon nombre de situations, comme pour déterminer la pente d'un lien de +croches, formater des accords liés, formater des accords avec des +valeurs pointées, positionner les sauts de ligne ou de page. Cette +technique est consommatrice de temps de calcul, dans la mesure où elle +examine de nombreuses possibilités ; néanmoins, le jeu en vaut la +chandelle, puisque le résultat final est bien meilleur et nous rapproche +des éditions traditionnelles. + +@node Modélisation et banc d'essai +@unnumberedsubsec Modélisation et banc d'essai +@translationof Improvement by benchmarking + +Au fil du temps, le rendu de LilyPond a évolué, et continue de +s'améliorer lorsqu'on le compare aux partitions gravées à la main. + +Voici un extrait de l'une de nos éditions de référence (Bärenreiter BA +320)@tie{}: + +@iftex +@sourceimage{baer-sarabande-hires,16cm,,} +@end iftex +@ifnottex +@sourceimage{baer-sarabande,,,png} +@end ifnottex + +@noindent +et ce que génère l'une des anciennes versions de LilyPond -- la 1.4, +publiée en mai 2001@tie{}: + +@iftex +@sourceimage{pdf/lily14-sarabande,16cm,,} +@end iftex +@ifnottex +@sourceimage{lily14-sarabande,,,png} +@end ifnottex + +@noindent La sortie LilyPond est certes lisible, et acceptable pour +beaucoup de gens. Cependant, une comparaison minutieuse avec une +édition gravée à la main révèle de nombreuses erreurs de +formatage@tie{}: + +@iftex +@sourceimage{lily14-sarabande-annotated-hires,16cm,,} +@end iftex +@ifnottex +@sourceimage{lily14-sarabande-annotated,,,png} +@end ifnottex + +@itemize @bullet +@item trop d'espace avant la métrique +@item la hampe des notes ligaturées est trop longue +@item les deuxième et quatrième mesures sont trop tassées +@item la liaison est affreuse +@item les indications de trille sont trop grosses +@item les hampes sont trop fines +@end itemize + +@noindent +Passons sous silence les notes et indications absentes, tout comme +la faute de hauteur@tie{}! + +En ajustant les algorithmes, paramètres et polices concernés, nous avons +pu améliorer le résultat. La deuxième ligne ci-dessous a été générée +par la version la plus récente de LilyPond (@version{}). + +@iftex +@sourceimage{baer-sarabande-hires,16cm,,} +@end iftex +@ifnottex +@sourceimage{baer-sarabande,,,png} +@end ifnottex + +@lilypond[staffsize=17.5,line-width=15.9\cm] +\relative c { + \clef "bass" + \key d \minor + \time 3/4 + \mergeDifferentlyDottedOn + << {\slurDashed d8.-\flageolet( e16) e4.-\trill( d16 e)} + \\ {d4_2 a2} + >> + \slurDashed + 4. e8( d c) + \slurSolid + bes g' f e16( f g_1 a_2 bes_3 d,_2) + \slurDashed + cis4.-\trill b8_3( a g) + << {\slurDashed d'8.( e16) e4.-\trill( d16 e)} + \\ {4 a2} + >> +} +@end lilypond + +@noindent +Sans être un clone de l'édition de référence, cette sortie est plus +proche d'une qualité de publication que les précédentes. + +@node Règles de formatage +@unnumberedsubsec Règles de formatage +@translationof Getting things right + +Nous pouvons aussi évaluer les capacités de LilyPond dans ses choix, en +comparant ses résultats avec ce que génèrent d'autres d'autres logiciels +du marché. Notre choix s'est porté sur Finale@tie{}2008, l'un des +logiciels les plus populaires notamment en Amérique du Nord. Son plus +proche concurrent est Sibelius, très répandu sur le marché européen. + +Pour cette analyse comparative, nous avons choisi la fugue en sol mineur +du premier livre du Clavier bien tempéré de Bach (BWV@tie{}861). En +voici le thème@tie{}: + +@lilypond +\relative c' { + \key g \minor + \clef "treble_8" + r8 d ees g, fis4 g + r8 a16 bes c8 bes16 a bes8 +} +@end lilypond + +@noindent + +Nous nous sommes intéressés aux sept dernières mesures (27 à 34) de +l'œuvre, que nous avons saisies à la fois avec Finale et avec LilyPond. +C'est à cet endroit que le sujet est rappelé, dans une strette à trois +voix, avant de mener à la conclusion. Pour ce qui est de Finale, nous +nous sommes abstenus d'effectuer quelque ajustement que ce soit dans le +but d'obtenir un résultat par défaut. Ceci permet de vraiment apprécier +conjointement ce que génère chacun des deux logiciels sans retouche +aucune. Nous avons toutefois redimensionné la page pour les besoins de +cet essai et forcé la musique à tenir sur deux systèmes pour que la +comparaison soit plus évidente. En effet, Finale crée par défaut deux +systèmes de trois mesure, et un troisième -- s'étalant sur toute la +ligne -- pour la dernière mesure. + +La plupart des différences entre ces deux éditions -- Finale pour la +première image -- se situent dans les mesures 28 et 29@tie{}: + +@iftex +@sourceimage{pdf/bwv861mm28-29,14cm,,} +@end iftex +@ifnottex +@sourceimage{bwv861mm28-29,,,png} +@end ifnottex + +@lilypond[staffsize=19.5,line-width=14\cm] +global = {\key g \minor} + +partI = \relative c' { + \voiceOne + fis8 d' ees g, fis4 g + r8 a16 bes c8 bes16 a d8 r r4 +} + +partII = \relative c' { + \voiceTwo + d4 r4 r8 d'16 c bes8 c16 d + ees8 d c ees a, r r4 +} +partIII = \relative c' { + \voiceOne + r2 r8 d ees g, fis4 g r8 a16 bes c8 bes16 a +} +partIV = \relative c { + \voiceTwo + d4 r r2 + r8 d ees g, fis4 a +} + +\score { + << + % \set Score.barNumberVisibility = #all-bar-numbers-visible + % required in 2.13 + \set Score.currentBarNumber = #28 + \bar "" + \new PianoStaff << + \new Staff = "RH" << + \global + \new Voice = "voiceI" { \partI } + \new Voice = "voiceII" { \partII } + >> + + \new Staff = "LH" << + \clef "bass" + \global + \new Voice = "voiceIII" { \partIII } + \new Voice = "voiceIV" { \partIV } + >> + >> + >> + \layout { + \context { + \Staff + \remove "Time_signature_engraver" + } + \context { + \PianoStaff + \override StaffGrouper #'between-staff-spacing #'padding = #1 + } + } +} +@end lilypond + +Entre autres défauts du résultat brut de Finale, nous notons : +@itemize @bullet +@item La majorité des ligatures est trop éloignée de la portée. +Lorsqu'une ligature se retrouve vers le milieu de la portée, la hauteur +des hampes qui la portent est d'environ une octave. Néanmoins, un +maître graveur les raccourcira dès lors que cette ligature est en dehors +de la portée d'une section à plusieurs voix. Les règles de ligatures de +Finale peuvent être améliorées à l'aide du greffon @emph{Patterson +Beams}, que nous avons décidé de laisser de côté pour cet exemple. +@item Finale n'ajuste pas la position des notes qui s'entrecroisent. Il +en résulte une lecture peu évidente lorsque les voix supérieure et +inférieure de croisent temporairement@tie{}: + +@c KEEPLY +@lilypond +collide = \once \override NoteColumn #'force-hshift = #0 +\new Score << + \new Voice = "sample" \relative c''{ + \key g \minor + << + {\voiceOne g4 \collide g4} + \new Voice {\voiceTwo bes \collide bes} + >> + } + \new Lyrics \lyricsto "sample" \lyricmode { "bien " " mauvais" } +>> +@end lilypond + +@item Finale positionne tous les silences d'une même voix à une hauteur +fixe de la portée. Si l'utilisatuer peut les déplacer à loisir, le +logiciel ne se soucie en rien de ce qui se passe dans les autres voix. +Par chance, il n'y a aucune collision entre un silence et une note dans +cet exemple@tie{}; cela tient plutôt à la position des notes qu'à celle +des silences. Tout compte fait, le mérite en revient à Bach plutôt qu'à +Finale d'éviter les collisions. + +@end itemize + +Cet exemple ne vise en aucun cas à démontrer que Finale est incapable de +fournir un résultat admirable. Au contraire, un utilisateur chevronné +pourra obtenir quelque chose d'excellent, mais au prix d'une bonne dose +tant de dextérité que de temps. La différence fondamentale entre +LilyPond et les générateurs de partition commerciaux réside dans le fait +suivant@tie{}: LilyPond tend à réduire l'intervention de l'utilisateur à +sa plus imple expression, alors que les autres programmes font tout pour +avoir une interface attractive pour effectuer toutes les retouches. + +Par ailleurs, Finale commet une erreur particulièrement flagrante@tie{}: +il manque un bémol à la mesure 33 + +@quotation +@iftex +@sourceimage{pdf/bwv861mm33-34-annotate,7.93cm,,} +@end iftex +@ifnottex +@sourceimage{bwv861mm33-34-annotate,,,png} +@end ifnottex +@end quotation + +@noindent +Il faut un bémol pour annuler le bécarre qui se trouve dans la même +mesure, mais Finale ne s'en rend pas compte parce qu'il se trouve dans +une autre voix. Ainsi, l'utilisateur doit non seulement recourir à un +greffon pour gérer les ligatures, repositionner têtes de note et +silences, il lui faut de surcroit vérifier qu'à chaque mesure les +altérations sont en conformité indépendament des voix s'il veut être à +l'abri de toute interruption d'une répétition pour une erreur dans la +partition. + +S'il vous plaît d'examiner ces sept mesures de plus près, elles sont +reproduites en intégralité à la fin de cet essai, ainsi que quatre +autres versions. Vous noterez certaines variations entre les éditions +traditionnelles, et LilyPond tient un rang acceptable. Il reste tout de +même quelques petits défauts à régler, comme le raccourcissement peut +être exagéré des hampes@tie{}; il y a donc encore de quoi faire pour les +développeurs. + +La typographie relevant d'un jugement humain, les personnes ne peuvent +être remplacées. Beaucoup de tâches rébarbatives peuvent cependant être +automatisées@tie{}: si LilyPond parvenait à gérer la plupart des +situations usuelles correctement, ce serait un grand pas en avant pour +l'édition informatisée. Au fil du temps, le logiciel pourra être révisé +afin d'automatiser de plus en plus d'actions, de sorte que les +ajustements manuels seront de moins en moins nécessaires. Les cas +particuliers peuvent être traités manuellement, notamment grâce à +l'architecture flexible de LilyPond. + + +@node De la théorie à la pratique +@section De la théorie à la pratique +@translationof Building software + +Nous allons nous intéresser, dans les paragraphes qui suivent, aux +arbitrages en terme de programmation qui ont participé à l'élaboration +de LilyPond. + +@menu +* Représentation de la musique:: le format de saisie +* Les constituants de la gravure:: quels symboles graver +* Flexibilité architecturale:: +@end menu + + +@node Représentation de la musique +@unnumberedsubsec Représentation de la musique +@translationof Music representation + +@cindex syntaxe +@cindex structures récursives +@cindex récursivité des structures + +Le format de saisie idéal pour un système évolué de formatage consiste +en la description abstraite du contenu. Dans le cas qui nous occupe, il +s'agit tout bonnement de la musique. Cela n'est pas sans poser un +énorme problème@tie{}: comment définir @emph{ce qu'est} la +musique@tie{}? Pour résoudre ce problème, nous l'avons inversé. Au +lieu de définir ce qu'est la musique, notre programme sert de +définition@tie{}: nous avons écrit un programme capable de produire des +partitions, et avons ajusté son format de saisie pour être aussi léger +que possible. Lorsque le format ne peut plus être simplifié, nous +avons par définition atteint le contenu même. Autrement dit, notre +programme utilise la définition formelle d'un document musical. + +La syntaxe est également celle de l'interface utilisateur de LilyPond, +puisqu'elle peut être facilement tapée au clavier@tie{}: + +@example +@{ + c'4 d'8 +@} +@end example + +@noindent +sont un do médium noire et un ré croche juste au-dessus. + +@lilypond[quote] +{ + c'4 d'8 +} +@end lilypond + +À petite échelle, une telle syntaxe est pratique. À plus grande +échelle, une structuration est nécessaire. Sans cela, comment saisir +des pièces aussi complexes qu'un opéra ou une symphonie@tie{}? La +structure est construite selon le même concept que les expressions +musicales@tie{}: c'est en combinant de petits fragments qu'une musique +plus complexe peut être représentée. Par exemple@tie{}: + +@lilypond[quote,verbatim,fragment,relative=1] +f4 +@end lilypond + +@noindent +Quand des notes sont combinées simultanément, il suffit de les insérer +entre @code{<<} et @code{>>}@tie{}: + +@example +<> +@end example + +@lilypond[quote,fragment,relative=1] +\new Voice { <> } +@end lilypond + +@noindent +Insérées dans une paire d'accolades @code{@{@tie{}@dots{}@tie{}@}}, ces +expressions sont intégrées dans une séquence@tie{}: + +@example +@{ f4 <> @} +@end example + +@lilypond[quote,relative=1,fragment] +{ f4 <> } +@end lilypond + +@noindent +Ceci constitue une nouvelle expression, qui peut être à son tour +combinée avec une autre expression simultanée (en l'occurence une +blanche) à l'aide de @code{<<}, @code{\\} et @code{>>}@tie{}: + +@example +<< g2 \\ @{ f4 <> @} >> +@end example + +@lilypond[quote,fragment,relative=2] +\new Voice { << g2 \\ { f4 <> } >> } +@end lilypond + +De telles structures récursives peuvent être définies formellement et +de manière ordonnée avec une @emph{grammaire libre de tout contexte}. +Le code d'analyse de la saisie est également généré depuis cette +grammaire. Autrement dit, la définition de la syntaxe de LilyPond est +claire et sans ambiguïté. + +Ce sont la syntaxe et l'interface qui concernent les utilisateurs. +Elles sont sujettes à discussion, puisque relatives aux goûts de chacun. +Bien que ces discussions soient intéressantes, elles ne sont pas +productives. À l'échelle de LilyPond, l'importance du format de saisie +est minime@tie{}: inventer une syntaxe claire est bien plus aisé +qu'écrire un code de mise en page décent. Ceci est d'ailleurs +illustré par le nombre de lignes de code de ces composants +respectifs@tie{}: l'analyse du texte de saisie et sa représentation +pèsent moins de 10@tie{}% du code. + +Dans la conception des structures utilisées par LilyPond, nous avons +pris certaines options divergentes des autres logiciels. Considérons la +nature par essence hiérarchique de la notation musicale@tie{}: + +@lilypond[quote,fragment] +<< +\new Staff \relative c'' { + \key g \major + \time 3/4 + d4 g,8 a b c d4 g, g +} +\new Staff \relative c' { + \clef "bass" + \key g \major + 2 a4 b2. +} +>> +@end lilypond + +Nous y voyons des hauteurs regroupées en accords appartenant à des +mesures elles-même rattachées à des portées. On pourrait représenter +cela par un système de boîtes imbriquées@tie{}: + +@quotation +@iftex +@sourceimage{pdf/nestedboxes,,4cm,} +@end iftex +@ifnottex +@sourceimage{nestedboxes,,,png} +@end ifnottex +@end quotation + +Cette structure est cependant réductrice car reposant sur des postulats +extrêmement restrictifs. Cela devient plus évident dès lors que la +musique se complique@tie{}: + +@lilypond[quote] +\layout { + \context { + \Score + \remove "Timing_translator" + \remove "Default_bar_line_engraver" + } + \context { + \Staff + \consists "Timing_translator" + \consists "Default_bar_line_engraver" + } +} + +\new PianoStaff << + \new Staff = "RH" << + \new Voice = "I" \relative c''' { + \time 3/4 + \voiceOne + \times 6/7 {g8 g g g g g g} + \oneVoice + r4 r4\fermata + } + \new Voice = "II" \relative c' { + \voiceTwo + c4 + \times 4/5 { + 8 f g + \change Staff = "LH" \oneVoice + \stemUp g,( c} + r4 + \override Stem #'cross-staff = ##t + \override Stem #'length = #12 + ) r\fermata + } + >> + \new Staff = "LH" << + \new Voice = "III" \relative c' { + \time 2/4 + \clef "bass" + g4 \stopStaff s + \startStaff s2*2 + } + >> +>> +@end lilypond + +Ici, les portées débutent et s'arrêtent n'importe où, les voix passent +d'une portée à l'autre, et parfois même occupent deux portées. Nombre +de logiciels auront d'énormes difficultés à reproduire cet exemple, pour +la bonne et simple raison qu'ils se basent sur le modèle hiérarchique de +boîtes imbriquées. LilyPond, quant à lui, tend à préserver la +dichotomie entre le fromat de saisie et une structure aussi flexible que +possible. + + +@node Les constituants de la gravure +@unnumberedsubsec Les constituants de la gravure +@translationof What symbols to engrave? + +@cindex gravure +@cindex typographie +@cindex graveur +@cindex greffon +@cindex module + +Si le processus de formatage se charge de décider où positionner les +symboles, encore faudrait-il savoir @emph{quels} symboles doivent +apparaitre -- ou bien, quelle notation utiliser. + +La notation musicale consitue une forme d'enregistrement de la musique +qui a d'ailleurs évolué sur un millier d'années. La forme que nous +utilisons de nos jours remonte au début de la Renaissance. Bien que ses +fondements n'aient pas changé -- des têtes de note réparties sur une +portée à cinq lignes --, certains détails sont apparus qui permettent de +rendre compte des apports de la notation contemporaine. La notation +musicale couvre cinq siècles de musique, allant de la simple monodie à +de gigantesques contrepoints orchestraux. + +Comment intégrer un tel monstre aux si nombreux visages ? Notre solution +est de clairement distinguer la notation -- @emph{quels} symboles +utiliser -- de la gravure -- @emph{où} les placer. Pour appréhender la +notation, nous l'avons disséquée en éléments simples (et +programmables)@tie{}: chaque type de symbole est géré par un module -- +ou greffon -- différent. Tous ces modules sont entièrement +configurables et indépendants, chacun pouvant être développé et amélioré +séparément. Nous appelons ces modules des graveurs (@emph{engravers} en +anglais), par analogie avec ces professionels qui mettent en forme +graphiquement les idées musicales. + + +Le module le plus basique, qu'on appelle @code{Note_heads_engraver}, +crée les têtes de notes@tie{}: + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" + +\score { + \topVoice + \layout { + \context { + \Voice + \remove "Stem_engraver" + \remove "Phrasing_slur_engraver" + \remove "Slur_engraver" + \remove "Script_engraver" + \remove "Beam_engraver" + \remove "Auto_beam_engraver" + } + \context { + \Staff + \remove "Accidental_engraver" + \remove "Key_engraver" + \remove "Clef_engraver" + \remove "Bar_engraver" + \remove "Time_signature_engraver" + \remove "Staff_symbol_engraver" + \consists "Pitch_squash_engraver" + } + } +} +@end lilypond + +@noindent +Puis le module @code{Staff_symbol_engraver} génère les objets représentant +les lignes de portée@tie{}: + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" + +\score { + \topVoice + \layout { + \context { + \Voice + \remove "Stem_engraver" + \remove "Phrasing_slur_engraver" + \remove "Slur_engraver" + \remove "Script_engraver" + \remove "Beam_engraver" + \remove "Auto_beam_engraver" + } + \context { + \Staff + \remove "Accidental_engraver" + \remove "Key_engraver" + \remove "Clef_engraver" + \remove "Bar_engraver" + \consists "Pitch_squash_engraver" + \remove "Time_signature_engraver" + } + } +} +@end lilypond + +@noindent +le module @code{Clef_engraver} fournit au @code{Note_head_engraver} +la hauteur à laquelle doit être placée chaque tête de note@tie{}: + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" + +\score { + \topVoice + \layout { + \context { + \Voice + \remove "Stem_engraver" + \remove "Phrasing_slur_engraver" + \remove "Slur_engraver" + \remove "Script_engraver" + \remove "Beam_engraver" + \remove "Auto_beam_engraver" + } + \context { + \Staff + \remove "Accidental_engraver" + \remove "Key_engraver" + \remove "Bar_engraver" + \remove "Time_signature_engraver" + } + } +} +@end lilypond + +@noindent +et, enfin, les hampes et leurs crochets sont gérés par le +@code{Stem_engraver}@tie{}: + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" + +\score { + \topVoice + \layout { + \context { + \Voice + \remove "Phrasing_slur_engraver" + \remove "Slur_engraver" + \remove "Script_engraver" + \remove "Beam_engraver" + \remove "Auto_beam_engraver" + } + \context { + \Staff + \remove "Accidental_engraver" + \remove "Key_engraver" + \remove "Bar_engraver" + \remove "Time_signature_engraver" + } + } +} +@end lilypond + +@noindent +Le module @code{Stem_engraver} est appelé dès qu'une tête de note +apparaît. Pour chaque note rencontrée -- ou groupe de notes s'il s'agit +d'un accord --, un objet hampe est créé et attaché à la tête de note. +Si l'on ajoute les modules en charge des ligatures, des liaisons, des +accents, des barres de mesure, de la métrique et de l'armure, nous avons +tout ce qui est nécessaire à une partition. + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" +\score { \topVoice } +@end lilypond + +@cindex polyphony +@cindex engraving multiple voices +@cindex contexts + +Le principe décrit plus haut fonctionne très bien pour de la musique +monophonique, mais qu'en est-il de la polyphonie@tie{}? Dans ce cas, +plusieurs voix peuvent partager la même portée@tie{}: + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" +\new Staff << \topVoice \\ \botVoice >> +@end lilypond + +Ici, la portée et les altérations sont partagées mais les hampes, +liaisons, liens, etc. dépendent de chaque voix. De plus, les graveurs +doivent être regroupés. Les graveurs de têtes de note, hampes, +liaisons, etc. sont donc inclus dans un groupe appelé @emph{Voice context} +(contexte de voix), alors que l'armure, les altérations, les +barres de mesures, etc. sont placées dans un groupe @emph{Staff context} +(contexte de portée). Dans le cas d'une polyphonie, un contexte de +portée contient plusieurs contextes de voix. De même, plusieurs +contextes de portée peuvent être assemblés dans un contexte de partition +(@emph{Score context})@tie{}: + +@lilypond[quote,ragged-right] +\include "engraver-example.ily" +\score { + << + \new Staff << \topVoice \\ \botVoice >> + \new Staff << \pah \\ \hoom >> + >> +} +@end lilypond + +@seealso +Référence des propriétés internes : +@rinternals{Contexts}. + + +@node Flexibilité architecturale +@unnumberedsubsec Flexibilité architecturale +@translationof Flexible architecture + +Pour ses premiers pas, LilyPond était totalement écrit en langage +C++@tie{}; les programmeurs gravaient les fonctionnalités du programme +dans le marbre. Cela s'est avéré peu satisfaisant pour plusieurs +raisons@tie{}: + +@itemize + +@item Il peut arriver que LilyPond commette une erreur, auquel cas +l'utilisateur doit pouvoir déroger aux décisions arbitraires, et donc +se servir du moteur de formatage. Par conséquent, les règles et +paramètres ne peuvent être fixés lors de la compilation, mais doivent +être accessibles lors de l'exécution. + +@item Graver est une affaire de jugement visuel, donc une affaire de goût. +Nous savons que les utilisateurs peuvent ne pas être d'accord avec nous. +Il faut donc qu'il aient accès aux définitions des styles +typographiques. + +@item Enfin, nous redéfinissons continuellement les règles de formatage, +et avons donc besoin d'une approche souple des règles. Le C++ implique +une méthode de groupement des règles qui ne correspond pas au +fonctionnement de la notation musicale. + +@end itemize + +@cindex Scheme, langage de programmation +@cindex langage de programmation Scheme + +Nous avons résolu ces problème par l'adjonction d'un interpréteur pour +le Scheme et la réécriture de parties entières de LilyPond dans ce +langage. L'architecture du programme repose sur la notion d'objets +graphiques que l'on peut décrire par des variables ou des fonctions +Scheme. Elle doit prendre en compte les règles de formatage, le style +typographique et les décisions de formatage individuelles. +L'utilisateur de LilyPond peut accéder directement à la majorité de ces +contrôles. + +La mise en page dépend des variables Scheme. Par exemple, la variable +@var{direction} définie pour de nombreux objets, encode le choix entre +haut et bas (ou gauche et droite). L'image qui suit présente deux +accords, accentués et arpégés. Pour le premier accord, la direction de +chaque objet est vers le bas (ou la gauche). Les objets sont dirigés +vers le haut (ou la droite) pour le second. + +@lilypond[quote,ragged-right] +\new Score \with { + \override SpacingSpanner #'spacing-increment = #3 + \override TimeSignature #'transparent = ##t +} \relative c' { + \stemDown 4_>-\arpeggio + \override Arpeggio #'direction = #RIGHT + \stemUp 4^>-\arpeggio +} +@end lilypond + +@cindex score formatting +@cindex formatting a score +@cindex formatting rules + +@noindent +Le processus de mise en forme d'une partition consiste à lire et +écrire des variables d'objets. Certaines variables ont une valeur +prédéfinie. Par exemple, l'épaisseur de nombreuses lignes -- +caractéristiques d'un style typographique -- est préétablie. La changer +entraîne un changement du style typographique. + +@lilypond[quote,ragged-right] +fragment = { + \clef bass f8 as8 + c'4-~ c'16 as g f e16 g bes c' des'4 +} +<< + \new Staff \fragment + \new Staff \with { + \override Beam #'beam-thickness = #0.3 + \override Stem #'thickness = #0.5 + \override Bar #'thickness = #3.6 + \override Tie #'thickness = #2.2 + \override StaffSymbol #'thickness = #3.0 + \override Tie #'extra-offset = #'(0 . 0.3) + } + \fragment +>> +@end lilypond + +Les valeurs prédéfinies de certaines variables font aussi partie des +règles de formatage. Chaque objet possède des variables contenant des +procédures. Ces procédures réalisent le formatage prédéfini, dont +l'apparence peut être changée en remplaçant ces procédures par d'autres. +Dans l'exemple suivant, la règle permettant à l'objet @qq{tête de note} +de dessiner son symbole est modifiée au cours de l'extrait musical : + +@lilypond[quote,ragged-right] +#(set-global-staff-size 30) + +#(define (mc-squared grob orig current) + (let* ((interfaces (ly:grob-interfaces grob)) + (pos (ly:grob-property grob 'staff-position))) + (if (memq 'note-head-interface interfaces) + (begin + (ly:grob-set-property! grob 'stencil + (grob-interpret-markup grob + (make-lower-markup 0.5 + (case pos + ((-5) "m") + ((-3) "c ") + ((-2) (make-smaller-markup (make-bold-markup "2"))) + (else "bla"))))))))) + +\new Voice \relative c' { + \stemUp + \set autoBeaming = ##f + \time 2/4 + 4 + \once \override NoteHead #'stencil = #note-head::brew-ez-stencil + \once \override NoteHead #'font-size = #-7 + \once \override NoteHead #'font-family = #'sans + \once \override NoteHead #'font-series = #'bold + 4 + \once \override NoteHead #'style = #'cross + 4 + \applyOutput #'Voice #mc-squared + 4 + << + { d8[ es-( fis^^ g] fis2-) } + \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 } + >> +} +@end lilypond + + +@node Démonstration par l'exemple +@section Démonstration par l'exemple +@translationof Putting LilyPond to work + +@cindex simple examples +@cindex examples, simple + +Nous vous avons montré ce que devrait être la gravure musicale, et +comment nous avons construit notre logiciel pour imiter cette apparence. +Nous nous sommes énormément investis dans cette construction. En guise +de récompense pour ce long travail, vous pouvez à votre tour +utiliser le programme pour imprimer votre musique. +Commençons par quelques notes@dots{} + +@lilypond[quote,relative=1] +{ + \time 2/4 + c4 c g'4 g a4 a g2 +} +@end lilypond + +@noindent +Lorsqu'on leur ajoute des accords et des paroles, on obtient une chanson +populaire@dots{} + +@lilypond[quote,ragged-right] +<< + \chords { c2 c f2 c } + \new Staff + \relative c' { + \time 2/4 + c4 c g' g a a g2 + } + \addlyrics { twin -- kle twin -- kle lit -- tle star } +>> +@end lilypond + +On peut aussi éditer de la polyphonie ou une partition pour piano. +Quant à ce qui suit, admirez l'exotisme de certaines +constructions@dots{} + +@lilypond[quote] +\header { + title = "Screech and boink" + subtitle = "Random complex notation" + composer = "Han-Wen Nienhuys" +} + +\score { + \context PianoStaff << + \new Staff = "up" { + \time 4/8 + \key c \minor + << { + \revert Stem #'direction + \change Staff = down + \set subdivideBeams = ##t + g16.[ + \change Staff = up + c'''32 + \change Staff = down + g32 + \change Staff = up + c'''32 + \change Staff = down + g16] + \change Staff = up + \stemUp + \set followVoice = ##t + c'''32([ b''16 a''16 gis''16 g''32)] + } \\ { + s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d''] + } \\ { + s4 \autoBeamOff d''8.. f''32 + } \\ { + s4 es''4 + } >> + } + + \new Staff = "down" { + \clef bass + \key c \minor + \set subdivideBeams = ##f + \override Stem #'french-beaming = ##t + \override Beam #'beam-thickness = #0.3 + \override Stem #'thickness = #4.0 + g'16[ b16 fis16 g16] + << \makeClusters { + as16 + + + } \\ { + \override Staff.Arpeggio #'arpeggio-direction =#down + 4\arpeggio + } + >> } + >> + \midi { + \context { + \Score + tempoWholesPerMinute = #(ly:make-moment 60 8) + } + } + \layout { + \context { + \Staff + \consists Horizontal_bracket_engraver + } + } +} +@end lilypond + +Ces fragments ont tous été écrits à la main, mais ce n'est pas une +obligation. Dans la mesur où le moteur de formatage est presque +complètement automatisé, il peut servir à générer du matériel imprimable +pour d'autres programmes en charge de manipuler de la musique. LilyPond +est parfaitement en mesure de convertir des bases de données musicales +aux fins de les utiliser dans des sites internet ou des présentations +multimédia. + +Vous avez constaté, au fil de notre propos, que le format source est +purement textuel et peut donc être réutilisé dans d'autres formats +basés sur une description textuelle comme @LaTeX{}, HTML ou -- ce qui +est le cas pour la documentation de LilyPond -- Texinfo. À l'aide du +script @command{lilypond-book} fournit avec LilyPond, les fragments +de code insérés feront place à une image dans le fichier résultant, +qu'il soit au format PDF ou HTML. Il existe aussi une extension pour +OpenOffice.org -- OOoLilyPond -- qui permet d'insérer des extraits dans +un document. + +Pour mieux voir LilyPond en action, consulter la documentation ou +accéder directement au logiciel, rendez-vous sur www.lilypond.org. + +@page +@node Comparatif (BWV 861) +@section Comparatif (BWV 861) +@translationof Engraved examples (BWV 861) + +Cette annexe présente quatre éditions de référence et deux éditions +informatisées des sept dernières mesures de la fugue en sol mineur +extraite du Premier livre du clavier bien tempéré de Bach +(BWV@tie{}861). + +@noindent +Bärenreiter BA5070 (Neue Ausgabe Sämtlicher Werke, Serie V, Band 6.1, +1989) : + +@iftex +@sourceimage{bwv861-baer,16cm,,} +@end iftex +@ifnottex +@sourceimage{bwv861-baer-small,,,png} +@end ifnottex + +@noindent +Bärenreiter BA5070 (Neue Ausgabe Sämtlicher Werke, Serie V, Band 6.1, +1989), à partir d'une autre source. En plus de différences au niveau +des éléments textuels, ce travail montre que, au sein d'une même maison +d'édition, les appréciations peuvent être différentes selon le +graveur@tie{}: + +@iftex +@sourceimage{bwv861-baer-alt,16cm,,} +@end iftex +@ifnottex +@sourceimage{bwv861-baer-alt-small,,,png} +@end ifnottex + +@noindent +Breitkopf & Härtel, édité par Ferruccio Busoni (Wiesbaden, 1894), +disponible à la Petrucci Music Library (IMSLP #22081). Les éléments +éditoriaux tels que doigtés et articulations en ont été gommés aux fins +de comparaison avec les autres éditions@tie{}: + +@iftex +@sourceimage{bwv861-breitkopf,16cm,,} +@end iftex +@ifnottex +@sourceimage{bwv861-breitkopf-small,,,png} +@end ifnottex + +@noindent +Bach-Gesellschaft edition (Leipzig, 1866), disponible à la Petrucci +Music Library (IMSPL #02221) : + +@iftex +@sourceimage{bwv861-gessellschaft,16cm,,} +@end iftex +@ifnottex +@sourceimage{bwv861-gessellschaft-small,,,png} +@end ifnottex + +@noindent +Finale 2008 : + +@iftex +@sourceimage{pdf/bwv861-finale2008a,,,} +@end iftex +@ifnottex +@sourceimage{bwv861-finale2008a,,,png} +@end ifnottex + +@sp 4 +@noindent +LilyPond, version @version{} : + +@lilypond[staffsize=14.3,line-width=15.9\cm] +global = {\key g \minor} + +partI = \relative c' { + \voiceOne + fis8 d' ees g, fis4 g + r8 a16 bes c8 bes16 a d8 r r4 + r2 r8 d16 ees f8 ees16 d + ees4 ~ ees16 d c bes a4 r8 ees'16 d + c8 d16 ees d8 e16 fis g8 fis16 g a4 ~ + a8 d, g f ees d c bes + a2 g\fermata \bar "|." +} + +partII = \relative c' { + \voiceTwo + d4 r4 r8 d'16 c bes8 c16 d + ees8 d c ees a, r r4 + r8 fis16 g a8 g16 fis g2 ~ + g2 r8 d' ees g, + fis4 g r8 a16 bes c8 bes16 a + bes4. 8 r r + 4 d2 +} +partIII = \relative c' { + \voiceOne + r2 r8 d ees g, fis4 g r8 a16 bes c8 bes16 a + bes2 ~ bes8 b16 a g8 a16 b + c4 r r2 + R1 + r8 d ees g, fis4 g + r8 a16 bes c8 bes16 a b2 +} +partIV = \relative c { + \voiceTwo + d4 r r2 + r8 d ees g, fis4 a + d,8 d'16 c bes8 c16 d ees2 ~ + ees8 ees16 d c8 d16 ees fis,8 a16 g fis8 g16 a + d,8 d'16 c bes8 c16 d ees8 c a fis' + g f ees d c bes a g + c a d d, g2\fermata +} + +\score { + << + % \set Score.barNumberVisibility = #all-bar-numbers-visible + % required in 2.13 + \set Score.currentBarNumber = #28 + \bar "" + \new PianoStaff << + \new Staff = "RH" << + \global + \new Voice = "voiceI" { \partI } + \new Voice = "voiceII" { \partII } + >> + + \new Staff = "LH" << + \clef "bass" + \global + \new Voice = "voiceIII" { \partIII } + \new Voice = "voiceIV" { \partIV } + >> + >> + >> + \layout { + \context { + \Staff + \remove "Time_signature_engraver" + } + \context { + \PianoStaff + \override StaffGrouper #'between-staff-spacing #'padding = #1 + } + } +} +@end lilypond + + + diff --git a/Documentation/fr/essay/literature.itely b/Documentation/fr/essay/literature.itely index 036280c2da..8620273f74 100644 --- a/Documentation/fr/essay/literature.itely +++ b/Documentation/fr/essay/literature.itely @@ -1,7 +1,7 @@ -@c -*- coding: utf-8; mode: texinfo; -*- +@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*- @ignore - Translation of GIT committish: 9c14e95e980875a6f5af33562e5a57afa8f389b3 + Translation of GIT committish: 3b1c477ab2212f124f865c46df350c5a1c1f2412 When revising a translation, copy the HEAD committish of the version that you are working on. For details, see the Contributors' @@ -14,8 +14,8 @@ @c Translation checkers: Jean-Charles Malahieude -@node Bibliographie -@chapter Bibliographie +@node Références bibliographiques +@chapter Références bibliographiques @translationof Literature list Voici des listes de références utilisées dans Lilypond.