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.
11 @node Fundamental concepts
12 @chapter Fundamental concepts
16 * How LilyPond files work::
17 * Voices contain music::
18 * Contexts and engravers::
19 * Extending the templates::
22 @node How LilyPond files work
23 @section How LilyPond files work
25 La mise en forme des fichiers d'entrée de LilyPond est vraiment
26 peu astreignante, afin d'offrir assez de souplesse aux utilisateurs
27 expérimentés pour qu'ils puissent organiser leurs fichiers comme
28 ils l'entendent. Cependant, les nouveaux utilisateurs peuvent parfois
29 se perdre en raison de cette souplesse. Cette section présente
30 sommairement l'organisation du code LilyPond, en privilégiant
31 la simplicité au détriment de certains détails. Vous trouverez une
32 description plus complète dans @ruser{File structure}.
35 * Introduction to the LilyPond file structure::
36 * Score is a (single) compound musical expression::
37 * Nesting music expressions::
38 * On the un-nestedness of brackets and ties::
41 @node Introduction to the LilyPond file structure
42 @subsection Introduction to the LilyPond file structure
44 @c FIXME this subsection translation is very outdated
45 @c but wait until it is in a stable state in English
47 La plupart des exemples de ce manuel sont de courts fragments, par exemple
53 Comme vous le savez maintenant (du moins nous l'espèrons), ceci ne
54 peut pas être traité en tant que tel. Il s'agit de formes abrégées des
55 exemples complets ; pour pouvoir être traitées, ces formeulations
56 doivent au moins être encadrées par des accolades :
64 La plupart des exemples font aussi intervenir la commande
65 @code{\relative}, suivie de @code{c'} ou @code{c''}. Elle n'est pas à
66 proprement parler nécessaire pour le traitement des exemples, mais
67 dans la plupart des cas le résultat sera vraiment déplorable si vous
70 @lilypond[quote,fragment,ragged-right,verbatim]
76 C'est ici que nous passons aux choses sérieuses : le code LilyPond,
77 sous cette forme, est en réalité un @emph{autre} raccourci. Même s'il
78 est traité sans problème, et aboutit au bon résultat, c'est une forme
89 Un bloc @code{\score} doit commencer par une et une seule expression
90 musicale. Rappelez-vous que cette expression peut être ce que vous
91 voulez, d'une note toute seule à un gigantesque
96 collez ici la partition complète de votre opéra de Wagner préféré
102 Dès lors que tout cela est entre accolades : @code{@{ ... @}}, c'est
103 une et une seule expression musicale.
105 Le bloc @code{\score} peut contenir d'autres éléments, tels que
117 Certains préfèrent mettre ces commandes en dehors du bloc
118 @code{\score} --- par exemple, on met souvent le @code{\header}
119 au-dessus. C'est juste là une autre forme abrégée que LilyPond
123 @cindex identificateurs
125 Un autre raccourci pratique est la possibilité de définir
126 des variables --- également appelées @qq{identificateurs}. Dans tous
127 les modèles, vous trouverez :
130 melodie = \relative c' @{
139 Lorsque LilyPond examinera ce fichier, il va prendre la valeur de la
140 variable @code{melodie}, c'est-à-dire tout ce qui suit le signe @code{=},
141 et l'insérer partout où il rencontrera @code{\melodie}. Vous êtes
142 libre de choisir comment dénommer vos variables@footnote{Les noms de
143 variables sont sensibles à la casse, et ne peuvent contenir ni
144 chiffre, ni tiret, ni caractère accentué.} ; ce peut être
145 @code{melodie}, @code{global}, @code{maindroitepiano}, ou
146 @code{laTeteAToto}. Pour plus de détails, voir @ruser{Saving typing
147 with identifiers and functions}.
149 Pour une description complète du format des fichiers d'entrée, voir
150 @ruser{File structure}.
153 @node Score is a (single) compound musical expression
154 @subsection Score is a (single) compound musical expression
156 Dans la section précédente, nous avons vu l'organisation générale des
157 fichiers d'entrée de LilyPond. Mais c'est comme si nous avions éludé la
158 question essentielle : comment diable peut-on savoir quoi mettre après
161 En fait, nous ne l'avons pas éludée du tout : le grand mystère est
162 tout simplement qu'il n'y a @emph{pas} de mystère. Allez,
163 expliquons-le en une ligne :
166 @emph{Un bloc @code{\score} doit commencer par une et une seule
167 expression musicale.}
171 Peut-être serait-il judicieux de relire la section
172 @ruser{Music expressions explained}, dans laquelle vous avez
173 appris à construire de grandes expressions musicales petit bout
174 par petit bout --- nous avons vu les notes, puis les accords, etc.
175 Maintenant, nous allons partir d'une grande expression musicale,
176 et remonter la pente.
180 @{ % cette accolade marque le début de l'expression musicale
182 insérez ici votre opéra de Wagner préféré
184 @} % cette accolade marque la fin de l'expression musicale
189 Un opéra de Wagner multiplierait facilement la longueur de ce manuel
190 par deux ou trois, alors faisons-le en version chant/piano. On n'a
191 plus besoin d'une partition d'orchestre --- @code{GrandStaff} --- donc
192 laissons cela de côté. Par contre, un chanteur et un piano
193 @emph{pourraient} nous être utiles.
199 \new Staff = "chanteur" <<
201 \new PianoStaff = piano <<
209 Vous vous souvenez que nous avons recours à @code{<<} et @code{>>}
210 pour mettre en place des musiques simultanées. Et, pour le
211 coup, on aimerait @emph{vraiment} que la partie vocale et l'accompagnement
212 soient imprimés ensemble...
218 \new Staff = "chanteur" <<
219 \new Voice = "chant" @{ @}
221 \new Lyrics \lyricsto chant \new Lyrics @{ @}
222 \new PianoStaff = "piano" <<
223 \new Staff = "mainDroite" @{ @}
224 \new Staff = "mainGauche" @{ @}
232 On y voit nettement plus clair maintenant. Nous voici donc avec la
233 partie du chanteur, qui contient un ensemble @code{Voice}, ce qui dans
234 LilyPond correspond à une voix, au sens de voix d'une polyphonie plutôt que
235 de voix chantée --- ce pourrait être une partie de violon par
238 Nous avons également une partie de piano, qui contient deux portées :
239 une pour la main droite, une autre pour la main gauche.
242 À ce point, on pourrait commencer à ajouter les notes. Dans les
243 accolades qui suivent @code{\new Voice = chant}, on pourrait commencer
252 Mais si l'on procédait ainsi, la section @code{\score} deviendrait
253 vite assez touffue, et très rapidement on ne s'y retrouverait plus.
254 C'est pourquoi on utilisera plutôt des variables, ou identificateurs :
264 \new Staff = "chanteur" <<
265 \new Voice = "chant" @{ \melodie @}
267 \new Lyrics \lyricsto chant \new Lyrics @{ \texte @}
268 \new PianoStaff = "piano" <<
269 \new Staff = "mainDroite" @{ \mainDroite @}
270 \new Staff = "mainGauche" @{ \mainGauche @}
279 Souvenez-vous que vous pouvez donner aux variables le nom que vous
280 voulez, à condition de respecter les caractères autorisés. Ces
281 limitations sont décrites dans @ruser{File structure}.
283 Quand on écrit, ou que l'on lit, une section @code{\score}, mieux vaut
284 y aller lentement et soigneusement. Commencez par le niveau le plus
285 large, puis travaillez sur chaque niveau plus détaillé. À ce propos,
286 une indentation stricte et propre est vraiment d'une aide précieuse :
287 assurez-vous que chaque élément d'un même niveau a le même décalage
288 horizontal dans votre éditeur de texte !
292 @node Nesting music expressions
293 @subsection Nesting music expressions
295 UNTRANSLATED NODE: IGNORE ME
297 @node On the un-nestedness of brackets and ties
298 @subsection On the un-nestedness of brackets and ties
300 UNTRANSLATED NODE: IGNORE ME
302 @node Voices contain music
303 @section Voices contain music
305 UNTRANSLATED NODE: IGNORE ME
308 * I'm hearing Voices::
309 * Explicitly instantiating voices::
310 * Voices and vocals::
313 @node I'm hearing Voices
314 @subsection I'm hearing Voices
316 UNTRANSLATED NODE: IGNORE ME
318 @node Explicitly instantiating voices
319 @subsection Explicitly instantiating voices
321 Les contextes @internalsref{Voice} peuvent être déclarés manuellement
322 dans un bloc @code{<< >>} pour créer de la musique polyphonique, en
323 utilisant @code{\voiceOne}, @dots{} jusqu'à @code{\voiceFour} pour
324 assigner des directions de hampes et un déplacement horizontal pour
329 << \upper \\ \lower >>
337 \new Voice = "1" @{ \voiceOne \upper @}
338 \new Voice = "2" @{ \voiceTwo \lower @}
342 Les commandes @code{\voiceXXX} fixent la direction des hampes, des
343 liaisons de prolongations et de phrasé, des articulations, des
344 annotations, des points d'augmentation des notes pointées et des
345 doigtés. @code{\voiceOne} et @code{\voiceThree} font pointer ces objets
346 vers le haut, alors que @code{\voiceTwo} et @code{\voiceFour} les font
347 pointer vers le bas. La commande @code{\oneVoice} les ramène aux
350 Une expression séquentielle qui apparaît en premier dans un @code{<< >>}
351 appartient à la voix principale. Ceci est utile lorsque des voix
352 supplémentaires apparaissent pendant que la voix principale est jouée.
353 Voici une meilleure réalisation de l'exemple de la section précédente.
354 Les notes colorées et en croix mettent en évidence le fait que la mélodie principale
355 est maintenant dans un seul contexte de voix.
357 @lilypond[quote,ragged-right,verbatim]
358 \new Staff \relative c' {
359 \override NoteHead #'style = #'cross
360 \override NoteHead #'color = #red
365 \new Voice="1" { \voiceTwo
366 r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
369 \new Voice { \voiceThree
378 La définition correcte des voix permet à la mélodie d'être liée.
379 @lilypond[quote,ragged-right,verbatim]
380 \new Staff \relative c' {
385 \context Voice="1" { \voiceTwo
386 r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
389 \new Voice { \voiceThree
398 Le fait d'éviter le séparateur @code{\\} permet aussi d'imbriquer des
399 constructions polyphoniques, ce qui peut être une manière plus naturelle
400 de saisir la musique.
402 @lilypond[quote,ragged-right,verbatim]
403 \new Staff \relative c' {
408 \context Voice="1" { \voiceTwo
412 \new Voice { \voiceThree
424 Dans certaines circonstances de polyphonie complexe, vous pourrez être
425 amené à recourir à des voix supplémentaires afin d'éviter des collisions
426 de notes. Ces voix additionnelles s'ajoutent en définissant un
427 identificateur, comme le montre l'exemple suivant :
429 @lilypond[quote,verbatim,ragged-right,relative=2]
430 voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
433 { \voiceOne g4 ~ \stemDown g32[ f( es d c b a b64 )g] } \\
441 @node Voices and vocals
442 @subsection Voices and vocals
444 UNTRANSLATED NODE: IGNORE ME
446 @node Contexts and engravers
447 @section Contexts and engravers
449 Nous avons évoqué rapidement les contextes et graveurs dans les sections
450 précédentes ; examinons en détail ces concepts essentiels dans la
451 maîtrise de LilyPond.
454 * Contexts explained::
455 * Creating contexts::
456 * Engravers explained::
457 * Modifying context properties::
458 * Adding and removing engravers::
461 @node Contexts explained
462 @subsection Contexts explained
464 Imprimer de la musique impose d'ajouter un certain nombre d'éléments de notation.
465 Par exemple, voici un fragment de partition, précédé du code qui l'engendre :
467 @lilypond[quote,verbatim,relative=2,fragment]
471 Si le code est assez austère, dans la parition ont été ajoutés un chiffre de mesure,
472 des barres de mesure, des altérations et une clé. Pour une bonne raison : LilyPond
473 @emph{interprète} le code. Il le compulse dans l'ordre chronologique, de même qu'on
474 lit une partition de gauche à droite ; et pendant ce traitement, le logiciel garde en
475 mémoire les limites des mesures, ou encore quelles hauteurs de notes demandent des
476 altérations accidentelles. Ces informations se présentent à plusieurs niveaux : ainsi,
477 une altération n'a d'effet que sur une seule portée, tandis qu'une barre de mesure doit
478 être synchronisée sur toute l'étendue verticale de la partition.
480 LilyPond regroupe ces règles et ces fragments d'information dans des
481 @emph{Contextes}. Certains contextes sont les voix (contexte @context{Voice}),
482 les portées (contexte @context{Staff}), ou la partition dans son ensemble
483 (contexte @context{Score}). Ils sont ordonnés hiérarchiquement : ainsi un
484 contexte @context{Staff} peut contenir plusieurs contextes @context{Voice}, et un
485 contexte @context{Score} peut contenir plusieurs contextes @context{Staff}.
488 @image{context-example,5cm,,}
491 Chaque contexte est chargé de faire appliquer certaines règles de gravure,
492 de créer certains objets, et de prendre en compte les propriétés qui leur
493 sont associées. Ainsi, le contexte @context{Voice} peut faire intervenir une
494 altération accidentelle, puis le contexte @context{Staff} devra déterminer si
495 cette dernière devra être imprimée ou non dans la suite de la mesure. Les barres
496 de mesure, enfin, sont alignées verticalement grâce au contexte @context{Score}.
498 En revanche, dans une musique polymétrique, par exemple mélant une portée à 3/4
499 et une autre à 4/4, les barres de mesures n'ont plus à être alignées : il faut alors
500 modifier les comportement par défaut des contextes @context{Score} et @context{Staff}.
502 Dans une partition très simple, les contextes sont créés implicitement, et peuvent
503 être ignorés. Mais lorsqu'il s'agit de morceaux plus amples -- entendons par là tout
504 ce qui s'écrit sur plus d'une portée -- il faut les créer explicitement pour être sûr
505 d'obtenir toutes les portées nécessaires, et dans le bon ordre. Enfin pour des
506 morceaux impliquant une notation spéciale, modifier les contextes ou en créer de nouveaux
507 devient extrêment utile.
509 Une description exhaustive de tous les contextes disponibles peut être trouvée dans la
510 référence du programme : voir
512 @internalsref{Contexts}.
515 Translation @expansion{} Context.
518 @c [TODO: describe propagation]
521 @node Creating contexts
522 @subsection Creating contexts
524 Dans une partition contenant une seule voix sur une seule portée,
525 les contextes sont automatiquement créés. Dans une partition plus complexe,
526 il faut les crééer à la main. Trois commandes le permettent :
531 La plus facile, et la plus rapide à saisir, est @code{\new} -- @qq{nouveau} en français.
532 Elle introduit une expression musicale, comme suit :
535 @cindex nouveaux contextes
536 @cindex Contextes, création de
539 \new @var{Contexte} @var{expression musicale}
543 le choix du @var{Contexte} pouvant être, par exemple, @code{Staff} ou
544 @code{Voice}. Cette commande crée un contexte, puis interprète
545 l'@var{expression musicale} dans ledit contexte.
547 En pratique, la commande @code{\new} peut servir dans une partition
548 comprenant plusieurs portées. Comme chaque partie doit se trouver sur sa propre
549 portée, il faut la faire précéder de @code{\new Staff}.
551 @lilypond[quote,verbatim,relative=2,ragged-right,fragment]
558 La commande @code{\new} peut aussi permettre de nommer le contexte créé :
561 \new @var{Contexte} = @var{"inventezUnNom"} @var{musique}
563 Le nom que vous choisirez ne pourra être attribué que si aucun autre contexte
564 n'a été créé précédemment avec le même nom.
570 Tout comme @code{\new}, la commande @code{\context} envoie une expression musicale
571 vers un contexte donné, mais attribue nécessairement un nom à ce contexte. La
572 syntaxe est la suivante :
575 \context @var{Contexte} = @var{unNom} @var{musique}
578 Cette commande va partir à la recherche d'un contexte déjà existant, de type
579 @var{Contexte}, et portant le nom @var{unNom}. Ce qui peut être fort utile
580 pour se référer à un contexte existant. S'il s'avère que le contexte en question
581 n'existe pas encore, il est créé. Dans le cas de musique vocale avec des paroles,
585 \context Voice = "@b{tenor}" @var{musique}
589 et (pour que le texte soit aligné correctement avec les notes) :
592 \new Lyrics \lyricsto "@b{tenor}" @var{paroles}
597 Une autre utilité de dénommer les contextes est de superposer en un même
598 contexte différentes expressions musicales. Dans l'exemple suivant, les
599 notes et les ponctuations ont été saisies séparément :
602 musique = @{ c4 c4 @}
603 ponctuation = @{ s4-. s4-> @}
606 En les envoyant toutes deux dans le même contexte @context{Voice}, on les combine :
610 \new Staff \context Voice = "A" \musique
611 \context Voice = "A" \ponctuation
614 @lilypond[quote,ragged-right]
618 \new Staff \context Voice = "A" \music
619 \context Voice = "A" \arts
623 De cette façon, il est possible d'élaborer une édition Urtext (c'est-à-dire originale,
624 la plupart du temps sans ponctuations), en laissant la possibilité d'ajouter différentes
625 ponctuations sur les mêmes notes.
627 @cindex crééer des contextes
630 La dernière commande pour créer des contextes est
632 \context @var{Contexte} @var{musique}
637 Elle ressemble à l'emploi de @code{\context} avec @code{= @var{unNom}}, mais
638 cette fois elle se considèrera chez elle partout où elle trouvera un contexte
639 de type @var{Contexte}, quel que puisse être son nom.
643 Cette variante sert à des expressions musicales qui peuvent être interprétées à
644 plusieurs niveaux. Par exemple, une commande telle que @code{\applyOutput} (voir
645 @c FIXME: broken link
646 @c @ref{Running a function on all layout objects}) : si elle n'est pas associée avec
647 @code{\context}, elle s'applique par défaut dans le contexte @context{Voice}.
650 \applyOutput #'@var{Contexte} #@var{fonction} % s'applique dans le contexte Voice
653 Pour l'appliquer au contexte @context{Score} ou @context{Staff}, il faut utiliser :
656 \applyOutput #'Score #@var{fonction}
657 \applyOutput #'Staff #@var{fonction}
663 @node Engravers explained
664 @subsection Engravers explained
666 UNTRANSLATED NODE: IGNORE ME
668 @node Modifying context properties
669 @subsection Modifying context properties
671 UNTRANSLATED NODE: IGNORE ME
673 @node Adding and removing engravers
674 @subsection Adding and removing engravers
676 UNTRANSLATED NODE: IGNORE ME
679 @node Extending the templates
680 @section Extending the templates
682 Bon, vous avez lu le tutoriel, vous savez écrire de la musique. Mais
683 comment obtenir les portées que vous voulez ? Les @ref{Templates},
684 c'est bien beau, mais que faire quand ils ne traitent pas ce que l'on
687 Les exemples qui suivent vous donneront des méthodes générales pour
691 * Soprano and cello::
692 * Four-part SATB vocal score::
693 * Building a score from scratch::
696 @node Soprano and cello
697 @subsection Soprano and cello
699 Commencez par le modèle qui vous semblera le plus proche de ce à quoi
700 vous voulez aboutir. Disons par exemple que vous voulez écrire une pièce
701 pour soprano et violoncelle : dans ce cas l'on pourrait commencer par les
702 @qq{notes et paroles}, pour la partie de soprano.
706 melodie = \relative c' @{
714 texte = \lyricmode @{
720 \new Voice = "voixUn" @{
724 \new Lyrics \lyricsto "voixUn" \texte
731 Maintenant, on veut ajouter une partie de violoncelle.
732 Jetons un coup d'oeil sur l'exemple avec les notes seules :
736 melodie = \relative c' @{
752 On n'a pas besoin de deux commandes @code{\version}. Ce dont on a besoin,
753 c'est la section @code{melodie}. De même, on n'a pas besoin de deux sections
754 @code{\score} --- si nous les gardions toutes les deux, on obtiendrait deux
755 parties séparées ; mais nous voulons un vrai duo, avec les deux
756 parties ensemble. Dans la section @code{\score}, on n'a pas besoin
757 non plus de deux @code{\layout} ni de deux @code{\midi}.
759 Si on se contente de couper et coller les sections @code{melodie}, on se
760 retrouvera avec deux sections de ce nom ; il nous faut donc les renommer.
761 Appelons la section pour la soprano @code{musiqueSoprano} et celle pour le
762 violoncelle @code{musiqueVioloncelle}. Tant qu'on y est, renommons
763 @code{texte} en @code{parolesSoprano}. Attention à bien renommer les
764 deux occurrences de chacune de ces dénominations : c'est-à-dire la
765 définition de départ, où l'on trouve @code{mélodie = relative c' @{ },
766 et l'endroit où cette dénomination est utilisée, dans la section
769 Et puis, toujours tant qu'on y est, mettons le violoncelle en clé de Fa, comme
770 le veut l'usage, et donnons-lui d'autres notes.
774 musiqueSoprano = \relative c' @{
782 parolesSoprano = \lyricmode @{
786 musiqueVioloncelle = \relative c @{
796 \new Voice = "voixUn" @{
800 \new Lyrics \lyricsto "voixUn" \parolesSoprano
807 Voilà qui est mieux, mais la partie de violoncelle n'apparaît pas sur
808 la partition --- en effet, nous n'y avons pas fait appel dans la section
809 @code{\score}. Si l'on veut que la partie de violoncelle s'imprime sous
810 la partie de soprano, on va devoir ajouter :
813 \new Staff \musiqueVioloncelle
817 en dessous de tout ce qui concerne la soprano. Il nous faut également
818 encadrer la musique par des @code{<<} et @code{>>}, qui feront comprendre
819 à LilyPond que plusieurs évènements --- ici, des objets @code{Staff} ---
820 se déroulent en même temps. Le bloc @code{\score} ressemble maintenant à
826 \new Voice = "voixUn" @{
830 \new Lyrics \lyricsto "voixUn" \parolesSoprano
832 \new Staff \musiqueVioloncelle
840 C'est un peu le bazar dans tout ça ; mais il vous sera facile de
841 mettre un peu d'ordre dans l'indentation. Voici le modèle pour
842 soprano et violoncelle au complet :
844 @lilypond[quote,verbatim,ragged-right]
846 sopranoMusic = \relative c' {
854 sopranoLyrics = \lyricmode {
858 celloMusic = \relative c {
873 \new Lyrics \lyricsto "one" \sopranoLyrics
875 \new Staff \celloMusic
883 @node Four-part SATB vocal score
884 @subsection Four-part SATB vocal score
886 UNTRANSLATED NODE: IGNORE ME
888 @node Building a score from scratch
889 @subsection Building a score from scratch
891 UNTRANSLATED NODE: IGNORE ME