1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
2 @c This file is part of lilypond-learning.tely
4 Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
12 @c Translators: Valentin Villenave
13 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
15 @node Fundamental concepts
16 @chapter Fundamental concepts
20 * How LilyPond files work::
21 * Voices contain music::
22 * Contexts and engravers::
23 * Extending the templates::
26 @node How LilyPond files work
27 @section How LilyPond files work
29 La mise en forme des fichiers d'entrée de LilyPond est vraiment
30 peu astreignante, afin d'offrir assez de souplesse aux utilisateurs
31 expérimentés pour qu'ils puissent organiser leurs fichiers comme
32 ils l'entendent. Cependant, les nouveaux utilisateurs peuvent parfois
33 se perdre en raison de cette souplesse. Cette section présente
34 sommairement l'organisation du code LilyPond, en privilégiant
35 la simplicité au détriment de certains détails. Vous trouverez une
36 description plus complète dans @ruser{File structure}.
39 * Introduction to the LilyPond file structure::
40 * Score is a (single) compound musical expression::
41 * Nesting music expressions::
42 * On the un-nestedness of brackets and ties::
45 @node Introduction to the LilyPond file structure
46 @subsection Introduction to the LilyPond file structure
48 @c FIXME this subsection translation is very outdated
49 @c but wait until it is in a stable state in English
51 La plupart des exemples de ce manuel sont de courts fragments, par exemple
57 Comme vous le savez maintenant (du moins nous l'espèrons), ceci ne
58 peut pas être traité en tant que tel. Il s'agit de formes abrégées des
59 exemples complets ; pour pouvoir être traitées, ces formeulations
60 doivent au moins être encadrées par des accolades :
68 La plupart des exemples font aussi intervenir la commande
69 @code{\relative}, suivie de @code{c'} ou @code{c''}. Elle n'est pas à
70 proprement parler nécessaire pour le traitement des exemples, mais
71 dans la plupart des cas le résultat sera vraiment déplorable si vous
74 @lilypond[quote,fragment,ragged-right,verbatim]
80 C'est ici que nous passons aux choses sérieuses : le code LilyPond,
81 sous cette forme, est en réalité un @emph{autre} raccourci. Même s'il
82 est traité sans problème, et aboutit au bon résultat, c'est une forme
93 Un bloc @code{\score} doit commencer par une et une seule expression
94 musicale. Rappelez-vous que cette expression peut être ce que vous
95 voulez, d'une note toute seule à un gigantesque
100 collez ici la partition complète de votre opéra de Wagner préféré
106 Dès lors que tout cela est entre accolades : @code{@{ ... @}}, c'est
107 une et une seule expression musicale.
109 Le bloc @code{\score} peut contenir d'autres éléments, tels que
121 Certains préfèrent mettre ces commandes en dehors du bloc
122 @code{\score} --- par exemple, on met souvent le @code{\header}
123 au-dessus. C'est juste là une autre forme abrégée que LilyPond
127 @cindex identificateurs
129 Un autre raccourci pratique est la possibilité de définir
130 des variables --- également appelées @qq{identificateurs}. Dans tous
131 les modèles, vous trouverez :
134 melodie = \relative c' @{
143 Lorsque LilyPond examinera ce fichier, il va prendre la valeur de la
144 variable @code{melodie}, c'est-à-dire tout ce qui suit le signe @code{=},
145 et l'insérer partout où il rencontrera @code{\melodie}. Vous êtes
146 libre de choisir comment dénommer vos variables@footnote{Les noms de
147 variables sont sensibles à la casse, et ne peuvent contenir ni
148 chiffre, ni tiret, ni caractère accentué.} ; ce peut être
149 @code{melodie}, @code{global}, @code{maindroitepiano}, ou
150 @code{laTeteAToto}. Pour plus de détails, voir @ref{Saving
151 typing with variables and functions}.
153 Pour une description complète du format des fichiers d'entrée, voir
154 @ruser{File structure}.
157 @node Score is a (single) compound musical expression
158 @subsection Score is a (single) compound musical expression
160 Dans la section précédente, nous avons vu l'organisation générale des
161 fichiers d'entrée de LilyPond. Mais c'est comme si nous avions éludé la
162 question essentielle : comment diable peut-on savoir quoi mettre après
165 En fait, nous ne l'avons pas éludée du tout : le grand mystère est
166 tout simplement qu'il n'y a @emph{pas} de mystère. Allez,
167 expliquons-le en une ligne :
170 @emph{Un bloc @code{\score} doit commencer par une et une seule
171 expression musicale.}
175 Peut-être serait-il judicieux de relire la section
176 @ref{Music expressions explained}, dans laquelle vous avez
177 appris à construire de grandes expressions musicales petit bout
178 par petit bout --- nous avons vu les notes, puis les accords, etc.
179 Maintenant, nous allons partir d'une grande expression musicale,
180 et remonter la pente.
184 @{ % cette accolade marque le début de l'expression musicale
186 insérez ici votre opéra de Wagner préféré
188 @} % cette accolade marque la fin de l'expression musicale
193 Un opéra de Wagner multiplierait facilement la longueur de ce manuel
194 par deux ou trois, alors faisons-le en version chant/piano. On n'a
195 plus besoin d'une partition d'orchestre --- @code{GrandStaff} --- donc
196 laissons cela de côté. Par contre, un chanteur et un piano
197 @emph{pourraient} nous être utiles.
203 \new Staff = "chanteur" <<
205 \new PianoStaff = piano <<
213 Vous vous souvenez que nous avons recours à @code{<<} et @code{>>}
214 pour mettre en place des musiques simultanées. Et, pour le
215 coup, on aimerait @emph{vraiment} que la partie vocale et l'accompagnement
216 soient imprimés ensemble...
222 \new Staff = "chanteur" <<
223 \new Voice = "chant" @{ @}
225 \new Lyrics \lyricsto chant \new Lyrics @{ @}
226 \new PianoStaff = "piano" <<
227 \new Staff = "mainDroite" @{ @}
228 \new Staff = "mainGauche" @{ @}
236 On y voit nettement plus clair maintenant. Nous voici donc avec la
237 partie du chanteur, qui contient un ensemble @code{Voice}, ce qui dans
238 LilyPond correspond à une voix, au sens de voix d'une polyphonie plutôt que
239 de voix chantée --- ce pourrait être une partie de violon par
242 Nous avons également une partie de piano, qui contient deux portées :
243 une pour la main droite, une autre pour la main gauche.
246 À ce point, on pourrait commencer à ajouter les notes. Dans les
247 accolades qui suivent @code{\new Voice = chant}, on pourrait commencer
256 Mais si l'on procédait ainsi, la section @code{\score} deviendrait
257 vite assez touffue, et très rapidement on ne s'y retrouverait plus.
258 C'est pourquoi on utilisera plutôt des variables, ou identificateurs :
268 \new Staff = "chanteur" <<
269 \new Voice = "chant" @{ \melodie @}
271 \new Lyrics \lyricsto chant \new Lyrics @{ \texte @}
272 \new PianoStaff = "piano" <<
273 \new Staff = "mainDroite" @{ \mainDroite @}
274 \new Staff = "mainGauche" @{ \mainGauche @}
283 Souvenez-vous que vous pouvez donner aux variables le nom que vous
284 voulez, à condition de respecter les caractères autorisés. Ces
285 limitations sont décrites dans @ruser{File structure}.
287 Quand on écrit, ou que l'on lit, une section @code{\score}, mieux vaut
288 y aller lentement et soigneusement. Commencez par le niveau le plus
289 large, puis travaillez sur chaque niveau plus détaillé. À ce propos,
290 une indentation stricte et propre est vraiment d'une aide précieuse :
291 assurez-vous que chaque élément d'un même niveau a le même décalage
292 horizontal dans votre éditeur de texte !
296 @node Nesting music expressions
297 @subsection Nesting music expressions
301 @node On the un-nestedness of brackets and ties
302 @subsection On the un-nestedness of brackets and ties
306 @node Voices contain music
307 @section Voices contain music
312 * I'm hearing Voices::
313 * Explicitly instantiating voices::
314 * Voices and vocals::
317 @node I'm hearing Voices
318 @subsection I'm hearing Voices
322 @node Explicitly instantiating voices
323 @subsection Explicitly instantiating voices
325 Les contextes @rinternals{Voice} peuvent être déclarés manuellement
326 dans un bloc @code{<< >>} pour créer de la musique polyphonique, en
327 utilisant @code{\voiceOne}, @dots{} jusqu'à @code{\voiceFour} pour
328 assigner des directions de hampes et un déplacement horizontal pour
333 << \upper \\ \lower >>
341 \new Voice = "1" @{ \voiceOne \upper @}
342 \new Voice = "2" @{ \voiceTwo \lower @}
346 Les commandes @code{\voiceXXX} fixent la direction des hampes, des
347 liaisons de prolongations et de phrasé, des articulations, des
348 annotations, des points d'augmentation des notes pointées et des
349 doigtés. @code{\voiceOne} et @code{\voiceThree} font pointer ces objets
350 vers le haut, alors que @code{\voiceTwo} et @code{\voiceFour} les font
351 pointer vers le bas. La commande @code{\oneVoice} les ramène aux
354 Une expression séquentielle qui apparaît en premier dans un @code{<< >>}
355 appartient à la voix principale. Ceci est utile lorsque des voix
356 supplémentaires apparaissent pendant que la voix principale est jouée.
357 Voici une meilleure réalisation de l'exemple de la section précédente.
358 Les notes colorées et en croix mettent en évidence le fait que la mélodie principale
359 est maintenant dans un seul contexte de voix.
361 @lilypond[quote,ragged-right,verbatim]
362 \new Staff \relative c' {
363 \override NoteHead #'style = #'cross
364 \override NoteHead #'color = #red
369 \new Voice="1" { \voiceTwo
370 r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
373 \new Voice { \voiceThree
382 La définition correcte des voix permet à la mélodie d'être liée.
383 @lilypond[quote,ragged-right,verbatim]
384 \new Staff \relative c' {
389 \context Voice="1" { \voiceTwo
390 r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
393 \new Voice { \voiceThree
402 Le fait d'éviter le séparateur @code{\\} permet aussi d'imbriquer des
403 constructions polyphoniques, ce qui peut être une manière plus naturelle
404 de saisir la musique.
406 @lilypond[quote,ragged-right,verbatim]
407 \new Staff \relative c' {
412 \context Voice="1" { \voiceTwo
416 \new Voice { \voiceThree
428 Dans certaines circonstances de polyphonie complexe, vous pourrez être
429 amené à recourir à des voix supplémentaires afin d'éviter des collisions
430 de notes. Ces voix additionnelles s'ajoutent en définissant un
431 identificateur, comme le montre l'exemple suivant :
433 @lilypond[quote,verbatim,ragged-right]
434 voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
437 { \voiceOne g4 ~ \stemDown g32[ f( es d c b a b64 )g] } \\
445 @node Voices and vocals
446 @subsection Voices and vocals
450 @node Contexts and engravers
451 @section Contexts and engravers
453 Nous avons évoqué rapidement les contextes et graveurs dans les sections
454 précédentes ; examinons en détail ces concepts essentiels dans la
455 maîtrise de LilyPond.
458 * Contexts explained::
459 * Creating contexts::
460 * Engravers explained::
461 * Modifying context properties::
462 * Adding and removing engravers::
465 @node Contexts explained
466 @subsection Contexts explained
468 Imprimer de la musique impose d'ajouter un certain nombre d'éléments de notation.
469 Par exemple, voici un fragment de partition, précédé du code qui l'engendre :
471 @lilypond[quote,verbatim,relative=2,fragment]
475 Si le code est assez austère, dans la parition ont été ajoutés un chiffre de mesure,
476 des barres de mesure, des altérations et une clé. Pour une bonne raison : LilyPond
477 @emph{interprète} le code. Il le compulse dans l'ordre chronologique, de même qu'on
478 lit une partition de gauche à droite ; et pendant ce traitement, le logiciel garde en
479 mémoire les limites des mesures, ou encore quelles hauteurs de notes demandent des
480 altérations accidentelles. Ces informations se présentent à plusieurs niveaux : ainsi,
481 une altération n'a d'effet que sur une seule portée, tandis qu'une barre de mesure doit
482 être synchronisée sur toute l'étendue verticale de la partition.
484 LilyPond regroupe ces règles et ces fragments d'information dans des
485 @emph{Contextes}. Certains contextes sont les voix (contexte @code{Voice}),
486 les portées (contexte @code{Staff}), ou la partition dans son ensemble
487 (contexte @code{Score}). Ils sont ordonnés hiérarchiquement : ainsi un
488 contexte @code{Staff} peut contenir plusieurs contextes @code{Voice}, et un
489 contexte @code{Score} peut contenir plusieurs contextes @code{Staff}.
492 @image{context-example,5cm,,}
495 Chaque contexte est chargé de faire appliquer certaines règles de gravure,
496 de créer certains objets, et de prendre en compte les propriétés qui leur
497 sont associées. Ainsi, le contexte @code{Voice} peut faire intervenir une
498 altération accidentelle, puis le contexte @code{Staff} devra déterminer si
499 cette dernière devra être imprimée ou non dans la suite de la mesure. Les barres
500 de mesure, enfin, sont alignées verticalement grâce au contexte @code{Score}.
502 En revanche, dans une musique polymétrique, par exemple mélant une portée à 3/4
503 et une autre à 4/4, les barres de mesures n'ont plus à être alignées : il faut alors
504 modifier les comportement par défaut des contextes @code{Score} et @code{Staff}.
506 Dans une partition très simple, les contextes sont créés implicitement, et peuvent
507 être ignorés. Mais lorsqu'il s'agit de morceaux plus amples -- entendons par là tout
508 ce qui s'écrit sur plus d'une portée -- il faut les créer explicitement pour être sûr
509 d'obtenir toutes les portées nécessaires, et dans le bon ordre. Enfin pour des
510 morceaux impliquant une notation spéciale, modifier les contextes ou en créer de nouveaux
511 devient extrêment utile.
513 Une description exhaustive de tous les contextes disponibles peut être trouvée dans la
514 référence du programme : voir
516 @rinternals{Contexts}.
519 Translation @expansion{} Context.
522 @c [TODO: describe propagation]
525 @node Creating contexts
526 @subsection Creating contexts
528 Dans une partition contenant une seule voix sur une seule portée,
529 les contextes sont automatiquement créés. Dans une partition plus complexe,
530 il faut les crééer à la main. Trois commandes le permettent :
535 La plus facile, et la plus rapide à saisir, est @code{\new} -- @qq{nouveau} en français.
536 Elle introduit une expression musicale, comme suit :
539 @cindex nouveaux contextes
540 @cindex Contextes, création de
543 \new @var{Contexte} @var{expression musicale}
547 le choix du @var{Contexte} pouvant être, par exemple, @code{Staff} ou
548 @code{Voice}. Cette commande crée un contexte, puis interprète
549 l'@var{expression musicale} dans ledit contexte.
551 En pratique, la commande @code{\new} peut servir dans une partition
552 comprenant plusieurs portées. Comme chaque partie doit se trouver sur sa propre
553 portée, il faut la faire précéder de @code{\new Staff}.
555 @lilypond[quote,verbatim,relative=2,ragged-right,fragment]
562 La commande @code{\new} peut aussi permettre de nommer le contexte créé :
565 \new @var{Contexte} = @var{"inventezUnNom"} @var{musique}
567 Le nom que vous choisirez ne pourra être attribué que si aucun autre contexte
568 n'a été créé précédemment avec le même nom.
574 Tout comme @code{\new}, la commande @code{\context} envoie une expression musicale
575 vers un contexte donné, mais attribue nécessairement un nom à ce contexte. La
576 syntaxe est la suivante :
579 \context @var{Contexte} = @var{unNom} @var{musique}
582 Cette commande va partir à la recherche d'un contexte déjà existant, de type
583 @var{Contexte}, et portant le nom @var{unNom}. Ce qui peut être fort utile
584 pour se référer à un contexte existant. S'il s'avère que le contexte en question
585 n'existe pas encore, il est créé. Dans le cas de musique vocale avec des paroles,
589 \context Voice = "@b{tenor}" @var{musique}
593 et (pour que le texte soit aligné correctement avec les notes) :
596 \new Lyrics \lyricsto "@b{tenor}" @var{paroles}
601 Une autre utilité de dénommer les contextes est de superposer en un même
602 contexte différentes expressions musicales. Dans l'exemple suivant, les
603 notes et les ponctuations ont été saisies séparément :
606 musique = @{ c4 c4 @}
607 ponctuation = @{ s4-. s4-> @}
610 En les envoyant toutes deux dans le même contexte @code{Voice}, on les combine :
614 \new Staff \context Voice = "A" \musique
615 \context Voice = "A" \ponctuation
618 @lilypond[quote,ragged-right]
622 \new Staff \context Voice = "A" \music
623 \context Voice = "A" \arts
627 De cette façon, il est possible d'élaborer une édition Urtext (c'est-à-dire originale,
628 la plupart du temps sans ponctuations), en laissant la possibilité d'ajouter différentes
629 ponctuations sur les mêmes notes.
631 @cindex crééer des contextes
634 La dernière commande pour créer des contextes est
636 \context @var{Contexte} @var{musique}
641 Elle ressemble à l'emploi de @code{\context} avec @code{= @var{unNom}}, mais
642 cette fois elle se considèrera chez elle partout où elle trouvera un contexte
643 de type @var{Contexte}, quel que puisse être son nom.
647 Cette variante sert à des expressions musicales qui peuvent être interprétées à
648 plusieurs niveaux. Par exemple, une commande telle que @code{\applyOutput} (voir
649 @c FIXME: broken link
650 @c @ruser{Running a function on all layout objects}) : si elle n'est pas associée avec
651 @code{\context}, elle s'applique par défaut dans le contexte @code{Voice}.
654 \applyOutput #'@var{Contexte} #@var{fonction} % s'applique dans le contexte Voice
657 Pour l'appliquer au contexte @code{Score} ou @code{Staff}, il faut utiliser :
660 \applyOutput #'Score #@var{fonction}
661 \applyOutput #'Staff #@var{fonction}
667 @node Engravers explained
668 @subsection Engravers explained
672 @node Modifying context properties
673 @subsection Modifying context properties
677 @node Adding and removing engravers
678 @subsection Adding and removing engravers
683 @node Extending the templates
684 @section Extending the templates
686 Bon, vous avez lu le tutoriel, vous savez écrire de la musique. Mais
687 comment obtenir les portées que vous voulez ? Les @ref{Templates},
688 c'est bien beau, mais que faire quand ils ne traitent pas ce que l'on
691 Les exemples qui suivent vous donneront des méthodes générales pour
695 * Soprano and cello::
696 * Four-part SATB vocal score::
697 * Building a score from scratch::
700 @node Soprano and cello
701 @subsection Soprano and cello
703 Commencez par le modèle qui vous semblera le plus proche de ce à quoi
704 vous voulez aboutir. Disons par exemple que vous voulez écrire une pièce
705 pour soprano et violoncelle : dans ce cas l'on pourrait commencer par les
706 @qq{notes et paroles}, pour la partie de soprano.
709 \version @w{"@version{}"}
710 melodie = \relative c' @{
718 texte = \lyricmode @{
724 \new Voice = "voixUn" @{
728 \new Lyrics \lyricsto "voixUn" \texte
735 Maintenant, on veut ajouter une partie de violoncelle.
736 Jetons un coup d'oeil sur l'exemple avec les notes seules :
739 \version @w{"@version{}"}
740 melodie = \relative c' @{
756 On n'a pas besoin de deux commandes @code{\version}. Ce dont on a besoin,
757 c'est la section @code{melodie}. De même, on n'a pas besoin de deux sections
758 @code{\score} --- si nous les gardions toutes les deux, on obtiendrait deux
759 parties séparées ; mais nous voulons un vrai duo, avec les deux
760 parties ensemble. Dans la section @code{\score}, on n'a pas besoin
761 non plus de deux @code{\layout} ni de deux @code{\midi}.
763 Si on se contente de couper et coller les sections @code{melodie}, on se
764 retrouvera avec deux sections de ce nom ; il nous faut donc les renommer.
765 Appelons la section pour la soprano @code{musiqueSoprano} et celle pour le
766 violoncelle @code{musiqueVioloncelle}. Tant qu'on y est, renommons
767 @code{texte} en @code{parolesSoprano}. Attention à bien renommer les
768 deux occurrences de chacune de ces dénominations : c'est-à-dire la
769 définition de départ, où l'on trouve @code{mélodie = relative c' @{ },
770 et l'endroit où cette dénomination est utilisée, dans la section
773 Et puis, toujours tant qu'on y est, mettons le violoncelle en clé de Fa, comme
774 le veut l'usage, et donnons-lui d'autres notes.
777 \version @w{"@version{}"}
778 musiqueSoprano = \relative c' @{
786 parolesSoprano = \lyricmode @{
790 musiqueVioloncelle = \relative c @{
800 \new Voice = "voixUn" @{
804 \new Lyrics \lyricsto "voixUn" \parolesSoprano
811 Voilà qui est mieux, mais la partie de violoncelle n'apparaît pas sur
812 la partition --- en effet, nous n'y avons pas fait appel dans la section
813 @code{\score}. Si l'on veut que la partie de violoncelle s'imprime sous
814 la partie de soprano, on va devoir ajouter :
817 \new Staff \musiqueVioloncelle
821 en dessous de tout ce qui concerne la soprano. Il nous faut également
822 encadrer la musique par des @code{<<} et @code{>>}, qui feront comprendre
823 à LilyPond que plusieurs évènements --- ici, des objets @code{Staff} ---
824 se déroulent en même temps. Le bloc @code{\score} ressemble maintenant à
830 \new Voice = "voixUn" @{
834 \new Lyrics \lyricsto "voixUn" \parolesSoprano
836 \new Staff \musiqueVioloncelle
844 C'est un peu le bazar dans tout ça ; mais il vous sera facile de
845 mettre un peu d'ordre dans l'indentation. Voici le modèle pour
846 soprano et violoncelle au complet :
848 @lilypond[quote,verbatim,ragged-right,addversion]
849 sopranoMusic = \relative c' {
857 sopranoLyrics = \lyricmode {
861 celloMusic = \relative c {
876 \new Lyrics \lyricsto "one" \sopranoLyrics
878 \new Staff \celloMusic
886 @node Four-part SATB vocal score
887 @subsection Four-part SATB vocal score
891 @node Building a score from scratch
892 @subsection Building a score from scratch