]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/fr/learning/fundamental.itely
Merge branch 'lilypond/translation'
[lilypond.git] / Documentation / fr / learning / fundamental.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
2
3 @ignore
4     Translation of GIT committish: 60c59602bb30b60154a2310ebf0c88036eca71b2
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  For details, see the Contributors'
8     Guide, node Updating translation committishes..
9 @end ignore
10
11 @c \version "2.12.0"
12
13 @c Translators: Valentin Villenave, Jean-Charles Malahieude
14 @c Translation checkers: John Mandereau
15 @c Translation status: post-GDP
16
17 @node Concepts fondamentaux
18 @chapter Concepts fondamentaux
19 @translationof Fundamental concepts
20
21 Le tutoriel nous a montré comment obtenir une édition de toute beauté à
22 partir d'un simple fichier texte.  Nous nous intéresserons dans cette
23 partie aux concepts et techniques qui permettent d'obtenir des
24 partitions complexes de même qualité.
25
26 @menu
27 * Organisation des fichiers LilyPond::  
28 * Les voix contiennent la musique::        
29 * Contextes et graveurs::      
30 * Extension des modèles::     
31 @end menu
32
33 @node Organisation des fichiers LilyPond
34 @section Organisation des fichiers LilyPond
35 @translationof How LilyPond input files work
36
37 La mise en forme des fichiers d'entrée de LilyPond est vraiment
38 peu astreignante, afin d'offrir assez de souplesse aux utilisateurs
39 expérimentés pour qu'ils puissent organiser leurs fichiers comme
40 ils l'entendent.  Cependant, les nouveaux utilisateurs peuvent parfois
41 se perdre en raison de cette souplesse.  Cette section présente
42 sommairement l'organisation du code LilyPond, en privilégiant
43 la simplicité au détriment de certains détails.  Vous trouverez une
44 description plus complète dans @ruser{Structure de fichier}.
45
46 @menu
47 * Introduction à la structure de fichier LilyPond::  
48 * La partition est une (unique) expression musicale composée::  
49 * Expressions musicales imbriquées::   
50 * Non-imbrication des crochets et liaisons::  
51 @end menu
52
53 @node Introduction à la structure de fichier LilyPond
54 @subsection Introduction à la structure de fichier LilyPond
55 @translationof Introduction to the LilyPond file structure
56
57 @cindex format d'entrée
58 @cindex structure de ficher
59
60 Un fichier d'entrée LilyPond ressemble à :
61
62 @example
63 \version @w{"@version{}"}
64 \header @{ @}
65 \score @{
66   @var{...expression musicale composite...}  % c'est là qu'est la musique !
67   \layout @{ @}
68   \midi @{ @}
69 @}
70 @end example
71
72 @noindent
73 Il existe de nombreuses variantes à ce schéma simpliste, mais cet
74 exemple est un préambule à notre propos.
75
76 @funindex \book
77 @funindex book
78 @funindex \score
79 @funindex score
80 @cindex book, livre, ouvrage
81 @cindex livre
82 @cindex score, partition
83 @cindex partition
84
85 Jusqu'à présent, les exemples que nous avons pu voir ne faisaient pas
86 appel à la commande @code{\score@{@}}.  En fait, LilyPond ajoute
87 automatiquement les commandes nécessaires au traitement d'un code
88 simpliste.  LilyPond considère
89
90 @example
91 \relative c'' @{
92   c4 a d c
93 @}
94 @end example
95
96 @noindent
97 comme un raccourci de
98
99 @example
100 \book @{
101   \score @{
102     \new Staff @{
103       \new Voice @{
104         \relative c'' @{
105           c4 a b c
106         @}
107       @}
108     @}
109     \layout @{ @}
110   @}
111 @}
112 @end example
113
114 En d'autres termes, si le code n'est constitué que d'une expression
115 musicale simple, LilyPond interprètera le fichier tout comme si cette
116 expression était incluse dans les commandes de notre premier exemple.
117
118 @cindex contextes implicites
119 @cindex implicites, contextes
120
121 @strong{Attention :}  de nombreux exemples, dans la documentation de
122 LilyPond, ne font pas apparaître les commandes @code{\new Staff} ou
123 @code{\new Voice}, qui sont créées implicitement.  Ce qui
124 n'est pas primordial pour des exemples simples le devient dès que la
125 situation se complexifie un tant soit peu.  Le fait de ne pas déclarer
126 explicitement un contexte peut alors amener à des résultats quelque peu
127 surprenants, comme la création d'une portée supplémentaire et
128 indésirable.  La manière de créer explicitement des contextes est
129 traitée plus en détails au chapitre @ref{Contextes et graveurs}.
130
131 @warning{Dès lors que votre musique dépasse quelques lignes, nous vous
132 engageons fortement à créer explicitement les voix et portées.}
133
134 Mais revenons à notre premier exemple, et penchons-nous tout d'abord sur
135 la commande @code{\score}.
136
137 Un bloc @code{\score} doit contenir une et une seule expression
138 musicale, exprimée immédiatement à la suite de la commande
139 @code{\score}.  Rappelez-vous que cette expression peut être n'importe
140 quoi, d'une note isolée à un gigantesque
141
142 @example
143 @{
144   \new StaffGroup <<
145     @var{...collez ici la partition complète d'un opéra de Wagner...}
146   >>
147 @}
148 @end example
149
150 @noindent
151 Dès lors que tout cela est entre accolades : @code{@{ @dots{} @}},
152 LilyPond le considère comme une et une seule expression musicale.
153
154 Comme nous l'avons vu précédemment, un bloc @code{\score} peut contenir
155 d'autres informations :
156
157 @example
158 \score @{
159   @{ c'4 a b c' @}
160   \header @{ @}
161   \layout @{ @}
162   \midi @{ @}
163 @}
164 @end example
165
166 @funindex \header
167 @funindex header
168 @funindex \layout
169 @funindex layout
170 @funindex \midi
171 @funindex midi
172 @cindex header
173 @cindex en-tête
174 @cindex layout
175 @cindex mise en forme
176 @cindex midi
177
178 @noindent
179 Gardez à l'esprit que ces trois commandes -- @code{\header},
180 @code{\layout} et @code{\midi} -- sont spécifiques : à l'inverse de
181 toutes les commandes débutant par une oblique inversée @code{\}
182 (@emph{backslash} en anglais), @strong{elles ne constituent pas} des
183 expressions musicales et ne peuvent pas faire partie d'expressions
184 musicales.  Elles peuvent de ce fait être placées à l'intérieur du
185 bloc @code{\score}, ou bien à l'extérieur.  En réalité, ces commandes
186 sont la plupart du temps indépendantes du bloc @code{\score} -- par
187 exemple, la commande @code{\header} intervient souvent avant le bloc
188 @code{\score}, comme le montre l'exemple ci-dessus.
189
190 Les deux autres commandes -- @code{\layout @{@}} et @code{\midi @{@}}
191 -- que nous n'avons pas détaillées pour l'instant, auront respectivement
192 pour effet, lorsqu'elles interviennent, de produire une sortie
193 imprimable et un fichier MIDI.  Nous nous y intéressons plus
194 particulièrement dans le manuel de notation, aux chapitres 
195 @ruser{Mise en forme de la partition} et 
196 @ruser{Création de fichiers MIDI}.
197
198 @cindex partitions multiples
199 @cindex book,  bloc implicite
200 @cindex implicite, bloc book
201 @funindex \book
202 @funindex book
203
204 Vous pouvez tout à fait mentionner plusieurs blocs @code{\score}.  Ils
205 seront traités comme autant de partitions indépendantes qui seront
206 regroupées dans un seul fichier résultant.  La commande @code{\book} 
207 (@emph{recueil} ou @emph{ouvrage}) n'est pas obligatoire -- elle sera
208 créée implicitement.  Néanmoins, le recours à la commande @code{\book}
209 vous permettra d'obtenir des fichiers résultants distincts à partir
210 d'un même fichier source @code{.ly} -- par exemple un fichier par pupitre.
211
212 En résumé :
213
214 Dès que LilyPond rencontre un bloc @code{\book}, il crée un
215 fichier distinct (@code{.pdf} par exemple).  Dans le cas où il n'est pas
216 mentionné explicitement, LilyPond regroupera l'intégralité du code dans
217 un bloc @code{\book}.
218
219 Tout bloc @code{\score} inclus dans un bloc @code{\book} constitue un
220 fragment de musique.
221
222 @cindex layout, effets selon l'emplacement
223
224 Tout bloc @code{\layout} affecte le bloc @code{\score} ou @code{\book}
225 au sein duquel il intervient : si c'est à l'intérieur d'un bloc
226 @code{\score}, seul celui-ci en sera affecté.  Dans le cas où le bloc
227 @code{\layout} se trouve à l'extérieur du bloc @code{\score}, que le
228 bloc @code{\book} soit explicite ou non, il affectera chacun des
229 @code{\score} compris dans ce @code{\book}.
230
231 Pour plus de détail à ce sujet, consultez 
232 @ruser{Plusieurs partitions dans un même ouvrage}.
233
234 @cindex variables
235 @cindex identificateurs
236
237 Un autre raccourci pratique est la possibilité de définir
238 des variables, également appelées @qq{identificateurs} -- voir
239 @ref{Organisation du code source avec des variables} à ce sujet.  Dans
240 tous les modèles, vous trouverez :
241
242 @example
243 melodie = \relative c' @{
244   c4 a b c
245 @}
246
247 \score @{
248   @{ \melodie @}
249 @}
250 @end example
251
252 Lorsque LilyPond examinera ce fichier, il va prendre la valeur de la
253 variable @code{melodie}, c'est-à-dire tout ce qui suit le signe @code{=},
254 et l'insérer partout où il rencontrera @code{\melodie}.  Vous êtes
255 libre de choisir comment dénommer vos variables@footnote{Les noms de
256 variables sont sensibles à la casse, et ne peuvent contenir ni
257 chiffre, ni ponctuation, ni caractère accentué, ni espace.} ; ce peut être
258 @code{melodie}, @code{global}, @code{maindroitepiano}, ou
259 @code{laTeteAToto}, tant qu'il ne s'agit pas de @qq{mot réservé}.  Pour
260 plus de détails, voir 
261 @ref{Économie de saisie grâce aux identificateurs et fonctions}. 
262
263
264 @seealso
265 Pour une description complète du format des fichiers d'entrée, voir 
266 @ruser{Structure de fichier}.
267
268
269 @node La partition est une (unique) expression musicale composée
270 @subsection La partition est une (unique) expression musicale composée
271 @translationof Score is a (single) compound musical expression
272
273 @funindex \score
274 @funindex score
275 @cindex partition
276 @cindex bloc score, contenu
277 @cindex expression musicale composite
278
279 Dans la section précédente, 
280 @ref{Introduction à la structure de fichier LilyPond},  nous
281 avons vu l'organisation générale des fichiers d'entrée de LilyPond.
282 Mais c'est comme si nous avions éludé la question essentielle : comment
283 diable peut-on savoir quoi mettre après @code{\score} ?
284
285 En fait, nous ne l'avons pas éludée du tout : le grand mystère est
286 tout simplement qu'@strong{il n'y a pas} de mystère.  Allez,
287 expliquons-le en une ligne :
288
289 @quotation
290 @emph{Un bloc @code{\score} doit commencer par une et une seule
291 expression musicale.}
292 @end quotation
293
294 @noindent
295 Peut-être serait-il judicieux de relire la section
296 @ref{Les expressions musicales en clair}, dans laquelle vous avez
297 appris à construire de grandes expressions musicales petit bout
298 par petit bout -- nous avons vu les notes, puis les accords, etc.
299 Maintenant, nous allons partir d'une grande expression musicale,
300 et remonter la pente.  Pour rester simple, nous nous contenterons d'un
301 chanteur accompagné au piano.  On n'a pas besoin d'une partition
302 d'orchestre -- c.-à-d. des portées regroupées en @code{StaffGroup} --
303 donc laissons cela de côté.  Par contre, nous voulons bien une voix et
304 une double portée de piano. 
305
306 @example
307 \score @{
308   @{
309     <<
310       \new Staff = "chanteur" <<
311       >>
312       \new PianoStaff = "piano" <<
313       >>
314     >>
315   @}
316   \layout @{ @}
317 @}
318 @end example
319
320 Nous avons ici attribué des noms aux portées -- @qq{chanteur} et
321 @qq{piano}.  Bien que cela ne soit pas primordial, c'est une 
322 habitude qu'il est bon d'adopter dès le départ : vous saurez au premier
323 coup d'œil à quoi correspond chaque portée.
324
325 Vous vous souvenez que nous avons recours à @code{<<} et @code{>>} 
326 en lieu et place de @code{@{ @dots{} @}} pour gérer des musiques
327 simultanées.  Et, pour le coup, on aimerait @emph{vraiment} que la
328 partie vocale et l'accompagnement soient imprimés ensemble@dots{}  Bien que
329 faire appel à @code{<< ... >>} ne soit pas réellement nécessaire pour la
330 portée du chanteur, dans la mesure où elle ne contient qu'une seule
331 expression musicale, nous vous recommandons de prendre l'habitude de
332 l'encadrer ainsi plutôt que par de simples accolades -- une portée peut
333 en effet contenir plusieurs voix, ou bien des notes @strong{et} des
334 paroles.  Dans la mesure où nous y ajouterons des paroles, les chevrons
335 sont donc obligatoires.  Si vous avez oublié comment ajouter des
336 paroles à l'aide de la commande @code{\addlyrics}, relisez le chapitre 
337 @ref{Écriture de chants simples}.
338
339 @lilypond[verbatim,quote,ragged-right]
340 \score {
341   <<
342     \new Staff = "singer" <<
343       \new Voice = "vocal" { c'1 }
344       \addlyrics { And }
345     >>
346     \new PianoStaff = "piano" <<
347       \new Staff = "upper" { c'1 }
348       \new Staff = "lower" { c'1 }
349     >>
350   >>
351   \layout { }
352 }
353 @end lilypond
354
355 On y voit nettement plus clair maintenant.  Nous voici donc avec la
356 partie du chanteur, qui contient un ensemble @code{Voice}, ce qui dans
357 LilyPond correspond à une voix, au sens de voix d'une polyphonie plutôt
358 que de voix chantée -- ce pourrait être une partie de violon par
359 exemple --, et des paroles.
360
361 Nous avons également une partie de piano, qui contient deux portées :
362 une pour la main droite, une autre pour la main gauche.  Il nous faudra
363 d'ailleurs ajouter une clef de fa à cette dernière.
364
365
366 À ce point, on pourrait commencer à ajouter les notes.  Dans les
367 accolades qui suivent @code{\new Voice =  "chant"}, on pourrait
368 commencer à écrire
369
370 @example
371 \relative c'' @{
372   r4 d8\noBeam g, c4 r
373 @}
374 @end example
375
376 Mais si l'on procédait ainsi, la section @code{\score} deviendrait
377 vite assez touffue, et très rapidement on ne s'y retrouverait plus.
378 C'est pourquoi on utilisera plutôt des variables, ou identificateurs,
379 comme nous l'avons vu plus haut.  Pour s'assurer que le contenu de la
380 variable @code{texte} soit bien interprété comme des paroles, nous le
381 préfixons d'un @code{\lyricmode}.  Sans cette précaution, LilyPond
382 tenterait d'interpréter le contenu de cette variable comme des notes, ce
383 qui déclencherait immanquablement des erreurs.  LilyPond dispose de
384 différents types de données -- voir @ruser{Modes de saisie} pour plus de
385 détails. 
386
387 Avec quelques notes de plus et une clef de fa, nous pourrions avoir :
388
389 @lilypond[verbatim,quote,ragged-right]
390 melody = \relative c'' { r4 d8\noBeam g, c4 r }
391 text   = \lyricmode { And God said, }
392 upper  = \relative c'' { <g d g,>2~ <g d g,> }
393 lower  = \relative c { b2 e2 }
394
395 \score {
396   <<
397     \new Staff = "singer" <<
398       \new Voice = "vocal" { \melody }
399       \addlyrics { \text }
400     >>
401     \new PianoStaff = "piano" <<
402       \new Staff = "upper" { \upper }
403       \new Staff = "lower" {
404         \clef "bass"
405         \lower
406       }
407     >>
408   >>
409   \layout { }
410 }
411 @end lilypond
412
413 Quand on écrit, ou que l'on lit, une section @code{\score}, mieux vaut
414 y aller lentement et soigneusement. Commencez par le niveau le plus
415 large, puis travaillez sur chaque niveau plus détaillé.  À ce propos,
416 une indentation stricte et propre est vraiment d'une aide précieuse :
417 assurez-vous que chaque élément d'un même niveau a le même décalage
418 horizontal dans votre éditeur de texte !
419
420
421 @seealso
422 Manuel de notation : 
423 @ruser{Structure d'une partition}.
424
425
426 @node Expressions musicales imbriquées
427 @subsection Expressions musicales imbriquées
428 @translationof Nesting music expressions
429
430 @cindex portées, temporaires
431 @cindex ossias
432
433 Déclarer toutes les portées dès le départ n'est pas une obligation ;
434 elles peuvent intervenir temporairement n'importe où dans la partition.
435 Ceci est tout à fait indiqué pour créer des sections @rglos{ossia}.
436 L'exemple suivant illustre la manière de créer temporairement une
437 nouvelle portée, l'espace de trois notes :
438
439 @lilypond[verbatim,quote,ragged-right]
440 \new Staff {
441   \relative g' {
442     r4 g8 g c4 c8 d |
443     e4 r8
444     <<
445       { f c c }
446       \new Staff {
447         f8 f c
448       }
449     >>
450     r4 |
451   }
452 }
453 @end lilypond
454
455 @noindent
456 Vous noterez la taille de la clef, identique à celle que l'on trouve
457 lors d'un changement en cours de ligne -- légèrement plus petite que
458 celle imprimée en tête de ligne.
459
460 @cindex portée, positionnement
461
462 Une section ossia se placera au dessus de la portée en procédant ainsi :
463
464 @lilypond[verbatim,quote,ragged-right]
465 \new Staff = "main" {
466   \relative g' {
467     r4 g8 g c4 c8 d |
468     e4 r8
469     <<
470       { f c c }
471       \new Staff \with {
472         alignAboveContext = #"main" }
473       { f8 f c }
474     >>
475     r4 |
476   }
477 }
478 @end lilypond
479
480 Cet exemple recourt à @code{\with}, que nous verrons en détail plus
481 avant.  C'est un moyen de modifier le comportement par défaut d'une
482 portée individuelle.  Nous indiquons ici que la nouvelle portée doit se
483 placer au-dessus de la portée @qq{principal} plutôt qu'en dessous, ce
484 qui est le comportement par défaut.
485
486 Les ossia apparaissent souvent sans clef ni métrique, et dans une police
487 plus petite.  Ceci requiert des commandes dont nous n'avons pas encore
488 parlé.  Voir @ref{Taille des objets} et @ruser{Portées d'ossia}.
489
490
491 @node Non-imbrication des crochets et liaisons
492 @subsection Non-imbrication des crochets et liaisons
493 @translationof On the un-nestedness of brackets and ties
494
495 @cindex crochets, imbrication
496 @cindex crochets, types de
497
498 Nous avons déjà rencontré plusieurs types de crochets au fil de nos
499 fichiers LilyPond.  Ils obéissent à des règles différentes qui peuvent
500 paraître déroutantes de prime abord.  Avant d'examiner ces règles, voici
501 une liste des différents types de crochet :
502
503 @c attempt to force this onto a new page
504 @need 50
505 @multitable @columnfractions .3 .7
506 @headitem Type de crochet
507   @tab Fonction
508 @item @code{@{ .. @}}
509   @tab Délimite un segment de musique séquentielle
510 @item @code{< .. >}
511   @tab Délimite les notes d'un accord
512 @item @code{<< .. >>}
513   @tab Délimitent des sections simultanées
514 @item @code{( .. )}
515   @tab Marque le début et la fin d'une liaison
516 @item @code{\( .. \)}
517   @tab Marque le début et la fin d'une liaison de phrasé
518 @item @code{[ .. ]}
519   @tab Marque le début et la fin d'une ligature manuelle
520 @end multitable
521
522 D'autres constructions permettent d'obtenir des lignes regroupant ou en
523 travers des notes :  les liaisons de prolongation indiquées par un
524 tilde (@code{~}), les marques de nolet avec 
525 @w{@code{\times x/y @{..@}}}, ou
526 encore les notes d'ornement avec @code{\grace@{..@}}.
527
528 En dehors de LilyPond, l'imbrication correcte de différents types de
529 crochets exige un strict respect des conventions, telles que 
530 @code{<<@tie{}[@tie{}@{@tie{}(@tie{}..@tie{})@tie{}@}@tie{}]@tie{}>>},
531 où les marques de fermeture interviennent 
532 obligatoirement dans l'ordre exactement inverse à celles d'ouverture.
533 Ceci @strong{doit} être rigoureusement respecté pour les trois
534 types de crochets utilisés pour @strong{délimiter} comme l'indique le
535 tableau ci-dessus.  
536 Une telle rigueur dans l'imbrication n'est @strong{pas} requise pour les
537 types de crochets dont la fonction est de @strong{marquer}, selon le
538 tableau ci-dessus, lorsqu'il sont utilisés en combinaison avec des
539 liaisons de prolongation ou des nolets.  En effet, il ne s'agit pas
540 de crochets ayant pour fonction de borner quelque chose ; ils agissent
541 plutôt comme marquant le début de quelque chose et sa fin.
542
543 Ainsi, et bien que ce ne soit pas très musical, une liaison de phrasé
544 peut débuter avant l'insertion d'une ligature manuelle et s'arrêter
545 avant la fin de la ligature :
546
547 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
548  { g8\( a b[ c b\) a] }
549 @end lilypond
550
551 De manière générale, différents types de crochets, notamment s'ils
552 indiquent des nolets, liaisons de prolongation ou notes d'ornement,
553 peuvent se mélanger entre eux.  L'exemple suivant montre une ligature
554 qui se prolonge sur un triolet (ligne 1), puis une liaison qui se
555 prolonge sur un triolet (ligne 2) et enfin une ligature et une liaison
556 qui s'étendent sur un triolet, lui-même lié à un quintolet agrémenté
557 d'une liaison de phrasé se poursuivant (lignes 3 et 4).
558
559 @lilypond[quote,verbatim,fragment,ragged-right]
560 {
561   r16[ g16 \times 2/3 {r16 e'8] }
562   g16( a \times 2/3 {b d) e' }
563   g8[( a \times 2/3 {b d') e'~]}
564   \times 4/5 {e'32\( a b d' e'} a'4.\)
565 }
566 @end lilypond
567
568
569 @node Les voix contiennent la musique
570 @section Les voix contiennent la musique
571 @translationof Voices contain music
572
573 Les chanteurs utilisent leur voix pour chanter ; il en va de même pour 
574 LilyPond.  En fait, la musique de chacun des instruments d'une partition
575 est contenue dans des voix (@emph{Voices} en anglais) et qui se trouvent
576 être le concept fondamental de LilyPond.
577
578 @menu
579 * J'entends des Voix::          
580 * Instanciation explicite des voix::  
581 * Voix et paroles::           
582 @end menu
583
584 @node J'entends des Voix
585 @subsection J'entends des Voix
586 @translationof I'm hearing Voices
587
588 @cindex polyphonie
589 @cindex calques (layers)
590 @cindex voix multiples
591 @cindex Voice, contexte
592 @cindex contexte de voix
593 @cindex musique simultanée
594 @cindex musique concurrente
595 @cindex voix ou accords
596 @cindex accords ou voix
597
598 Dans une partition gérée par LilyPond, le niveau le plus bas, ou bien
599 élémentaire ou fondamental, est le @qq{contexte de voix} -- @emph{Voice
600 context} en anglais --.  Pour d'autres logiciels, on fait tantôt
601 référence à la notion de @qq{couche} ou de @qq{calque}.
602
603 En réalité, le contexte de voix est le seul à pouvoir contenir de la
604 musique.  S'il n'est pas déclaré explicitement, il sera créé
605 automatiquement comme nous l'avons vu au début de ce chapitre.  Certains
606 instruments, le hautbois par exemple, ne peuvent jouer qu'une seule note
607 à la fois.  On dit en pareil cas qu'il s'agit de musique monophonique,
608 et nous n'aurons alors besoin que d'une seule voix.  Les intruments qui,
609 comme le piano, peuvent émettre plusieurs sons en même temps, nécessitent
610 de recourir à plusieurs voix pour gérer efficacement l'alignement des
611 notes et rythmes différents.
612
613 Si une voix unique peut tout à fait contenir plusieurs notes dans un
614 accord, à partir de quand aurons-nous vraiment besoin de plusieurs 
615 voix ?  Considérons déjà ces quatre accords :
616
617 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
618 \key g \major
619 <d g>4 <d fis> <d a'> <d g>
620 @end lilypond
621
622 Nous exprimons ici chacun des accords par l'utilisation de 
623 chevrons gauche et droite simples, @w{@code{< ... >}}, puisque nous
624 n'avons besoin que d'une seule voix.  Supposons maintenant que le fa
625 dièse soit une croche, suivie d'un sol croche -- une note de passage
626 vers le la ?  Nous avons alors deux notes qui débutent au même moment,
627 mais dont la durée est différente : un ré noire et un fa dièse croche.
628 Comment coder cela ?  Dans la mesure où toutes les notes d'un accord
629 doivent avoir la même durée, nous ne pouvons pas écrire un accord.  Nous
630 ne pouvons pas non plus écrire deux notes séparées, puisqu'elles
631 débutent en même temps.  Nous avons alors besoin de deux voix.
632
633 Voyons comment cela se pratique selon la grammaire de LilyPond.
634
635 @funindex << \\ >>
636 @funindex \\
637
638 Le plus sûr moyen de saisir un fragment où plusieurs voix cohabitent
639 sur la même portée, consiste à saisir chacune des voix séquentiellement
640 (avec @code{@{...@}}), puis à les combiner en simultané à l'aide de
641 doubles chevrons gauche/droite, @code{<<...>>}.  Les fragments
642 devront être séparés par une double oblique inversée, @code{\\}, pour
643 les affecter à des voix séparées.  Dans le cas contraire, les notes
644 seraient toutes affectées à une même voix, ce qui pourait générer des
645 erreurs.  Cette manière de procéder est tout à fait indiquée dans le cas
646 d'une pièce ne comportant que quelques courts passages de polyphonie.
647
648 Voici comment éclater les accords en deux voix, avec la note de passage
649 et la liaison :
650
651 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
652 \key g \major
653 %    Voice "1"                  Voice "2"
654 << { g4 fis8( g) a4 g }    \\ { d4 d d d }  >> |
655 @end lilypond
656
657 Notez que les hampes de la seconde voix sont dirigées vers le bas.
658
659 Autre exemple :
660
661 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
662 \key d \minor
663 %    Voice "1"             Voice "2"
664 << { r4 g g4. a8 }    \\ { d,2 d4 g }       >> |
665 << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
666 << { a2. r4 }         \\ { fis2. s4 }       >> |
667 @end lilypond
668
669 Le recours à une construction @code{<< \\ >>} particulière à chaque
670 mesure n'est pas nécessaire.  Bien qu'on y gagne en lisibilité si chaque
671 mesure ne contient que quelques notes, il est plus judicieux de
672 carrément séparer chaque voix :
673
674 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
675 \key d \minor
676 << {
677   % Voice "1"
678   r4 g g4. a8 |
679   bes4 bes c bes |
680   a2. r4 |
681 } \\ {
682   % Voice "2"
683   d,2 d4 g |
684   g4 g g8( a) g4 |
685   fis2. s4 |
686 } >>
687 @end lilypond
688
689
690 @cindex voix, nommage
691 @cindex voix et constructions simultanées
692 @cindex liaisons et constructions simultanées
693
694 Cet exemple ne comporte que deux voix, mais il peut être étendu pour
695 traiter trois voix ou plus en ajoutant autant de séparateurs @code{\\}
696 que de besoin.
697
698 Les contextes @code{Voice} portent les noms @code{"1"}, @code{"2"}, etc.
699 Pour chacun de ces contextes, le positionnement et l'orientation des
700 liaisons, hampes, nuances, etc. est définie automatiquement.
701
702 @lilypond[quote,verbatim,fragment]
703 \new Staff \relative c' {
704   % Main voice
705   c16 d e f
706   %    Voice "1"     Voice "2"                 Voice "3"
707   << { g4 f e } \\ { r8 e4 d c8 ~ } >> |
708   << { d2 e2 }  \\ { c8 b16 a b8 g ~ g2 } \\ { s4 b4 c2 } >> |
709 }
710 @end lilypond
711
712 Ces voix sont séparées de la voix principale, laquelle contient les
713 notes en dehors de la construction @code{<<...>>} -- que nous
714 appellerons @emph{construction simultanée}.  Les liaisons, de
715 prolongation ou non, ne peuvent relier des notes que si elles
716 appartiennent à la même voix ; elles ne peuvent ni pénétrer une
717 contruction simultanée, ni en sortir.  Inversement, les voix parallèles
718 issues de constructions simultanées apparaissant sur une même portée
719 appartiennent à la même voix.  Les autres propriétés liées au contexte
720 de voix  s'appliquent tout au long des constructions simultanées.
721 Reprenons notre exemple, en affectant une couleur et une allure
722 différentes aux notes de chacune des voix.  Vous noterez qu'un
723 changement apporté à une voix ne se propage pas aux autres, et qu'il se
724 reporte jusqu'au bout, et que la voix aux triangles bleus comporte une
725 liaison de prolongation entre deux constructions.
726
727 @lilypond[quote,verbatim]
728 \new Staff \relative c' {
729   % Main voice
730   c16 d e f
731   << % Bar 1
732     {
733       \voiceOneStyle
734       g4 f e
735     }
736   \\
737     {
738       \voiceTwoStyle
739       r8 e4 d c8 ~
740     }
741   >>
742   << % Bar 2
743      % Voice 1 continues
744     { d2 e2 }
745   \\
746      % Voice 2 continues
747     { c8 b16 a b8 g ~ g2 }
748   \\
749     {
750       \voiceThreeStyle
751       s4 b4 c2
752     }
753   >>
754 }
755 @end lilypond
756
757 @funindex \voiceOneStyle
758 @funindex \voiceTwoStyle
759 @funindex \voiceThreeStyle
760 @funindex \voiceFourStyle
761 @funindex \voiceNeutralStyle
762
763 Les commandes @code{\voiceXXXStyle} sont principalement dédiées à une
764 utilisation pédagogique, comme l'est ce document.  Elles modifient la
765 couleur des hampes et ligatures et le style de tête des note, pour
766 permettre une meilleure distinction entre les différentes voix.   La
767 première voix comporte des têtes en losange rouge, la deuxième en
768 triangle bleu, la troisième en cercle barré vert, la quatrième (non
769 utilisée ici) en croix magenta ;  @code{\voiceNeutralStyle} (non utilisé
770 ici) revient au style par défaut.  Nous verrons plus tard comment créer
771 de telles commandes.
772 Voir @ref{Visibilité et couleur des objets} et
773 @ref{Utilisation de variables dans les retouches}.
774
775 @cindex polyphonie et mode relatif
776 @cindex mode relatif et polyphonie
777
778 La polyphonie ne modifie en rien la relation entre les notes au sein
779 d'un bloc @w{@code{\relative @{ @}}}.  Chaque note est calculée par
780 rapport à celle qui la précède, ou bien par rapport à la première note
781 de l'accord qui précède.  Ainsi, dans
782
783 @example
784 \relative c' @{ noteA << < noteB noteC > \\ noteD >> noteE @}
785 @end example
786
787 @noindent
788 @code{noteB} est relative à @code{noteA}                        @*
789 @code{noteC} est relative à @code{noteB}, pas à @code{noteA}    @*
790 @code{noteD} est relative à @code{noteB}, pas à @code{noteA} ni
791 @code{noteC}                                                    @*
792 @code{noteE} est relative à @code{noteD}, pas à @code{noteA}
793
794 Une méthode alternative, et qui peut simplifier les choses si les notes 
795 des différentes voix sont espacées, consiste à placer une commande
796 @code{\relative} au début de chacune des voix :
797
798 @example
799 \relative c' @{ noteA ... @}
800 <<
801   \relative c'' @{ < noteB noteC > ... @}
802 \\
803   \relative g' @{ noteD ... @}
804 >>
805 \relative c' @{ noteE ... @}
806 @end example
807
808 Pour finir, analysons le principe d'utilisation des voix dans une pièce
809 complexe.  Nous allons nous concentrer sur les deux premières mesures du
810 second des Deux nocturnes, opus 32 de Chopin.  Cet exemple nous servira
811 à plusieurs reprises, y compris dans le chapitre suivant, pour illustrer
812 certaines techniques de notation.  Aussi, ne prétez pas trop d'attention
813 à ce qui pour l'instant pourrait vous paraître vraiment mystérieux dans
814 le code, et intéressons-nous uniquement à ce qui concerne la musique et
815 les voix -- ce qui est plus compliqué sera décortiqué plus tard.
816
817 @c The following should appear as music without code
818 @lilypond[quote,ragged-right]
819 \new Staff \relative c'' {
820   \key aes \major
821   << % Voice one
822     { c2 aes4. bes8 }
823   \\ % Voice two
824     { aes2 f4 fes }
825   \\ % No voice three
826   \\ % Voice four
827     {
828       % Ignore these for now - they are explained in Ch 4
829       \once \override NoteColumn #'force-hshift = #0
830       <ees c>2
831       \once \override NoteColumn #'force-hshift = #0.5
832       des2
833     }
834   >> |
835   <c ees aes c>1 |
836 }
837 @end lilypond
838
839 La direction des hampes sert souvent à indiquer dans la continuité deux
840 lignes mélodiques simultanées.  Ici, les hampes des notes les plus
841 hautes vont vers le haut, et celles des notes plus basses vers le
842 bas.  C'est une première indication de ce que nous avons eu recours à plus
843 d'une voix.
844
845 Mais le réel besoin de multiples voix se fait sentir dès lors que
846 plusieurs notes qui débutent en même temps ont des durées différentes.
847 C'est évident au troisième temps de la première mesure : le la bémol est
848 une noire pointée, le fa une noire, et le ré bémol une blanche.  On ne
849 peut les grouper dans un accord, puisque toutes les notes composant un
850 accord doivent être de même durée.  On ne peut non plus les écrire
851 séquentiellement, puisqu'elles débutent toutes au même instant.  Ce
852 fragment de mesure nécessite trois voix, et une bonne pratique voudrait
853 que l'intégralité de la mesure soit sur trois voix, comme ci-dessous où
854 nous avons une allure et une couleur différentes aux notes de chacune
855 d'entre elles.  Une fois de plus, nous reviendrons plus tard sur le code
856 que vous ne comprendriez pas.
857
858 @c The following should appear as music without code
859 @c The three voice styles should be defined in -init
860 @lilypond[quote,ragged-right]
861 \new Staff \relative c'' {
862   \key aes \major
863   <<
864     { % Voice one
865       \voiceOneStyle
866       c2 aes4. bes8
867     }
868   \\  % Voice two
869     { \voiceTwoStyle
870       aes2 f4 fes
871     }
872   \\  % No Voice three (we want stems down)
873   \\  % Voice four
874     { \voiceThreeStyle
875       % Ignore these for now - they are explained in Ch 4
876       \once \override NoteColumn #'force-hshift = #0
877       <ees c>2
878       \once \override NoteColumn #'force-hshift = #0.5
879       des2
880     }
881   >> |
882   <c ees aes c>1 |
883 }
884 @end lilypond
885
886 Essayons à présent de coder cette musique en partant de zéro.  Comme
887 nous le verrons, certaines difficultés vont se présenter.  Partons de ce
888 que nous avons appris : utilisons la construction @code{<< \\ >>} pour
889 saisir la première mesure dans trois voix :
890
891 @lilypond[quote,verbatim,fragment,ragged-right]
892 \new Staff \relative c'' {
893   \key aes \major
894   <<
895     { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { <ees c>2 des2 }
896   >>
897   <c ees aes c>1
898 }
899 @end lilypond
900
901 @cindex stem down
902 @cindex hampes en bas
903 @cindex stem up
904 @cindex hampes en haut
905 @cindex voix et direction des hampes
906 @cindex direction des hampes et voix
907
908 La direction des hampes est attribuée automatiquement : les voix
909 impaires portent des hampes vers le haut, les voix paires des hampes
910 vers le bas.  Les hampes des voix 1 et 2 sont orientées comme il faut
911 mais celles de la voix 3 devraient, dans le cas qui nous occupe, aller
912 vers le bas.  Nous pouvons corriger cela en sautant la voix 3 et en
913 plaçant la musique dans la voix 4 grâce à un @code{\\} supplémentaire :
914
915 @lilypond[quote,verbatim,fragment,ragged-right]
916 \new Staff \relative c'' {
917   \key aes \major
918   << % Voice one
919     { c2 aes4. bes8 }
920   \\ % Voice two
921     { aes2 f4 fes   }
922   \\ % Omit Voice three
923   \\ % Voice four
924     { <ees c>2 des2 }
925   >> |
926   <c ees aes c>1 |
927 }
928 @end lilypond
929
930 @noindent
931 Cette manipulation nous permet de régler la direction des hampes, mais
932 elle engendre un problème que l'on rencontre parfois avec de multiples
933 voix, à savoir que les hampes d'une voix peuvent chevaucher les têtes de
934 note des autres voix.  En matière de mise en forme des notes, LilyPond
935 tolère que des notes ou accords appartenant à deux voix se retrouvent
936 dans le même empilement de notes (@emph{note column} en anglais) si tant
937 est que ces hampes vont dans des directions opposées ; néanmoins les
938 notes des troisième et quatrième voix seront décalées si nécessaire pour
939 éviter que les têtes ne se chevauchent.  Cela marche plutôt bien mais,
940 dans notre exemple, les notes de la voix la plus basse ne sont vraiment
941 pas correctement placées.  LilyPond met à notre disposition plusieurs
942 moyens d'ajuster le positionnement horizontal des notes.  Nous ne sommes
943 pas encore tout à fait prêts pour voir comment corriger cela, aussi nous
944 examinerons ce problème dans un autre chapitre (voir la propriété
945 @code{force-hshift} dans @ref{Correction des collisions d'objets}).
946
947
948 @seealso
949 Manuel de notation : @ruser{Plusieurs voix}.
950
951
952 @node Instanciation explicite des voix
953 @subsection Instanciation explicite des voix
954 @translationof Explicitly instantiating voices
955
956 @funindex \voiceOne
957 @funindex voiceOne
958 @funindex \voiceTwo
959 @funindex voiceTwo
960 @funindex \voiceThree
961 @funindex voiceThree
962 @funindex \voiceFour
963 @funindex voiceFour
964 @funindex \oneVoice
965 @funindex oneVoice
966 @funindex \new Voice
967 @cindex Voice, création de contextes
968
969 Les contextes @rinternals{Voice} peuvent être déclarés manuellement
970 dans un bloc @code{<< >>} pour créer de la musique polyphonique, en
971 utilisant @code{\voiceOne}, @dots{} jusqu'à @code{\voiceFour} pour
972 assigner des directions de hampes et un déplacement horizontal pour
973 chaque partie.  Cette méthode apporte de la clarté pour des partitions
974 plus importantes puisqu'elle permet de bien séparer les voix et de leur
975 affecter un nom plus parlant.
976
977 En particulier, la construction @code{<< \\ >>} que nous avons vue
978 précédemment :
979
980 @example
981 \new Staff @{
982   \relative c' @{
983     << @{ e4 f g a @} \\ @{ c,4 d e f @} >>
984   @}
985 @}
986 @end example
987
988 @noindent
989 équivaut à
990
991 @example
992 \new Staff <<
993   \new Voice = "1" @{ \voiceOne \relative c' @{ e4 f g a @} @}
994   \new Voice = "2" @{ \voiceTwo \relative c' @{ c4 d e f @} @}
995 >>
996 @end example
997
998 Toutes deux produiront
999
1000 @c The following example should not display the code
1001 @lilypond[ragged-right,quote]
1002 \new Staff <<
1003   \new Voice = "1" { \voiceOne \relative c' { e4 f g a } }
1004   \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } }
1005 >>
1006 @end lilypond
1007
1008 @cindex Voice, retour à un seul contexte
1009 @cindex retour à un contexte Voice unique
1010
1011 Les commandes @code{\voiceXXX} fixent la direction des hampes, des
1012 liaisons de prolongation et de phrasé, des articulations, des
1013 annotations, des points d'augmentation des notes pointées et des
1014 doigtés.  @code{\voiceOne} et @code{\voiceThree} font pointer ces objets
1015 vers le haut, alors que @code{\voiceTwo} et @code{\voiceFour} les font
1016 pointer vers le bas.  Ces commandes génèrent par ailleurs un décalage
1017 horizontal de chacune des voix pour éviter tout risque de chevauchement
1018 entre plusieurs notes.  La commande @code{\oneVoice} les ramène aux
1019 critères normaux.
1020
1021 Voyons, à l'aide de ces exemples simples, les effets respectifs de
1022 @code{\oneVoice}, @code{\voiceOne} et @code{\voiceTwo} sur les
1023 annotations, liaisons de prolongation ou de phrasé, et sur les nuances.
1024
1025 @lilypond[quote,ragged-right,verbatim]
1026 \relative c'{
1027   % Default behavior or behavior after \oneVoice
1028   c d8 ~ d e4 ( f g a ) b-> c
1029 }
1030 @end lilypond
1031
1032 @lilypond[quote,ragged-right,verbatim]
1033 \relative c'{
1034   \voiceOne
1035   c d8 ~ d e4 ( f g a ) b-> c
1036   \oneVoice
1037   c, d8 ~ d e4 ( f g a ) b-> c
1038 }
1039 @end lilypond
1040
1041 @lilypond[quote,ragged-right,verbatim]
1042 \relative c'{
1043   \voiceTwo
1044   c d8 ~ d e4 ( f g a ) b-> c
1045   \oneVoice
1046   c, d8 ~ d e4 ( f g a ) b-> c
1047 }
1048 @end lilypond
1049
1050 Voyons à présent trois différentes façons d'exprimer un passage
1051 polyhonique, à partir d'un exemple de la section précédente.  Chacune
1052 d'elles aura ses avantages selon les circonstances.
1053
1054 Une expression séquentielle qui apparaît en premier dans un @code{<< >>}
1055 -- attention, @strong{pas} dans une construction @code{<< \\ >>} --
1056 appartient à la voix principale.  Ceci est utile lorsque des voix
1057 supplémentaires apparaissent pendant que la voix principale est jouée.
1058 Voici une meilleure réalisation de notre exemple.
1059 Les notes colorées et en croix mettent en évidence le fait que la
1060 mélodie principale est maintenant dans un seul contexte de voix, ce qui
1061 permet d'ajouter une liaison de phrasé à l'ensemble.
1062
1063 @lilypond[quote,ragged-right,verbatim]
1064 \new Staff \relative c' {
1065   \voiceOneStyle
1066   % The following notes are monophonic
1067   c16^( d e f
1068   % Start simultaneous section of three voices
1069   <<
1070     % Continue the main voice in parallel
1071     { g4 f e | d2 e2) }
1072     % Initiate second voice
1073     \new Voice {
1074       % Set stems, etc, down
1075       \voiceTwo
1076       r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
1077     }
1078     % Initiate third voice
1079     \new Voice {
1080       % Set stems, etc, up
1081       \voiceThree
1082       s2. | s4 b4 c2
1083     }
1084   >>
1085 }
1086 @end lilypond
1087
1088 @cindex imbrication d'expressions musicales
1089 @cindex imbrication de constructions simultanées
1090
1091 @cindex voix temporaires
1092 @cindex voix, imbrication
1093
1094
1095 Dans certaines circonstances de polyphonie complexe, vous pourrez être
1096 amené à recourir à une voix temporaire, ce qui peut être une manière
1097 plus naturelle de saisir la musique :
1098
1099 @lilypond[quote,ragged-right,verbatim]
1100 \new Staff \relative c' {
1101   c16^( d e f
1102   <<
1103     { g4 f e | d2 e2) }
1104     \new Voice {
1105       \voiceTwo
1106       r8 e4 d c8 ~ |
1107       <<
1108         {c8 b16 a b8 g ~ g2}
1109         \new Voice {
1110           \voiceThree
1111           s4 b4 c2
1112         }
1113       >>
1114     }
1115   >>
1116 }
1117 @end lilypond
1118
1119 @cindex espacement des notes
1120
1121 Cette manière de brièvement imbriquer des voix est bien utile pour de
1122 courts fragments de musique polyphonique.  Mais lorsqu'une portée est
1123 très souvent polyphonique, on peut y gagner en clarté si l'on utilise
1124 plusieurs voix sur l'ensemble de cette portée et que l'on positionne des 
1125 silences invisibles pour sauter les moments où il n'y a rien dans cette
1126 voix. 
1127
1128 @lilypond[quote,ragged-right,verbatim]
1129 \new Staff \relative c' <<
1130   % Initiate first voice
1131   \new Voice {
1132     \voiceOne
1133     c16^( d e f g4 f e | d2 e2) |
1134   }
1135   % Initiate second voice
1136   \new Voice {
1137     % Set stems, etc, down
1138     \voiceTwo
1139     s4 r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2 |
1140   }
1141   % Initiate third voice
1142   \new Voice {
1143     % Set stems, etc, up
1144     \voiceThree
1145     s1 | s4 b4 c2 |
1146   }
1147 >>
1148 @end lilypond
1149
1150 @subsubheading Empilement des notes
1151
1152 @cindex note column
1153 @cindex empilement de notes
1154 @cindex collisions de notes
1155 @cindex shift, commandes
1156 @cindex décalage, commandes
1157
1158 @funindex \shiftOff
1159 @funindex shiftOff
1160 @funindex \shiftOn
1161 @funindex shiftOn
1162 @funindex \shiftOnn
1163 @funindex shiftOnn
1164 @funindex \shiftOnnn
1165 @funindex shiftOnnn
1166
1167 Les notes rapprochées d'un accord, ou des notes de différentes voix qui
1168 tombent ensemble, seront rangées sur deux colonnes, voire plus, pour
1169 palier d'éventuels chevauchements des têtes.  On appelle cela des
1170 empilements de notes.  Chaque voix dispose de plusieurs empilements, et 
1171 l'attribution d'un décalage à une voix en particulier s'appliquera à
1172 l'empilement en question s'il y avait risque de collision.
1173 Nous en avons une illustration à la deuxième mesure de l'exemple
1174 ci-dessus : le do de la deuxième voix est décalé à droite du ré de la
1175 première voix et, dans l'accord final, le do de la troisième voix est
1176 lui aussi décalé à droite des autres notes.
1177
1178 Les commandes @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}, et 
1179 @code{\shiftOff} spécifient le degré nécessaire de décalage qui sera
1180 appliqué aux notes ou accords de la voix en question afin d'éviter une
1181 collision.  Par défaut, les voix extérieures -- normalement les
1182 première et deuxième -- se verront attribuer @code{\shiftOff}, alors que
1183 les voix intérieures -- trois et quatre -- se verront attribuer
1184 @code{\shiftOn}.  Lorsqu'un décalage s'applique, les voix un et trois
1185 iront vers la droite, et les voix deux et quatre vers la gauche.
1186
1187 @code{\shiftOnn} et @code{\shiftOnnn} définissent des degrés augmentés
1188 de décalage auquel on peut devoir temporairement recourir dans des
1189 situations complexes -- voir @ref{Exemple concret}.
1190
1191 Un empilement peut ne contenir qu'une note ou un accord dans une voix
1192 aux hampes vers le haut, et une note ou un accord dans une voix
1193 aux hampes vers le bas.  Dans le cas où des notes, issues de deux voix
1194 ayant toutes deux des hampes dans la même direction, se retrouvent au
1195 même moment et qu'aucun décalage n'a été spécifié ou qu'ils sont
1196 identiques, LilyPond vous le signalera par le message @qq{Trop
1197 d'empilements en conflit}.
1198
1199
1200 @seealso
1201 Manuel de notation : @ruser{Plusieurs voix}.
1202
1203
1204 @node Voix et paroles
1205 @subsection Voix et paroles
1206 @translationof Voices and vocals
1207
1208 La musique vocale est une gageure en soi : il nous faut combiner deux
1209 expressions différentes -- des notes et des paroles.
1210
1211 @funindex \new Lyrics
1212 @funindex \lyricsto
1213 @funindex lyricsto
1214 @funindex Lyrics
1215 @cindex Lyrics, création d'un contexte
1216 @cindex paroles, affectation à une voix
1217
1218 Nous avons déjà abordé la commande @code{\addlyrics@{@}}, qui permet de
1219 gérer des partitions simples.  Cette technique est cependant
1220 relativement limitée.  Pour de la musique un peu plus compliquée, il
1221 vous faudra contenir les paroles dans un contexte @code{Lyrics}, créé
1222 par la commande @code{\new Lyrics} ; vous relierez ensuite ces paroles
1223 aux notes grâce à la commande @code{\lyricsto@{@}} et au nom assigné à
1224 la voix en question.
1225
1226 @lilypond[quote,verbatim,fragment]
1227 <<
1228   \new Voice = "one" \relative c'' {
1229     \autoBeamOff
1230     \time 2/4
1231     c4 b8. a16 g4. f8 e4 d c2
1232   }
1233   \new Lyrics \lyricsto "one" {
1234     No more let sins and sor -- rows grow.
1235   }
1236 >>
1237 @end lilypond
1238
1239 Notez bien que les paroles sont liées à un contexte de voix
1240 (@code{Voice}), @strong{non} à un contexte de portée (@code{Staff}).  Il
1241 est donc nécessaire de créer explicitement les contextes @code{Staff}
1242 et @code{Voice}.
1243
1244 @cindex paroles et ligatures
1245 @cindex ligatures et paroles
1246 @funindex \autoBeamOff
1247 @funindex autoBeamOff
1248
1249 Si la ligature automatique que LilyPond applique par défaut
1250 est pleinement adaptée en matière de musique instrumentale, il
1251 n'en va pas de même dans le cas d'une musique associée à des paroles,
1252 et pour laquelle soit les ligatures sont carrément absentes, soit elles
1253 servent à indiquer un mélisme -- plusieurs notes pour une même syllabe.  
1254 Dans l'exemple qui suit, nous utilisons la commande @code{\autoBeamOff}
1255 afin de désactiver les ligatures automatiques.
1256
1257 @funindex \new ChoirStaff
1258 @funindex ChoirStaff
1259 @funindex \lyricmode
1260 @funindex lyricmode
1261 @cindex structure d'une partition vocale
1262 @cindex chœur, partie de
1263
1264 Nous allons reprendre un extrait de Judas Maccabæus pour illustrer ce
1265 que cette technique apporte en flexibilité.  Nous commençons par
1266 utiliser des variables afin de séparer de la structure de la portée 
1267 aussi bien la musique que les paroles.  Nous ajoutons par la même
1268 occasion un crochet spécifique aux portées pour chœur
1269 (@code{ChoirStaff}).  Quant aux blocs de paroles, nous les faisons
1270 précéder de la commande @code{\lyricmode} pour nous assurer qu'elles
1271 seront interprétées comme telles, et non comme de la musique.
1272
1273 @lilypond[quote,verbatim]
1274 global = { \time 6/8 \partial 8 \key f \major}
1275 SopOneMusic = \relative c'' {
1276   c8 | c([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 }
1277 SopTwoMusic = \relative c' {
1278   r8 | r4. r4 c8 | a'([ g)] f f([ e)] d | e([ d)] c bes' }
1279 SopOneLyrics = \lyricmode {
1280   Let | flee -- cy flocks the | hills a -- dorn, __ }
1281 SopTwoLyrics = \lyricmode {
1282   Let | flee -- cy flocks the | hills a -- dorn, }
1283
1284 \score {
1285   \new ChoirStaff <<
1286     \new Staff <<
1287       \new Voice = "SopOne" {
1288         \global
1289         \SopOneMusic
1290       }
1291       \new Lyrics \lyricsto "SopOne" {
1292         \SopOneLyrics
1293       }
1294     >>
1295     \new Staff <<
1296       \new Voice = "SopTwo" {
1297         \global
1298         \SopTwoMusic
1299       }
1300       \new Lyrics \lyricsto "SopTwo" {
1301         \SopTwoLyrics
1302       }
1303     >>
1304   >>
1305 }
1306 @end lilypond
1307
1308 Voici donc la structure de base valable pour toute partition vocale.  On
1309 peut y ajouter d'autres portées si besoin est, d'autres voix à
1310 chaque portée, plusieurs couplets aux paroles, et les variables
1311 contenant la musique peuvent même être stockées dans des fichiers
1312 indépendants dès lors que leur longueur devient conséquente. 
1313
1314 @cindex structure d'hymne
1315 @cindex SATB, structure
1316 @cindex partition vocale avec plusieurs couplets
1317 @cindex couplets multiples et musique vocale
1318
1319 Voici maintenant la première ligne d'une hymne pour chœur à quatre voix
1320 mixtes, comportant quatre couplets.  Les paroles sont ici identiques
1321 pour les quatre voix.  Vous remarquerez le recours aux variables afin de
1322 séparer de la structure de portée aussi bien les notes que les paroles.
1323 Vous noterez aussi une variable particulière, que nous avons appelée
1324 @qq{MetriqueArmure}, et qui contient plusieurs commandes que nous
1325 utiliserons dans les deux portées.  Dans de nombreux autres exemples,
1326 elle s'appelle @qq{global}.
1327
1328 @lilypond[quote,verbatim]
1329 TimeKey = { \time 4/4 \partial 4 \key c \major}
1330 SopMusic   = \relative c' { c4 | e4. e8 g4  g  | a a g }
1331 AltoMusic  = \relative c' { c4 | c4. c8 e4  e  | f f e }
1332 TenorMusic = \relative c  { e4 | g4. g8 c4. b8 | a8 b c d e4 }
1333 BassMusic  = \relative c  { c4 | c4. c8 c4  c  | f8 g a b c4 }
1334 VerseOne   = \lyricmode {
1335   E -- | ter -- nal fa -- ther, | strong to save, }
1336 VerseTwo   = \lyricmode {
1337   O | Christ, whose voice the | wa -- ters heard, }
1338 VerseThree = \lyricmode {
1339   O | Ho -- ly Spi -- rit, | who didst brood }
1340 VerseFour  = \lyricmode {
1341   O | Tri -- ni -- ty of | love and pow'r }
1342
1343 \score {
1344   \new ChoirStaff <<
1345     \new Staff <<
1346       \clef "treble"
1347       \new Voice = "Sop"  { \voiceOne \TimeKey \SopMusic }
1348       \new Voice = "Alto" { \voiceTwo \AltoMusic }
1349       \new Lyrics \lyricsto "Sop" { \VerseOne   }
1350       \new Lyrics \lyricsto "Sop" { \VerseTwo   }
1351       \new Lyrics \lyricsto "Sop" { \VerseThree }
1352       \new Lyrics \lyricsto "Sop" { \VerseFour  }
1353     >>
1354     \new Staff <<
1355       \clef "bass"
1356       \new Voice = "Tenor" { \voiceOne \TimeKey \TenorMusic }
1357       \new Voice = "Bass"  { \voiceTwo \BassMusic  }
1358     >>
1359   >>
1360 }
1361 @end lilypond
1362
1363 @cindex couplet et refrain
1364
1365 Nous allons terminer en voyant comment coder un couplet pour soliste
1366 suivi d'un refrain à deux voix sur deux portées.  Les explications sont
1367 importantes, dans la mesure où les moyens mis en œuvre pour arriver à
1368 enchaîner le solo et la polyphonie dans une seule et même partition sont
1369 quelque peu tirés par les cheveux.
1370
1371 Commençons par ouvrir un bloc @code{score} qui contiendra un
1372 @code{ChoirStaff}, puisque nous aimerions voir un crochet au début du
1373 système choral.  Nous devrions avoir, après @code{\new ChoirStaff}, un
1374 double chevron gauche pour synchroniser les portées ; mais comme nous
1375 reportons le parallélisme après le solo, nous utilisons des accolades --
1376 un double chevron ne serait cependant pas génant.  À l'intérieur du
1377 @code{ChoirStaff}, nous voulons en premier la portée avec le couplet.
1378 Puisqu'elle englobe parallèlement des notes et des paroles, nous devons
1379 encadrer les @code{\new Voice} et @code{\new Lyrics} de doubles
1380 chevrons gauche/droite pour les faire démarrer de concert : 
1381
1382 @lilypond[quote,verbatim,ragged-right]
1383 versenotes = \relative c'' {
1384   \clef "treble"
1385   \key g \major
1386   \time 3/4 g g g b b b
1387 }
1388 versewords = \lyricmode {
1389   One two three four five six
1390 }
1391 \score {
1392   \new ChoirStaff {
1393     \new Staff <<
1394       \new Voice = "verse" {
1395         \versenotes \break
1396       }
1397       \new Lyrics \lyricsto verse {
1398         \versewords
1399       }
1400     >>
1401   }
1402 }
1403 @end lilypond
1404
1405 Voici la ligne du couplet réalisée.
1406
1407 Nous poursuivons avec @code{refrainA}, sur la même portée, alors même
1408 qu'une deuxième portée s'amorce en parallèle pour contenir
1409 @code{refrainB}.  Cette section parallèle doit s'enchaîner directement à
1410 la suite du @code{\break} de la voix contenant le couplet -- il s'agit
1411 bien de la @emph{même} voix.  Voici cette section parallèle.  On
1412 pourrait tout à fait ajouter encore d'autres portées ici, toujours de la
1413 même manière. 
1414
1415 @example
1416 <<
1417   \refrainnotesA
1418   \new Lyrics \lyricsto verse @{
1419     \refrainparolesA
1420   @}
1421   \new Staff <<
1422     \new Voice = "refrainB" @{
1423       \refrainnotesB
1424     @}
1425     \new Lyrics \lyricsto "refrainB" @{
1426       \refrainparolesB
1427     @}
1428   >>
1429 >>
1430 @end example
1431
1432 Et voici le résultat final, avec ses deux portées pour la partie
1433 chorale, et qui montre comment la section en parallèle s'enchaîne avec
1434 la voix du couplet :
1435
1436 @lilypond[quote,verbatim, ragged-right]
1437 versenotes = \relative c'' {
1438   \clef "treble"
1439   \key g \major
1440   \time 3/4 g g g b b b
1441 }
1442 refrainnotesA = \relative c'' {
1443   \time 2/4
1444   c c g g \bar "|."
1445 }
1446 refrainnotesB = \relative c {
1447   \clef "bass"
1448   \key g \major
1449   c e d d
1450 }
1451 versewords = \lyricmode {
1452   One two three four five six
1453 }
1454 refrainwordsA = \lyricmode {
1455   la la la la
1456 }
1457 refrainwordsB = \lyricmode {
1458   dum dum dum dum
1459 }
1460 \score {
1461   \new ChoirStaff {
1462     \new Staff <<
1463       \new Voice = "verse" {
1464         \versenotes \break
1465         <<
1466           \refrainnotesA
1467           \new Lyrics \lyricsto "verse" {
1468             \refrainwordsA
1469           }
1470           \new Staff <<
1471             \new Voice = "refrainB" {
1472               \refrainnotesB
1473             }
1474             \new Lyrics \lyricsto "refrainB" {
1475               \refrainwordsB
1476             }
1477           >>
1478         >>
1479       }
1480       \new Lyrics \lyricsto "verse" {
1481         \versewords
1482       }
1483     >>
1484   }
1485 }
1486 @end lilypond
1487
1488 @cindex book, exemple d'utilisation
1489 @cindex recueil, exemple d'utilisation
1490 @funindex \book
1491 @funindex book
1492
1493 Bien que ce que nous venons de voir constitue un exercice intéressant et
1494 fort utile pour comprendre comment s'articulent des blocs séquentiels et
1495 simultanés, nous aurions aussi pu coder notre exemple sous la forme de
1496 deux blocs @code{\score} au sein d'un bloc @code{\book} implicite :
1497
1498 @lilypond[quote,verbatim,ragged-right]
1499 versenotes = \relative c'' {
1500   \clef "treble"
1501   \key g \major
1502   \time 3/4 g g g b b b
1503 }
1504 refrainnotesA = \relative c'' {
1505   \time 2/4
1506   c c g g \bar "|."
1507 }
1508 refrainnotesB = \relative c {
1509   \clef "bass"
1510   \key g \major
1511   c e d d
1512 }
1513 versewords = \lyricmode {
1514   One two three four five six
1515 }
1516 refrainwordsA = \lyricmode {
1517   la la la la
1518 }
1519 refrainwordsB = \lyricmode {
1520   dum dum dum dum
1521 }
1522 \score {
1523   \new Staff <<
1524     \new Voice = "verse" {
1525       \versenotes
1526     }
1527     \new Lyrics \lyricsto "verse" {
1528       \versewords
1529     }
1530   >>
1531 }
1532
1533 \score {
1534   \new ChoirStaff <<
1535     \new Staff <<
1536       \new Voice = "refrainA" {
1537         \refrainnotesA
1538       }
1539       \new Lyrics \lyricsto "refrainA" {
1540         \refrainwordsA
1541       }
1542     >>
1543     \new Staff <<
1544       \new Voice = "refrainB" {
1545         \refrainnotesB
1546       }
1547       \new Lyrics \lyricsto "refrainB" {
1548         \refrainwordsB
1549       }
1550     >>
1551   >>
1552 }
1553 @end lilypond
1554
1555
1556 @seealso
1557 Manuel de notation : @ruser{Musique vocale}.
1558
1559
1560 @node Contextes et graveurs
1561 @section Contextes et graveurs
1562 @translationof Contexts and engravers
1563
1564 Nous avons évoqué rapidement les contextes et graveurs dans les chapitres
1565 précédents ; examinons en détail ces concepts essentiels à la
1566 maîtrise de LilyPond.
1567
1568 @menu
1569 * Tout savoir sur les contextes::          
1570 * Création d'un contexte::           
1571 * Tout savoir sur les graveurs::         
1572 * Modification des propriétés d'un contexte::  
1573 * Ajout et suppression de graveurs::  
1574 @end menu
1575
1576 @node Tout savoir sur les contextes
1577 @subsection Tout savoir sur les contextes
1578 @translationof Contexts explained
1579
1580 @cindex contextes, les différents
1581
1582 Imprimer de la musique impose d'ajouter un certain nombre d'éléments de
1583 notation.  Par exemple, voici un fragment de partition, précédé du code
1584 qui l'engendre :
1585
1586 @lilypond[quote,verbatim,relative=2,fragment]
1587 cis4 cis2. g4
1588 @end lilypond
1589
1590 Si le code est assez austère, dans la partition ont été ajoutés un
1591 chiffre de mesure, des barres de mesure, des altérations et une clé.
1592 Pour une bonne raison : LilyPond @emph{interprète} le code.  Il le
1593 compulse dans l'ordre chronologique, de même qu'on lit une partition de
1594 gauche à droite ; et pendant ce traitement, le logiciel garde en
1595 mémoire les limites des mesures, ou encore quelles hauteurs de note
1596 demandent des altérations accidentelles.  Ces informations se présentent
1597 à plusieurs niveaux : ainsi, une altération n'a d'effet que sur une
1598 seule portée, tandis qu'une barre de mesure doit être synchronisée sur
1599 toute l'étendue verticale de la partition.
1600
1601 LilyPond regroupe ces règles et ces fragments d'information dans des
1602 @emph{Contextes}.  Certains contextes sont les voix (contexte @code{Voice}),
1603 les portées (contexte @code{Staff}), ou la partition dans son ensemble
1604 (contexte @code{Score}).  Ils sont ordonnés hiérarchiquement : ainsi un
1605 contexte @code{Staff} peut contenir plusieurs contextes
1606 @code{Voice}, et un contexte @code{Score} peut contenir plusieurs
1607 contextes @code{Staff}.
1608
1609 @quotation
1610 @sourceimage{context-example,5cm,,}
1611 @end quotation
1612
1613 Chaque contexte est chargé de faire appliquer certaines règles de gravure,
1614 de créer certains objets, et de prendre en compte les propriétés qui leur
1615 sont associées.  Ainsi, le contexte @code{Voice} peut faire intervenir une
1616 altération accidentelle, puis le contexte @code{Staff} devra déterminer s'il
1617 faudra imprimer ou non cette dernière dans la suite de la mesure.
1618
1619 Les barres de mesure, quant à elles, sont alignées verticalement grâce au
1620 contexte @code{Score} par défaut. 
1621 En revanche, dans une musique polymétrique, par exemple mêlant une
1622 portée à 3/4 et une autre à 4/4, les barres de mesures n'ont plus à être
1623 alignées : il faut alors modifier les comportement par défaut des
1624 contextes @code{Score} et @code{Staff}.
1625
1626 Dans une partition très simple, les contextes sont créés implicitement
1627 et peuvent être ignorés.  Mais lorsqu'il s'agit de morceaux plus amples
1628 -- entendons par là tout ce qui s'écrit sur plus d'une portée -- il faut
1629 les créer explicitement pour être sûr d'obtenir toutes les portées
1630 nécessaires, et dans le bon ordre.  Enfin, pour des morceaux impliquant
1631 une notation spéciale, modifier les contextes ou en créer de nouveaux
1632 devient extrêment utile.
1633
1634 En plus des contextes @code{Score}, @code{Staff} et @code{Voice} sont
1635 disponibles d'autres contextes intermédiaires entre les niveaux 
1636 partition et portée, chargés de gérer certains regroupement, tels que
1637 @code{PianoStaff} ou @code{ChoirStaff}.  Vous disposez aussi d'autres
1638 contextes de portée ou de voix alternatifs, ainsi que des contextes
1639 spécifiques pour les paroles, les percussions, les tablatures
1640 d'instruments frettés, la basse chiffrée, etc.
1641
1642 Le nom de chacun des contextes est formé d'un ou plusieurs mots aux
1643 initiales en capitale et directement accolés les uns aux autres sans
1644 ponctuation, comme par exemple @code{GregorianTranscriptionStaff}.
1645
1646
1647 @seealso
1648 Manuel de notation : @ruser{Tout savoir sur les contextes}.
1649
1650
1651 @node Création d'un contexte
1652 @subsection Création d'un contexte
1653 @translationof Creating contexts
1654
1655 @funindex \new
1656 @funindex new
1657
1658 @cindex nouveaux contextes
1659 @cindex contextes, création de
1660
1661 Il en va des contextes comme de toute hiérarchie : il faut un sommet -- 
1662 le contexte @code{Score} en l'occurence.  La commande @code{\score} est
1663 chargée de le créer, mais pour des partitions simples, il le sera
1664 automatiquement.  Le bloc @code{score} contient donc une expression
1665 musicale unique ainsi que la définition des supports à produire --
1666 @code{\layout} pour du visuel ou @code{\midi} pour de l'acoustique.
1667
1668 Lorsqu'une partition ne comporte qu'une voix et une seule portée, vous
1669 pouvez laisser LilyPond créer automatiquement les contextes @code{Voice} 
1670 et @code{Staff} ; mais leur présence explicite devient indispensable dès
1671 que la situation se complique.  
1672 Le moyen le plus simple est d'utiliser la commande @code{\new}.  Elle
1673 doit intervenir avant une expression musicale, ainsi :
1674
1675 @example
1676 \new @var{type} @var{expression-musicale}
1677 @end example
1678
1679 @noindent
1680 où @var{type} correspond au nom du contexte (tels @code{Staff} ou
1681 @code{Voice}).  Cette commande crée un nouveau contexte, puis 
1682 interprète l'@var{expression-musicale} contenue dans ledit
1683 contexte.  
1684
1685 Notez bien que la commande @code{\new Score} n'est pas obligatoire,
1686 puisque le contexte premier que constitue @code{Score} est créé
1687 automatiquement par l'interprétation de l'@var{expression-musicale}
1688 contenue dans le bloc @code{\score}.  Le seul cas où il faut créer
1689 explicitement un contexte @code{Score} à l'aide de la commande
1690 @code{\new score} est lorsqu'il comprendra un bloc @code{\with} aux fins
1691 de stipuler les propriétés de certains contextes qui s'appliqueront à
1692 l'ensemble de la partition.  Vous trouverez plus dinformation sur
1693 l'utilisation des blocs @code{\with} au chapitre 
1694 @ref{Modification des propriétés d'un contexte}. 
1695
1696 Nous avons déjà vu au cours des chapitres précédents de nombreux
1697 exemples où des contextes @code{Staff} ou @code{Voice} étaient créés au
1698 besoin.  Dans un but didactique, voici maintenant une application
1699 complète et abondamment commentée : 
1700
1701 @lilypond[quote,verbatim,ragged-right]
1702 \score {  % start of single compound music expression
1703   <<  % start of simultaneous staves section
1704     \time 2/4
1705     \new Staff {  % create RH staff
1706       \key g \minor
1707       \clef "treble"
1708       \new Voice {  % create voice for RH notes
1709         \relative c'' {  % start of RH notes
1710           d4 ees16 c8. |
1711           d4 ees16 c8. |
1712         }  % end of RH notes
1713       }  % end of RH voice
1714     }  % end of RH staff
1715     \new Staff <<  % create LH staff; needs two simultaneous voices
1716       \key g \minor
1717       \clef "bass"
1718       \new Voice {  % create LH voice one
1719         \voiceOne
1720         \relative g {  % start of LH voice one notes
1721           g8 <bes d> ees, <g c> |
1722           g8 <bes d> ees, <g c> |
1723         }  % end of LH voice one notes
1724       }  % end of LH voice one
1725       \new Voice {  % create LH voice two
1726         \voiceTwo
1727         \relative g {  % start of LH voice two notes
1728           g4 ees |
1729           g4 ees |
1730         }  % end of LH voice two notes
1731       }  % end of LH voice two
1732     >>  % end of LH staff
1733   >>  % end of simultaneous staves section
1734 }  % end of single compound music expression
1735 @end lilypond
1736
1737 Notez que toute déclaration qui ouvre un bloc par une
1738 accolade, @code{@{}, ou un double chevron gauche, @code{<<}, est
1739 indentée de deux espaces supplémentaires, et de deux autres pour sa
1740 marque de fermeture.  Bien que ceci ne soit pas obligatoire, nous vous
1741 invitons à adopter cette pratique qui vous évitera nombre d'erreurs
1742 @qq{accolades non appariées}.  La structure de la musique apparaît ainsi
1743 au premier coup d'œil, et les défauts de parité plus facilement
1744 repérables.  Vous remarquerez que la portée MG est créée à l'aide d'un
1745 double chevron gauche -- nécessaire pour gérer ses deux voix -- alors que la
1746 portée MD ne contient qu'une seule expression musicale -- il n'y a
1747 qu'une voix -- bornée par des accolades simples.
1748
1749 @cindex contexte, nommage
1750 @cindex nommage des contextes
1751
1752 La commande @code{\new} peut aussi permettre de nommer le contexte créé,
1753 et ainsi le distinguer des autres contextes déjà existants :
1754
1755 @example
1756 \new @var{type} = @var{"UnNom"} @var{expression-musicale}
1757 @end example
1758
1759 Vous noterez la distinction entre le nom du type de contexte,
1760 @code{Staff}, @code{Voice}, etc. et le nom -- une simple suite de
1761 lettres au bon gré de l'utilisateur -- permettant d'identifier une
1762 instance particulière du type en question.  Vous pouvez utiliser des
1763 chiffres et espaces, à la stricte condition d'englober le tout dans des
1764 guillemets ; l'identificateur suivant est tout à fait valide :
1765 @w{@code{\new Staff = "MaPortee 1" @var{expression-musicale}}}.  
1766 Comme nous l'avons déjà vu dans le chapitre consacré aux paroles 
1767 (@ref{Voix et paroles}), cet identifiant permettra ensuite de se
1768 référer à ce contexte particulier. 
1769
1770
1771 @seealso
1772 Manuel de notation : @ruser{Création d'un contexte}.
1773
1774
1775 @node Tout savoir sur les graveurs
1776 @subsection Tout savoir sur les graveurs
1777 @translationof Engravers explained
1778
1779 @cindex engravers
1780 @cindex graveurs
1781
1782 Tout point qui compose une partition générée par LilyPond est
1783 produit par un graveur (@emph{engraver} en anglais).   Ainsi, il y en a
1784 un qui imprime les portées, un autre les têtes de note, un autre les
1785 hampes, un autre encore pour les ligatures, etc.  LilyPond dispose de
1786 plus de 120 graveurs ! La plupart des partitions ne requièrent de
1787 s'intéresser qu'à quelques-uns seulement, et pour des partitions
1788 simples, vous n'aurez même pas à vous en préoccuper.
1789
1790 Les graveurs résident et opèrent au sein des contextes.
1791 Les graveurs tels que le @code{Metronome_mark_engraver}, dont les effets 
1792 s'appliquent à la partition dans son intégralité, opèrent au sein du
1793 contexte de plus haut niveau -- le contexte @code{Score}. 
1794
1795 Les graveurs @code{Clef_engraver} et @code{Key_engraver} seront logés
1796 dans chacun des contextes @code{Staff} ; deux portées peuvent requérir
1797 des clefs et des armures différentes.
1798
1799 Les graveurs @code{Note_heads_engraver} et @code{Stem_engraver} résident
1800 dans chacun des contextes @code{Voice}, contexte du plus bas niveau.
1801
1802 Chaque graveur confectionne les objets spécifiquement associés à sa
1803 fonction et traite les propriétés attachées à cette fonction.  Ces
1804 propriétés, tout comme celles relatives aux contextes, peuvent être
1805 modifiées afin d'influencer le comportement du graveur et par voie de
1806 conséquence le rendu des éléments dont il a la charge.
1807
1808 Les graveurs ont tous un nom composé, formé des différents mots
1809 décrivant leur fonction.  Seule l'initiale du premier mot est en
1810 majuscule, et les mots qui le composent sont joints par un caractère
1811 souligné.  Ainsi, le @code{Staff_symbol_engraver} est chargé de créer
1812 les lignes de la portée, et le @code{Clef_engraver} détermine la hauteur
1813 de référence de la portée en dessinant le symbole de la clef.
1814
1815 Voici quelques-uns des graveurs les plus courants, ainsi que leur
1816 fonction.  Vous noterez qu'il est facile d'en connaître la fonction à
1817 partir du nom, et vice versa.
1818
1819 @multitable @columnfractions .3 .7
1820 @headitem Graveur
1821   @tab Fonction
1822 @item Accidental_engraver
1823   @tab Crée les altérations, y compris de précaution, accidentelles ou suggérées
1824 @item Beam_engraver
1825   @tab Grave les ligatures
1826 @item Clef_engraver
1827   @tab Grave les clefs
1828 @item Completion_heads_engraver
1829   @tab Divise les notes qui dépassent de la mesure
1830 @item Dynamic_engraver
1831   @tab Crée les soufflets et textes de nuance
1832 @item Forbid_line_break_engraver
1833   @tab Empêche un saut de ligne si un élément musical est toujours actif
1834 @item Key_engraver
1835   @tab Crée l'armure
1836 @item Metronome_mark_engraver
1837   @tab Grave les indications métronomiques
1838 @item Note_heads_engraver
1839   @tab Grave les têtes de note
1840 @item Rest_engraver
1841   @tab Grave les silences
1842 @item Staff_symbol_engraver
1843   @tab Grave les cinq lignes (par défaut) de la portée
1844 @item Stem_engraver
1845   @tab Crée les hampes et les trémolos sur une hampe unique
1846 @item Time_signature_engraver
1847   @tab Crée les métriques
1848 @end multitable
1849
1850 @smallspace
1851
1852 Nous verrons plus avant comment le résultat de LilyPond peut changer
1853 lorsqu'on modifie l'action des graveurs.
1854
1855
1856 @seealso
1857 Référence des propriétés internes : 
1858 @rinternals{Engravers and Performers}.
1859
1860
1861 @node Modification des propriétés d'un contexte
1862 @subsection Modification des propriétés d'un contexte
1863 @translationof Modifying context properties
1864
1865 @cindex contexte, propriétés
1866 @cindex propriétés d'un contexte, modification
1867 @cindex modification des propriétés d'un contexte
1868 @funindex \set
1869 @funindex set
1870 @funindex \unset
1871 @funindex unset
1872
1873 Les contextes gèrent les différentes valeurs des nombreuses
1874 @emph{propriétés} qui leur sont attachées.  Beaucoup d'entre elles
1875 sont susceptibles d'être modifiées afin d'influer sur l'interprétation
1876 de l'input et ainsi changer l'apparence du résultat.  On les modifie 
1877 grâce à la commande @code{\set}, qui s'utilise ainsi :
1878
1879 @example
1880 \set @emph{ContexteNommé}.@emph{propriétéNommée} = #@emph{valeur}
1881 @end example
1882
1883 où @emph{ContexteNommé} est habituellement @code{Score},
1884 @code{Staff} ou @code{Voice}.  S'il n'est pas mentionné, il sera
1885 considéré comme étant @code{Voice}.
1886
1887 Les noms des propriétés de contexte sont composés de mots accolés sans
1888 trait d'union ni caractère souligné, et dont seul le premier n'aura pas
1889 d'initiale en majuscule.  Voici quelques exemples de celles les plus
1890 communément utilisées.
1891
1892 @c attempt to force this onto a new page
1893 @need 50
1894 @multitable @columnfractions .25 .15 .45 .15
1895 @headitem propriétéNommée
1896   @tab Type
1897   @tab Fonction
1898   @tab Exemple de valeur
1899 @item extraNatural
1900   @tab Booléen
1901   @tab Si vrai, ajoute un bécarre avant une altération accidentelle
1902   @tab @code{#t}, @code{#f}
1903 @item currentBarNumber
1904   @tab Entier
1905   @tab Détermine le numéro de la mesure en cours
1906   @tab @code{50}
1907 @item doubleSlurs
1908   @tab Booléen
1909   @tab Si vrai, imprime les liaisons au-dessous @strong{et} au-dessus des notes
1910   @tab @code{#t}, @code{#f}
1911 @item instrumentName
1912   @tab Texte
1913   @tab Détermine le nom à afficher en début de portée
1914   @tab @code{"Cello I"}
1915 @item fontSize
1916   @tab Réel
1917   @tab Augmente ou diminue la taille de la fonte
1918   @tab @code{2.4}
1919 @item stanza
1920   @tab Texte
1921   @tab Détermine le texte à imprimer avant le début d'un couplet
1922   @tab @code{"2"}
1923 @end multitable
1924
1925 @noindent
1926 où un boléen correspond soit à vrai (@code{#t} pour @emph{True} en
1927 anglais) ou faux (@code{#f} pour @emph{False} en anglais), un entier est
1928 un nombre entier positif, un réel est un nombre décimal positif ou
1929 négatif, et texte correspond à une suite de caractères encadrée par des
1930 apostrophes doubles.  Attention à la présence des signes dièse
1931 (@code{#}) dans deux cas particuliers : ils sont partie intégrante des
1932 valeurs boléennes et précèdent les @code{t} ou @code{f}, mais doivent
1933 aussi précéder @emph{valeur} dans le libellé de la commande @code{\set}.
1934 Il faudra donc, dans le cas d'une valeur boléenne, ne pas oublier de
1935 saisir deux signes dièse -- par exemple @code{##t}.
1936
1937 @cindex propriétés et contextes
1938 @cindex réglage de propriétés au sein des contextes
1939
1940 Avant de déterminer l'une de ces propriétés, nous devons savoir dans
1941 quel contexte elle intervient.  Si cela est bien souvent évident, il
1942 peut arriver que cela tourne au cauchemar.  Lorsque vous ne spécifiez
1943 pas le bon contexte, aucun message d'erreur ne s'affiche et l'effet
1944 attendu n'est pas au rendez-vous.  Par exemple, le @code{instrumentName}
1945 est de manière incontestable membre du contexte @code{Staff}, puisque
1946 c'est bien la portée que l'on va nommer.
1947 Dans l'exemple suivant, la première portée affiche effectivement un nom,
1948 alors que ce n'est pas le cas pour la deuxième dans la mesure où le
1949 contexte n'a pas été spécifié.
1950
1951 @lilypond[quote,verbatim,ragged-right]
1952 <<
1953   \new Staff \relative c'' {
1954     \set Staff.instrumentName = #"Soprano"
1955     c4 c
1956  }
1957   \new Staff \relative c' {
1958   \set instrumentName = #"Alto"  % Wrong!
1959   d4 d
1960  }
1961 >>
1962 @end lilypond
1963
1964 Dans la mesure où le nom de contexte par défaut est @code{Voice}, la
1965 deuxième commande @code{\set} a défini @qq{Alto} comme propriété
1966 @code{instrumentName} du contexte de voix.  Puisque LilyPond n'ira pas
1967 chercher une telle propriété dans le contexte @code{Voice}, celle-ci ne
1968 sera pas interprétée.  Il ne s'agit pas d'une erreur, aucun message
1969 d'erreur ne sera ni émis ni enregistré. 
1970
1971 De la même manière, une faute d'orthographe dans le nom de la propriété
1972 ne génèrera aucun message d'erreur et l'action escomptée ne se produira
1973 pas.  Vous pourriez déterminer par la commande @code{\set} n'importe
1974 quelle @qq{propriété}, même fictive, à partir de n'importe quel nom et
1975 dans n'importe lequel des contextes disponibles.  Mais tant que ce nom
1976 est inconnu de LilyPond, rien ne se passera.  Certains éditeurs de texte
1977 disposent d'une prise en charge spécifique aux fichiers source LilyPond,
1978 à l'instar de LilyPondTool couplé à JEdit et qui documente les noms des
1979 propriétés dans une infobulle lorsque vous les survolez à la souris, ou 
1980 les souligne différemment s'ils sont inconnus, comme ConTEXT.  Dans le
1981 cas où votre éditeur ne dispose pas de ces fonctionnalités, nous vous
1982 recommandons de vérifier le nom des propriétés que vous manipulez dans
1983 le Manuel de références internes -- voir 
1984 @rinternals{Tunable context properties}, ou @rinternals{Contexts}.
1985
1986 La propriété @code{instrumentName} ne sera prise en compte que si elle
1987 est définie dans un contexte @code{Staff} ; d'autres propriétés peuvent
1988 par contre être définies dans plusieurs contextes différents.  C'est le
1989 cas de la propriété @code{extraNatural} qui est définie par défaut à
1990 @code{##t} (vrai) pour toutes les portées.  Si vous lui attribuez la
1991 valeur @code{##f} (faux) dans un contexte @code{Staff} particulier, elle
1992 ne s'appliquera qu'aux altérations de la portée en question ; si vous
1993 lui attribuez la valeur @qq{faux} au niveau du contexte @code{Score},
1994 cela s'appliquera alors à toutes les portées.
1995
1996 Voici comment supprimer les bécarres supplémentaires pour une portée :
1997
1998 @lilypond[quote,verbatim,ragged-right]
1999 <<
2000   \new Staff \relative c'' {
2001     ais4 aes
2002  }
2003   \new Staff \relative c'' {
2004     \set Staff.extraNatural = ##f
2005     ais4 aes
2006  }
2007 >>
2008 @end lilypond
2009
2010 @noindent
2011 et pour toutes les portées :
2012
2013 @lilypond[quote,verbatim,ragged-right]
2014 <<
2015   \new Staff \relative c'' {
2016     ais4 aes
2017  }
2018   \new Staff \relative c'' {
2019     \set Score.extraNatural = ##f
2020     ais4 aes
2021  }
2022 >>
2023 @end lilypond
2024
2025 Autre exemple, si la propriété @code{clefOctavation} est déterminée au
2026 niveau du contexte @code{Score}, elle modifiera la valeur de l'octave en
2027 cours pour toutes les portées actives ; cette valeur sera considérée
2028 comme étant la nouvelle valeur par défaut pour toutes les portées à
2029 venir.
2030
2031 La commande opposée, @code{\unset}, efface la propriété du contexte ; la
2032 plupart des propriétés reviennent de ce fait à leur valeur par défaut.
2033 En règle générale, la commande @code{\unset} n'est pas nécessaire dès
2034 lors que vous faites appel à une nouvelle commande @code{\set} pour
2035 modifier le réglage.
2036
2037 Les commandes @code{\set} et @code{\unset} peuvent intervenir n'importe
2038 où dans votre fichier source.  Elles seront effectives dès leur
2039 apparition et jusqu'à la fin de la partition, à moins d'être affectées
2040 par un @code{\unset} ou un nouveau @code{\set}.  À titre d'exemple, nous
2041 allons jouer avec la taille des fontes, ce qui affecte entre
2042 autres la grosseur des têtes de note.  Les modifications s'appliquent
2043 toujours par rapport à la valeur par défaut, non par rapport à la
2044 dernière valeur définie.
2045
2046 @lilypond[quote,verbatim,ragged-right,relative=1,fragment]
2047 c4
2048 % make note heads smaller
2049 \set fontSize = #-4
2050 d e
2051 % make note heads larger
2052 \set fontSize = #2.5
2053 f g
2054 % return to default size
2055 \unset fontSize
2056 a b
2057 @end lilypond
2058
2059 Nous venons de voir comment déterminer la valeur de différents types de
2060 propriété.  N'oubliez pas que les nombres, entiers ou réels, doivent
2061 être précédés d'un signe dièse (@code{#}) et les valeurs vrai ou faux de
2062 deux signes dièse -- respectivement @code{##t} et @code{##f} --. Une
2063 valeur textuelle doit être encadrée de guillemets anglais,
2064 @code{``@dots{ }''}, bien que, comme nous le constaterons plus tard, la
2065 commande @code{\markup} permet aussi de spécifier du texte.
2066
2067 @unnumberedsubsubsec Définition des propriétés de contexte avec @code{\with}
2068
2069 @funindex \with
2070 @funindex with
2071 @cindex propriétés d'un contexte, définition avec \with
2072
2073 Les propriétés d'un contexte peuvent aussi être réglées lors de la
2074 création de ce contexte.  Ceci constitue parfois une façon plus claire
2075 de spécifier les valeurs d'une propriété pour la durée de vie du
2076 contexte.  Lorsque vous créez un contexte à l'aide de la commande
2077 @code{\new}, vous pouvez la faire suivre immédiatement d'un bloc
2078 @w{@code{\with @{ .. @}}} qui contiendra les réglages des différentes
2079 propriétés.  Ainsi, si nous voulions par exemple annuler l'impression des
2080 bécarres supplémentaires sur la durée d'une portée, nous écririons :
2081
2082 @example
2083 \new Staff \with @{ extraNatural = ##f @}
2084 @end example
2085
2086 @noindent
2087 ce qui donnerait :
2088
2089 @lilypond[quote,verbatim,ragged-right]
2090 <<
2091   \new Staff
2092   \relative c'' {
2093     gis ges aes ais
2094   }
2095   \new Staff \with { extraNatural = ##f }
2096   \relative c'' {
2097     gis ges aes ais
2098   }
2099 >>
2100 @end lilypond
2101
2102 Dans le cas où ces ajustements de propriété doivent affecter
2103 toutes les portées de la partition, nous utiliserons alors
2104 l'instruction @code{\new Score}, comme ici :
2105
2106 @lilypond[quote,verbatim,ragged-right]
2107 \score {
2108   \new Score \with { extraNatural = ##f } <<
2109     \new Staff {
2110       \relative c'' {
2111         gis ges aes ais
2112       }
2113     }
2114     \new Staff {
2115       \relative c'' {
2116         gis ges aes ais
2117       }
2118     }
2119   >>
2120 }
2121 @end lilypond
2122
2123 Les propriétés réglées de cette manière peuvent néanmoins être modifiées
2124 de façon dynamique grâce à @code{\set} ; un @code{\unset} les ramènera à
2125 leur valeur par défaut.
2126
2127 @cindex fontSize, valeur par défaut et réglage
2128
2129 La propriété @code{fontSize} constitue une exception : lorsqu'elle est
2130 déterminée au sein d'un bloc @code{\with}, cela redéfinit la valeur par
2131 défaut de la taille de fonte.  Une modification est possible par la
2132 commande @code{\set}, mais la commande @code{\unset fontSize} fera
2133 revenir à la nouvelle valeur par défaut.
2134
2135 @unnumberedsubsubsec Définition des propriétés de contexte avec @code{\context}
2136
2137 @cindex propriétés d'un contexte, définition avec \context
2138 @funindex \context
2139 @funindex context
2140
2141 Vous pouvez régler les valeurs des propriétés de contexte en une seule
2142 fois pour tous les contextes d'un même type, par exemple tous les
2143 contextes @code{Staff}.  Le type du contexte doit être donné
2144 explicitement d'après son nom, par exemple @code{Staff}, précédé d'une
2145 oblique inverse, donc nous saisirons @code{\Staff}.  La manière de
2146 régler la valeur des propriétés est la même que ce que nous avons vu
2147 avec la commande @code{\with}, puisqu'on se place dans un bloc
2148 @code{\context} inclus dans un bloc @code{\layout}.  Chaque bloc
2149 @code{\context} affectera tous les contextes concernés par le bloc
2150 @code{\score} ou @code{\book} au sein duquel apparaît ce bloc
2151 @code{\layout}.  Voici comment le mettre en place :
2152
2153 @lilypond[verbatim,quote]
2154 \score {
2155   \new Staff {
2156     \relative c'' {
2157       cis4 e d ces
2158     }
2159   }
2160   \layout {
2161     \context {
2162       \Staff
2163       extraNatural = ##t
2164     }
2165   }
2166 }
2167 @end lilypond
2168
2169 @noindent
2170 Les propriétés de contexte ainsi définies peuvent être adaptées pour
2171 chacun des contextes en particulier grâce à un bloc @code{\with} ou bien
2172 une commande @code{\set} au fil des notes.
2173
2174
2175 @seealso
2176 Manuel de notation : 
2177 @ruser{Modification des réglages par défaut d'un contexte},
2178 @c uncomment when backslash-node-name issue is resolved -pm
2179 @c @ruser{La commande de fixation (set)}.
2180
2181 Référence des propriétés internes : 
2182 @rinternals{Contexts},
2183 @rinternals{Tunable context properties}.
2184
2185
2186 @node Ajout et suppression de graveurs
2187 @subsection Ajout et suppression de graveurs
2188 @translationof Adding and removing engravers
2189
2190 @cindex graveurs, ajout
2191 @cindex graveurs, suppression
2192
2193 @funindex \consists
2194 @funindex consists
2195 @funindex \remove
2196 @funindex remove
2197
2198 Nous avons vu que chaque contexte met en œuvre plusieurs graveurs, et
2199 que chacun de ces graveurs est chargé de générer une composante
2200 particulière du fichier de sortie, qui les barres de mesure, qui la
2201 portée, qui les têtes de note, les hampes, etc.  Le fait de supprimer un
2202 graveur d'un contexte éliminera sa contribution au fichier de sortie.
2203 Bien que ce soit là un moyen radical de modifier le résultat, cette
2204 pratique est dans quelques cas fort utile.
2205
2206 @subsubheading Modification d'un seul contexte
2207
2208 Nous utilisons, pour supprimer un graveur d'un contexte, la commande
2209 @code{\with} dès la création dudit contexte, comme nous l'avons vu dans
2210 la section précédente.
2211
2212 Illustrons notre propos en reprenant un exemple du chapitre précédent,
2213 duquel nous supprimerons les lignes de la portée.  Pour mémoire, les
2214 lignes d'une portée sont générées par le @code{Staff_symbol_engraver}.
2215
2216 @lilypond[quote,verbatim,ragged-right]
2217 \new Staff \with {
2218   \remove Staff_symbol_engraver
2219 }
2220 \relative c' {
2221   c4
2222   \set fontSize = #-4  % make note heads smaller
2223   d e
2224   \set fontSize = #2.5  % make note heads larger
2225   f g
2226   \unset fontSize  % return to default size
2227   a b
2228 }
2229 @end lilypond
2230
2231 @cindex ambitus, graveur
2232
2233 Vous pouvez aussi ajouter individuellement un graveur à un contexte. La
2234 commande se formule ainsi :
2235
2236 @code{\consists @var{Nom_du_graveur}}
2237
2238 @noindent
2239 et se place dans un bloc @code{\with}.  Certaines partitions vocales
2240 font apparaître un @rglos{ambitus} au début de la portée, afin
2241 d'indiquer ses notes extrêmes.  L'ambitus est généré par
2242 l'@code{Ambitus_engraver}, que l'on peut adjoindre à n'importe quel
2243 contexte.  Si nous l'ajoutons au contexte @code{Voice}, seule la
2244 tessiture de cette voix sera calculée :
2245
2246 @lilypond[quote,verbatim,ragged-right]
2247 \new Staff <<
2248   \new Voice \with {
2249     \consists Ambitus_engraver
2250   }
2251   \relative c'' {
2252     \voiceOne
2253     c a b g
2254   }
2255   \new Voice
2256   \relative c' {
2257     \voiceTwo
2258     c e d f
2259   }
2260 >>
2261 @end lilypond
2262
2263 @noindent
2264 alors que si nous l'ajoutons au contexte @code{Staff},
2265 l'@code{Ambitus_engraver} calculera l'écart maximal à partir de toutes
2266 les notes de toutes les voix de la portée :
2267
2268 @lilypond[quote,verbatim,ragged-right]
2269 \new Staff \with {
2270     \consists Ambitus_engraver
2271   }
2272   <<
2273   \new Voice
2274   \relative c'' {
2275     \voiceOne
2276     c a b g
2277   }
2278   \new Voice
2279   \relative c' {
2280     \voiceTwo
2281     c e d f
2282   }
2283 >>
2284 @end lilypond
2285
2286 @subsubheading Modification de tous les contextes d'un même type
2287
2288 @funindex \layout
2289 @funindex layout
2290
2291 Les exemples ci-dessus nous ont montré comment ajouter ou retirer des
2292 graveurs à des contextes individuels.  Nous pourrions aussi ajouter ou
2293 supprimer des graveurs à tous les contextes d'un même type en insérant
2294 les commandes pour le contexte approprié au sein d'un bloc
2295 @code{\layout}.  Si nous voulions afficher un ambitus pour chacune des
2296 portées d'un système à quatre portées, il nous suffirait d'écrire :
2297
2298 @lilypond[quote,verbatim,ragged-right]
2299 \score {
2300   <<
2301     \new Staff <<
2302       \relative c'' { c a b g }
2303     >>
2304     \new Staff <<
2305       \relative c' { c a b g }
2306     >>
2307     \new Staff <<
2308       \clef "G_8"
2309       \relative c' { c a b g }
2310     >>
2311     \new Staff <<
2312       \clef "bass"
2313       \relative c { c a b g }
2314     >>
2315   >>
2316   \layout {
2317     \context {
2318       \Staff
2319       \consists Ambitus_engraver
2320     }
2321   }
2322 }
2323 @end lilypond
2324
2325 @noindent
2326 Vous réglerez de la même manière les propriétés de tous les contextes
2327 d'un type particulier si vous insérez les commandes @code{\set} dans un
2328 bloc @code{\context}.
2329
2330
2331 @seealso
2332 Manuel de notation : @ruser{Modification des greffons de contexte}, 
2333 @ruser{Modification des réglages par défaut d'un contexte}.
2334
2335
2336 @node Extension des modèles
2337 @section Extension des modèles
2338 @translationof Extending the templates
2339
2340 Bon, vous avez lu le tutoriel, vous savez écrire de la musique.  Mais
2341 comment obtenir les portées que vous voulez ?  Les @ref{Modèles},
2342 c'est bien beau, mais que faire quand ils ne traitent pas ce que l'on
2343 veut précisément ?
2344
2345 Les exemples qui suivent vous donneront des méthodes générales pour
2346 adapter des modèles.
2347
2348 @menu
2349 * Soprano et violoncelle::           
2350 * Partition pour chœur à quatre voix mixtes::  
2351 * Écriture d'une partition à partir de zéro::  
2352 * Économie de saisie grâce aux identificateurs et fonctions::  
2353 * Conducteurs et parties::            
2354 @end menu
2355
2356 @node Soprano et violoncelle
2357 @subsection Soprano et violoncelle
2358 @translationof Soprano and cello
2359
2360 @cindex modèles, modification des
2361
2362 Commencez par le modèle qui vous semblera le plus proche de ce à quoi
2363 vous voulez aboutir.  Disons par exemple que vous voulez écrire une pièce
2364 pour soprano et violoncelle : dans ce cas, on pourrait commencer par les
2365 @qq{notes et paroles}, pour la partie de soprano.
2366
2367 @example
2368 \version @w{"@version{}"}
2369 melodie = \relative c' @{
2370   \clef treble
2371   \key c \major
2372   \time 4/4
2373
2374   a4 b c d
2375 @}
2376
2377 texte = \lyricmode @{
2378   Aaa Bee Cee Dee
2379 @}
2380
2381 \score@{
2382   <<
2383     \new Voice = "un" @{
2384       \autoBeamOff
2385       \melodie
2386     @}
2387     \new Lyrics \lyricsto "un" \texte
2388   >>
2389   \layout @{ @}
2390   \midi @{ @}
2391 @}
2392 @end example
2393
2394 Maintenant, on veut ajouter une partie de violoncelle.
2395 Jetons un coup d'œil sur l'exemple avec les notes seules :
2396
2397 @example
2398 \version @w{"@version{}"}
2399 melodie = \relative c' @{
2400   \clef treble
2401   \key c \major
2402   \time 4/4
2403
2404   a4 b c d
2405 @}
2406
2407 \score @{
2408 \new Staff \melodie
2409 \layout @{ @}
2410 \midi @{ @}
2411 @}
2412 @end example
2413
2414 On n'a pas besoin de deux commandes @code{\version}.  Ce dont on a
2415 besoin, c'est de la section @code{melodie}. De même, on n'a pas besoin
2416 de deux sections @code{\score} -- si nous les gardions toutes les deux,
2417 on obtiendrait deux parties séparées ; mais nous voulons un vrai duo,
2418 avec les deux parties ensemble.  Dans la section @code{\score}, on n'a
2419 pas besoin non plus de deux @code{\layout} ni de deux @code{\midi}.
2420
2421 Si on se contente de couper et coller les sections @code{melodie}, on se
2422 retrouvera avec deux sections de ce nom ; il nous faut donc les renommer.
2423 Appelons la section pour la soprano @code{sopranoMusique} et celle pour le
2424 violoncelle @code{violoncelleMusique}.  Tant qu'on y est, renommons 
2425 @code{texte} en @code{sopranoParoles}.  Attention à bien renommer les
2426 deux occurrences de chacune de ces dénominations : c'est-à-dire la
2427 définition de départ, où l'on trouve @w{@code{melodie = \relative c' @{ }},
2428 et l'endroit où cette dénomination est utilisée, dans la section 
2429 @code{\score}.
2430
2431 Et puis, toujours tant qu'on y est, mettons le violoncelle en clé de fa,
2432 comme le veut l'usage, et donnons-lui d'autres notes.
2433
2434 @example
2435 \version @w{"@version{}"}
2436 sopranoMusique = \relative c' @{
2437   \clef treble
2438   \key c \major
2439   \time 4/4
2440
2441   a4 b c d
2442 @}
2443
2444 sopranoParoles = \lyricmode @{
2445   Laaa Siii Dooo Rééé
2446 @}
2447
2448 violoncelleMusique = \relative c @{
2449   \clef bass
2450   \key c \major
2451   \time 4/4
2452
2453   d4 g fis8 e d4
2454 @}
2455
2456 \score@{
2457   <<
2458     \new Voice = "un" @{
2459       \autoBeamOff
2460       \sopranoMusique
2461     @}
2462     \new Lyrics \lyricsto "un" \sopranoParoles
2463   >>
2464   \layout @{ @}
2465   \midi @{ @}
2466 @}
2467 @end example
2468
2469 Voilà qui est mieux, mais la partie de violoncelle n'apparaît pas sur
2470 la partition -- en effet, nous n'y avons pas fait appel dans la section
2471 @code{\score}.  Si l'on veut que la partie de violoncelle s'imprime sous
2472 la partie de soprano, on va devoir ajouter :
2473
2474 @example
2475 \new Staff \musiqueVioloncelle
2476 @end example
2477
2478 @noindent
2479 en dessous de tout ce qui concerne la soprano.  Il nous faut également
2480 encadrer la musique par des @code{<<} et @code{>>}, qui feront comprendre
2481 à LilyPond que plusieurs événements -- ici, des objets @code{Staff} --
2482 se déroulent en même temps.  Le bloc @code{\score} ressemble maintenant à
2483
2484 @c Indentation in this example is deliberately poor
2485 @example
2486 \score @{
2487   <<
2488   <<
2489     \new Voice = "un" @{
2490       \autoBeamOff
2491       \sopranoMusique
2492     @}
2493     \new Lyrics \lyricsto "un" \sopranoParoles
2494   >>
2495   \new Staff \violoncelleMusique
2496   >>
2497   \layout @{ @}
2498   \midi @{ @}
2499 @}
2500 @end example
2501
2502 @noindent
2503 C'est un peu le bazar dans tout ça ; mais il vous sera facile de
2504 mettre un peu d'ordre dans l'indentation.  Voici le modèle pour
2505 soprano et violoncelle au complet :
2506
2507 @lilypond[quote,verbatim,ragged-right,addversion]
2508 sopranoMusic = \relative c' {
2509   \clef treble
2510   \key c \major
2511   \time 4/4
2512   a4 b c d
2513 }
2514
2515 sopranoLyrics = \lyricmode {
2516   Aaa Bee Cee Dee
2517 }
2518
2519 celloMusic = \relative c {
2520   \clef bass
2521   \key c \major
2522   \time 4/4
2523   d4 g fis8 e d4
2524 }
2525
2526 \score {
2527   <<
2528     <<
2529       \new Voice = "one" {
2530         \autoBeamOff
2531         \sopranoMusic
2532       }
2533       \new Lyrics \lyricsto "one" \sopranoLyrics
2534     >>
2535     \new Staff \celloMusic
2536   >>
2537   \layout { }
2538   \midi { }
2539 }
2540 @end lilypond
2541
2542
2543 @seealso
2544 Les patrons originaux sont disponibles à l'annexe @qq{Modèles}, voir
2545 @ref{Portée unique}. 
2546
2547
2548 @node Partition pour chœur à quatre voix mixtes
2549 @subsection Partition pour chœur à quatre voix mixtes
2550 @translationof Four-part SATB vocal score
2551
2552 @cindex exemple, SATB
2553 @cindex SATB, squelette
2554
2555 La plupart des œuvres écrites pour chœur à quatre voix mixtes et
2556 orchestre, comme Elias de Mendelssohn ou le Messie de Haendel, disposent
2557 la musique et les paroles du chœur sur quatre portées -- soprano, alto,
2558 ténor et basse -- surmontant une réduction pour piano de
2559 l'accompagnement orchestral.  En voici un exemple, tiré du Messie de
2560 Haendel :
2561
2562 @c The following should appear as music without code
2563 @lilypond[quote,ragged-right]
2564 global = { \key d \major \time 4/4 }
2565 sopranoMusic = \relative c'' {
2566   \clef "treble"
2567   r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
2568 }
2569 sopranoWords = \lyricmode {
2570   Wor -- thy is the lamb that was slain
2571 }
2572 altoMusic = \relative a' {
2573   \clef "treble"
2574   r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 |
2575 }
2576 altoWords = \sopranoWords
2577 tenorMusic = \relative c' {
2578   \clef "G_8"
2579   r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
2580 }
2581 tenorWords = \sopranoWords
2582 bassMusic = \relative c' {
2583   \clef "bass"
2584   r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
2585 }
2586 bassWords = \sopranoWords
2587 upper = \relative a' {
2588   \clef "treble"
2589   \global
2590   r4 <a d fis>2 <a e' a>4 |
2591   <d fis d'>4. <d fis d'>8 <a d a'>2 |
2592   <g cis g'>4 <a d fis> <a cis e>2 |
2593 }
2594 lower = \relative c, {
2595   \clef "bass"
2596   \global
2597   <d d'>4 <d d'>2 <cis cis'>4 |
2598   <b b'>4. <b' b'>8 <fis fis'>2 |
2599   <e e'>4 <d d'> <a' a'>2 |
2600 }
2601
2602 \score {
2603   <<  % combine ChoirStaff and PianoStaff in parallel
2604     \new ChoirStaff <<
2605       \new Staff = "sopranos" <<
2606         \set Staff.instrumentName = #"Soprano"
2607         \new Voice = "sopranos" { \global \sopranoMusic }
2608       >>
2609       \new Lyrics \lyricsto "sopranos" { \sopranoWords }
2610       \new Staff = "altos" <<
2611         \set Staff.instrumentName = #"Alto"
2612         \new Voice = "altos" { \global \altoMusic }
2613       >>
2614       \new Lyrics \lyricsto "altos" { \altoWords }
2615       \new Staff = "tenors" <<
2616         \set Staff.instrumentName = #"Tenor"
2617         \new Voice = "tenors" { \global \tenorMusic }
2618       >>
2619       \new Lyrics \lyricsto "tenors" { \tenorWords }
2620       \new Staff = "basses" <<
2621         \set Staff.instrumentName = #"Bass"
2622         \new Voice = "basses" { \global \bassMusic }
2623       >>
2624       \new Lyrics \lyricsto "basses" { \bassWords }
2625     >>  % end ChoirStaff
2626
2627     \new PianoStaff <<
2628       \set PianoStaff.instrumentName = #"Piano"
2629       \new Staff = "upper" \upper
2630       \new Staff = "lower" \lower
2631     >>
2632   >>
2633 }
2634 @end lilypond
2635
2636 Aucun des modèles ne permet d'arriver exactement à cette mise en forme.
2637 Celui qui s'en rapprocherait le plus est @qq{SATB vocal score and
2638 automatic piano reduction} -- voir @ref{Ensemble vocal} -- mais encore
2639 faudrait-il en modifier la mise en forme et refaire la partie de
2640 piano qui n'est plus une simple reprise des parties vocales.  Les
2641 variables qui gèrent la musique et les paroles du chœur ne nécessitent
2642 pas de modification, mais il nous faut d'autres variables pour la
2643 réduction de piano.
2644
2645 L'ordre dans lequel apparaissent les contextes dans le @code{ChoirStaff}
2646 du modèle ne correspond pas à ce que nous voyons ci-dessus.  Il nous
2647 faudra y revenir pour obtenir quatre portées avec des paroles en dessous
2648 de chacune d'elles.  Toutes les voix devraient être @code{\voiceOne},
2649 ce qui est la position par défaut ; il nous faudra donc éliminer toutes
2650 les commandes @code{\voiceXXX}.  Les ténors auront besoin d'une clé
2651 spécifique.  Enfin, nous n'avons pas encore abordé la façon dont les
2652 paroles sont présentées dans le modèle ; nous procèderons donc comme
2653 nous en avons l'habitude.  Il faudra aussi ajouter un nom à chaque portée.
2654
2655 Une fois tout ceci accompli, voici notre @code{ChoirStaff} :
2656
2657 @example
2658     \new ChoirStaff <<
2659       \new Staff = "sopranos" <<
2660         \set Staff.instrumentName = #"Soprano"
2661         \new Voice = "sopranos" @{ \global \sopranoMusique @}
2662       >>
2663       \new Lyrics \lyricsto "sopranos" @{ \sopranoParoles @}
2664       \new Staff = "altos" <<
2665         \set Staff.instrumentName = #"Alto"
2666         \new Voice = "altos" @{ \global \altoMusique @}
2667       >>
2668       \new Lyrics \lyricsto "altos" @{ \altoParoles @}
2669       \new Staff = "tenors" <<
2670         \set Staff.instrumentName = #"Tenor"
2671         \new Voice = "tenors" @{ \global \tenorMusique @}
2672       >>
2673       \new Lyrics \lyricsto "tenors" @{ \tenorParoless @}
2674       \new Staff = "basses" <<
2675         \set Staff.instrumentName = #"Bass"
2676         \new Voice = "basses" @{ \global \basseMusique @}
2677       >>
2678       \new Lyrics \lyricsto "basses" @{ \basseParoles @}
2679     >>  % fin du ChoirStaff
2680 @end example
2681
2682 Il nous faut maintenant nous occuper de la partie de piano.  Nous allons
2683 nous contenter de récupérer la partie de piano du modèle
2684 @qq{Solo piano} :
2685
2686 @example
2687 \new PianoStaff <<
2688   \set PianoStaff.instrumentName = #"Piano  "
2689   \new Staff = "upper" \superieur
2690   \new Staff = "lower" \inferieur
2691 >>
2692 @end example
2693
2694 puis d'ajouter les définitions de variable pour @code{superieur} et
2695 @code{inferieur}. 
2696
2697 Les systèmes pour chœur et pour piano doivent être combinés à l'aide de
2698 doubles chevrons gauche/droite puisqu'ils doivent s'empiler :
2699
2700 @example
2701 <<  % combine ChoirStaff et PianoStaff l'un au-dessus de l'autre
2702   \new ChoirStaff <<
2703     \new Staff = "sopranos" <<
2704       \new Voice = "sopranos" @{ \global \sopranoMusique @}
2705     >>
2706     \new Lyrics \lyricsto "sopranos" @{ \sopranoParoless @}
2707     \new Staff = "altos" <<
2708       \new Voice = "altos" @{ \global \altoMusique @}
2709     >>
2710     \new Lyrics \lyricsto "altos" @{ \altoParoles @}
2711     \new Staff = "tenors" <<
2712       \clef "G_8"  % clef spécifique
2713       \new Voice = "tenors" @{ \global \tenorMusique @}
2714     >>
2715     \new Lyrics \lyricsto "tenors" @{ \tenorParoles @}
2716     \new Staff = "basses" <<
2717       \clef "bass"
2718       \new Voice = "basses" @{ \global \bassesMusique @}
2719     >>
2720     \new Lyrics \lyricsto "basses" @{ \bassesParoles @}
2721   >>  % fin du ChoirStaff
2722
2723   \new PianoStaff <<
2724     \set PianoStaff.instrumentName = #"Piano"
2725     \new Staff = "upper" \superieur
2726     \new Staff = "lower" \inferieur
2727   >>
2728 >>
2729 @end example
2730
2731 Une fois tout cela mis en place, et après avoir ajouté les notes et les
2732 paroles de ces trois mesures du Messie, nous obtenons :
2733
2734 @lilypond[quote,verbatim,ragged-right,addversion]
2735 global = { \key d \major \time 4/4 }
2736 sopranoMusic = \relative c'' {
2737   \clef "treble"
2738   r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
2739 }
2740 sopranoWords = \lyricmode {
2741   Wor -- thy is the lamb that was slain
2742 }
2743 altoMusic = \relative a' {
2744   \clef "treble"
2745   r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
2746 }
2747 altoWords = \sopranoWords
2748 tenorMusic = \relative c' {
2749   \clef "G_8"
2750   r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
2751 }
2752 tenorWords = \sopranoWords
2753 bassMusic = \relative c' {
2754   \clef "bass"
2755   r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
2756 }
2757 bassWords = \sopranoWords
2758 upper = \relative a' {
2759   \clef "treble"
2760   \global
2761   r4 <a d fis>2 <a e' a>4 |
2762   <d fis d'>4. <d fis d'>8 <a d a'>2 |
2763   <g cis g'>4 <a d fis> <a cis e>2 |
2764 }
2765 lower = \relative c, {
2766   \clef "bass"
2767   \global
2768   <d d'>4 <d d'>2 <cis cis'>4 |
2769   <b b'>4. <b' b'>8 <fis fis'>2 |
2770   <e e'>4 <d d'> <a' a'>2 |
2771 }
2772
2773 \score {
2774   <<  % combine ChoirStaff and PianoStaff in parallel
2775     \new ChoirStaff <<
2776       \new Staff = "sopranos" <<
2777         \set Staff.instrumentName = #"Soprano"
2778         \new Voice = "sopranos" { \global \sopranoMusic }
2779       >>
2780       \new Lyrics \lyricsto "sopranos" { \sopranoWords }
2781       \new Staff = "altos" <<
2782         \set Staff.instrumentName = #"Alto"
2783         \new Voice = "altos" { \global \altoMusic }
2784       >>
2785       \new Lyrics \lyricsto "altos" { \altoWords }
2786       \new Staff = "tenors" <<
2787         \set Staff.instrumentName = #"Tenor"
2788         \new Voice = "tenors" { \global \tenorMusic }
2789       >>
2790       \new Lyrics \lyricsto "tenors" { \tenorWords }
2791       \new Staff = "basses" <<
2792         \set Staff.instrumentName = #"Bass"
2793         \new Voice = "basses" { \global \bassMusic }
2794       >>
2795       \new Lyrics \lyricsto "basses" { \bassWords }
2796     >>  % end ChoirStaff
2797
2798     \new PianoStaff <<
2799       \set PianoStaff.instrumentName = #"Piano  "
2800       \new Staff = "upper" \upper
2801       \new Staff = "lower" \lower
2802     >>
2803   >>
2804 }
2805 @end lilypond
2806
2807
2808 @node Écriture d'une partition à partir de zéro
2809 @subsection Écriture d'une partition à partir de zéro
2810 @translationof Building a score from scratch
2811
2812 @cindex modèles, création
2813 @cindex squelettes, création
2814
2815 Après avoir acquis une certaine dextérité dans l'écriture de code
2816 LilyPond, vous devez vous sentir suffisament prêt à vous lancer dans
2817 la création d'une partition à partir de zéro, autrement dit en ne
2818 partant pas d'un exemple.  Vous pourrez ainsi vous construire vos
2819 propres patrons selon le type de musique que vous affectionnez plus
2820 particulièrement.  Pour voir comment procéder, nous allons monter la
2821 partition d'un prélude pour orgue.
2822
2823 Nous débutons par une section d'en-tête ; nous y mettrons entre autres
2824 le titre et le nom du compositeur.  Puis viennent toutes les définitions
2825 de toutes les variables. Nous terminons par le bloc @code{\score}.
2826 Attelons-nous pour cette aventure, en gardant bien à l'esprit ce que
2827 nous venons de dire ; nous nous occuperons des détails en temps voulu.
2828
2829 Nous nous appuyons sur les deux premières mesures du prélude sur
2830 @emph{Jesu, meine Freude}, écrit pour orgue avec pédalier.  Vous pouvez
2831 voir ces deux mesures au bas de cette page.  La main droite comporte
2832 deux voix, la main gauche et le pédalier une seule.  Il nous faut donc
2833 quatre définitions de musique, plus une qui contiendra la métrique et
2834 l'armure :
2835
2836 @example
2837 \version @w{"@version{}"}
2838 \header @{
2839   title = "Jesu, meine Freude"
2840   composer = "J S Bach"
2841 @}
2842 MetriqueArmure = @{ \time 4/4 \key c \minor @}
2843 ManuelUnVoixUnMusique = @{s1@}
2844 ManuelUnVoixDeuxMusique = @{s1@}
2845 ManuelDeuxMusique = @{s1@}
2846 PedalierOrgueMusique = @{s1@}
2847
2848 \score @{
2849 @}
2850 @end example
2851
2852 Pour l'instant, nous utilisons des silences invisibles, @code{s1}, en
2853 lieu et place des notes réelles.  On verra plus tard.
2854
2855 Passons maintenant au bloc @code{\score} et à ce qu'il devrait contenir.
2856 Nous y recopions simplement la structure des portées que nous voulons.
2857 La musique pour orgue se présente généralement sous la forme de trois
2858 portées, une pour chaque main et une pour le pédalier.  Les portées du
2859 manuel sont regroupées, nous utiliserons donc un @code{PianoStaff}.  La
2860 première partie du manuel requiert deux voix et la seconde une seule.
2861
2862 @example
2863   \new PianoStaff <<
2864     \new Staff = "ManuelUn" <<
2865       \new Voice @{ \ManuelUnVoixUnMusique @}
2866       \new Voice @{ \ManuelUnVoixDeuxMusique @}
2867     >>  % fin du contexte de portée ManuelUn
2868     \new Staff = "ManuelDeux" <<
2869       \new Voice @{ \ManuelDeuxMusique @}
2870     >>  % fin du contexte de portée ManuelDeux 
2871   >>  % fin du contexte PianoStaff 
2872 @end example
2873
2874 Il nous faut ajouter à cela une portée pour le pédalier.  Elle se place
2875 sous le système de piano, mais puisqu'elle doit rester synchrone avec
2876 lui, nous utilisons des doubles chevrons pour les regrouper.
2877 Négliger ceci nous renverrait une erreur, et personne n'est à l'abri de
2878 cette faute ! Pour preuve, il vous suffit de copier l'exemple complet en
2879 fin de chapitre, de supprimer ces @code{<<} et @code{>>}, et de le
2880 compiler, pour voir de quoi il retourne.
2881
2882 @example
2883 <<  % Système pianistique et portée de pédalier sont synchrones 
2884   \new PianoStaff <<
2885     \new Staff = "ManuelUn" <<
2886       \new Voice @{ \ManuelUnVoixUnMusique @}
2887       \new Voice @{ \ManuelUnVoixDeuxMusique @}
2888     >>  % fin du contexte de portée ManuelUn
2889     \new Staff = "ManualDeux" <<
2890       \new Voice @{ \ManuelDeuxMusique @}
2891     >>  % fin du contexte de portée ManuelDeux 
2892   >>  % fin du contexte PianoStaff 
2893   \new Staff = "PedalierOrgue" <<
2894     \new Voice @{ \PedalierOrgueMusique @}
2895   >>
2896 >>
2897 @end example
2898
2899 La construction en simultané -- @code{<<...>>} -- n'est pas strictement
2900 obligatoire pour les portées manuel deux et pédalier, qui ne contiennent
2901 chacune qu'une seule expression musicale ; mais cela ne mange pas de
2902 pain, et c'est une bonne habitude que de toujours encadrer par des
2903 doubles chevrons gauche/droite ce qui suit une commande @code{\new
2904 Staff} au cas où il y aurait plusieurs voix.  Il en va autrement pour
2905 les contextes @code{Voice} : ils doivent être toujours suivis
2906 d'accolades --  @code{@{...@}} --  au cas où vous auriez employé
2907 plusieurs variables qui doivent intervenir consécutivement.
2908
2909 Ajoutons donc cette structure au bloc @code{\score}, tout en fignolant
2910 l'indentation.  Nous en profitons pour ajouter les clés appropriées,
2911 effectuer les réglages concernant les hampes et liaisons de la portée
2912 supérieure grâce à @code{\voiceOne} et @code{\voiceTwo}, et mettre en
2913 place la métrique et l'armure de chaque portée grâce à notre variable
2914 @code{\MetriqueArmure}. 
2915
2916 @example
2917 \score @{
2918   <<  % Système pianistique et portée de pédalier sont synchrones 
2919     \new PianoStaff <<
2920       \new Staff = "ManuelUn" <<
2921         \TimeKey  % définition de la métrique et de l'armure
2922         \clef "treble"
2923         \new Voice @{ \voiceOne \ManuelUnVoixUnMusique @}
2924         \new Voice @{ \voiceTwo \ManuelUnVoixDeuxMusique @}
2925       >>  % fin du contexte de la portée ManuelUn
2926       \new Staff = "ManuelDeux" <<
2927         \TimeKey
2928         \clef "bass"
2929         \new Voice @{ \ManuelDeuxMusique @}
2930       >>  % fin du contexte de la portée ManuelDeux
2931     >>  % fin du contexte PianoStaff
2932     \new Staff = "PedalierOrgue" <<
2933       \TimeKey
2934       \clef "bass"
2935       \new Voice @{ \PedalierOrgueMusique @}
2936     >>  % fin du contexte de la portée PedalOrgan
2937   >>
2938 @}  % fin du contexte Score
2939 @end example
2940
2941 Nous en avons fini avec la structure.  Toutes les partitions pour orgue
2942 auront cette structure, même si le nombre de voix peut changer.  Tout ce
2943 qui nous reste à faire maintenant consiste à saisir la musique et à
2944 regrouper toutes les parties.
2945
2946 @lilypond[quote,verbatim,ragged-right,addversion]
2947 \header {
2948   title = "Jesu, meine Freude"
2949   composer = "J S Bach"
2950 }
2951 TimeKey = { \time 4/4 \key c \minor }
2952 ManualOneVoiceOneMusic = \relative g' {
2953   g4 g f ees | d2 c2 |
2954 }
2955 ManualOneVoiceTwoMusic = \relative c' {
2956   ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
2957   c c4 b8 c8. g16 c b c d |
2958 }
2959 ManualTwoMusic = \relative c' {
2960   c16 b c8~ c16 b c g a8 g~ g16 g aes ees |
2961   f ees f d g aes g f ees d e8~ ees16 f ees d |
2962 }
2963 PedalOrganMusic = \relative c {
2964   r8 c16 d ees d ees8~ ees16 a, b g c b c8 |
2965   r16 g ees f g f g8 c,2 |
2966   }
2967
2968 \score {
2969   <<  % PianoStaff and Pedal Staff must be simultaneous
2970     \new PianoStaff <<
2971       \new Staff = "ManualOne" <<
2972         \TimeKey  % set time signature and key
2973         \clef "treble"
2974         \new Voice { \voiceOne \ManualOneVoiceOneMusic }
2975         \new Voice { \voiceTwo \ManualOneVoiceTwoMusic }
2976       >>  % end ManualOne Staff context
2977       \new Staff = "ManualTwo" <<
2978         \TimeKey
2979         \clef "bass"
2980         \new Voice { \ManualTwoMusic }
2981       >>  % end ManualTwo Staff context
2982     >>  % end PianoStaff context
2983     \new Staff = "PedalOrgan" <<
2984       \TimeKey
2985       \clef "bass"
2986       \new Voice { \PedalOrganMusic }
2987     >>  % end PedalOrgan Staff context
2988   >>
2989 }  % end Score context
2990 @end lilypond
2991
2992
2993 @node Économie de saisie grâce aux identificateurs et fonctions
2994 @subsection Économie de saisie grâce aux identificateurs et fonctions
2995 @translationof Saving typing with variables and functions
2996
2997 @cindex variables
2998 @cindex identificateurs
2999
3000 Jusqu'à maintenant, vous avez vu ce type de code :
3001
3002 @lilypond[quote,verbatim,ragged-right]
3003 hornNotes = \relative c'' { c4 b dis c }
3004 \score {
3005   {
3006     \hornNotes
3007   }
3008 }
3009 @end lilypond
3010
3011 Vous comprendrez combien cela peut être utile pour écrire de la
3012 musique minimaliste :
3013
3014 @lilypond[quote,verbatim,ragged-right]
3015 fragmentA = \relative c'' { a4 a8. b16 }
3016 fragmentB = \relative c'' { a8. gis16 ees4 }
3017 violin = \new Staff { \fragmentA \fragmentA \fragmentB \fragmentA }
3018 \score {
3019   {
3020     \violin
3021   }
3022 }
3023 @end lilypond
3024
3025 Néanmoins vous pouvez aussi utiliser ces identificateurs
3026 -- aussi connus sous le nom de variables, macros, ou commandes
3027 (définies par l'utilisateur) -- pour des retouches :
3028
3029 @c TODO Avoid padtext - not needed with skylining
3030 @lilypond[quote,verbatim,ragged-right]
3031 dolce = \markup{ \italic \bold dolce }
3032 padText = { \once \override TextScript #'padding = #5.0 }
3033 fthenp=_\markup{ \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p }
3034 violin = \relative c'' {
3035   \repeat volta 2 {
3036     c4._\dolce b8 a8 g a b |
3037     \padText
3038     c4.^"hi there!" d8 e' f g d |
3039     c,4.\fthenp b8 c4 c-. |
3040   }
3041 }
3042 \score {
3043   {
3044     \violin
3045   }
3046 \layout{ragged-right=##t}
3047 }
3048 @end lilypond
3049
3050 Ces identificateurs sont évidemment utiles pour économiser de la
3051 frappe.  Mais ils peuvent l'être même si vous ne les utilisez qu'une
3052 seule fois : ils réduisent la complexité.  Regardons l'exemple
3053 précédent sans aucun identificateur.  C'est beaucoup plus laborieux à
3054 lire, et particulièrement la dernière ligne.
3055
3056 @example
3057 violin = \relative c'' @{
3058   \repeat volta 2 @{
3059     c4._\markup@{ \italic \bold dolce @} b8 a8 g a b |
3060     \once \override TextScript #'padding = #5.0
3061     c4.^"hi there!" d8 e' f g d |
3062     c,4.\markup@{ \dynamic f \italic \small @{ 2nd @}
3063       \hspace #0.1 \dynamic p @} b8 c4 c-. |
3064   @}
3065 @}
3066 @end example
3067
3068 @c TODO Replace the following with a better example  -td
3069 @c Skylining handles this correctly without padText
3070
3071 Jusqu'ici nous avons vu des substitutions statiques : quand LilyPond
3072 rencontre @code{\padText}, il le remplace par le contenu que nous lui
3073 avons défini -- c'est-à-dire le contenu à droite de @code{padText=}.
3074
3075 LilyPond gère également des substitutions non-statiques -- vous
3076 pouvez les voir comme des fonctions.
3077
3078 @lilypond[quote,verbatim,ragged-right]
3079 padText =
3080 #(define-music-function (parser location padding) (number?)
3081   #{
3082     \once \override TextScript #'padding = #$padding
3083   #})
3084
3085 \relative c''' {
3086   c4^"piu mosso" b a b
3087   \padText #1.8
3088   c4^"piu mosso" d e f
3089   \padText #2.6
3090   c4^"piu mosso" fis a g
3091 }
3092 @end lilypond
3093
3094 Utiliser des identificateurs est aussi un bon moyen pour vous épargner
3095 du travail si la syntaxe de LilyPond change un jour -- voir
3096 @rprogram{Mise à jour d'anciens fichiers}.  Si vous avez une seule
3097 définition, par exemple @code{\dolce}, pour tous vos fichiers (voir
3098 @ref{Feuilles de style}), et que la syntaxe change, alors vous n'aurez
3099 qu'à mettre à jour votre seule définition @code{\dolce}, au lieu de
3100 devoir modifier chaque fichier @code{.ly}.
3101
3102
3103 @node Conducteurs et parties
3104 @subsection Conducteurs et parties
3105 @translationof Scores and parts
3106
3107 Dans la musique d'orchestre, toutes les notes sont imprimées deux fois.
3108 D'abord dans les parties séparées destinées aux musiciens, et ensuite
3109 dans le conducteur destiné au chef.  Les variables sont là pour vous
3110 éviter un double travail.  La musique n'est entrée qu'une seule fois, et
3111 stockée dans une variable, dont le contenu servira à imprimer à la fois
3112 la partie séparée et la partition d'orchestre.
3113
3114 Il est judicieux de définir les notes dans un fichier séparé. Par
3115 exemple, supposons que le fichier @code{musique-Cor.ly} contienne la
3116 partie suivante pour un duo cor/@/basson.
3117
3118 @example
3119 notesCor = \relative c @{
3120   \time 2/4
3121   r4 f8 a cis4 f e d
3122 @}
3123 @end example
3124
3125 @noindent
3126 On établira alors une partie séparée en constituant un nouveau fichier :
3127
3128 @example
3129 \include "musique-Cor.ly"
3130 \header @{
3131   instrument = "Cor en Fa"
3132 @}
3133
3134 @{
3135  \transpose f c' \notesCor
3136 @}
3137 @end example
3138
3139 À la ligne
3140
3141 @example
3142 \include "musique-Cor.ly"
3143 @end example
3144
3145 @noindent
3146 sera substitué le contenu du fichier @code{musique-Cor.ly}, et de ce
3147 fait la variable @code{notesCor} se trouvera définie.  La commande
3148 @w{@code{\transpose f c'}} indique que son argument @code{\notesCor}
3149 sera transposé à la quinte supérieure : le son réel @code{f} s'écrit
3150 @code{c'}, ce qui est la caractéristique d'un Cor en fa.  La
3151 transposition est visible comme suit :
3152
3153 @lilypond[quote,ragged-right]
3154 \transpose f c' \relative c {
3155   \time 2/4
3156   r4 f8 a cis4 f e d
3157 }
3158 @end lilypond
3159
3160 Dans les pièces d'ensemble, il arrive souvent qu'une voix ne joue pas
3161 pendant plusieurs mesures.  Un silence spécial, appelé silence
3162 multimesures, l'indique alors.  On l'obtient par un @code{R} majuscule,
3163 suivi d'une durée : @code{1}@tie{}pour une pause, @code{2}@tie{}pour une
3164 demi-pause, etc.  Cette durée peut être multipliée pour établir de plus
3165 longs silences. Par exemple, le silence suivant dure 3@tie{}mesures à 2/4.
3166
3167 @example
3168 R2*3
3169 @end example
3170
3171 Dans une partie séparée, les silences multimesure sont compressés.
3172 Il faut pour cela définir la propriété @code{skipBars} à @qq{vrai} :
3173
3174 @example
3175 \set Score.skipBars = ##t
3176 @end example
3177
3178 @noindent
3179 Cette commande assigne la valeur @qq{vrai} -- @emph{true} en anglais, et
3180 @code{#t} dans le langage Scheme -- à cette propriété dans le
3181 contexte @code{Score}.  Si l'on ajoute dans la musique ci-dessus le
3182 silence multimesure et cette option, on obtient le résultat suivant :
3183
3184 @lilypond[quote,ragged-right]
3185 \transpose f c' \relative c {
3186   \time 2/4
3187   \set Score.skipBars = ##t
3188   R2*3
3189   r4 f8 a cis4 f e d
3190 }
3191 @end lilypond
3192
3193 Le conducteur rassemble toute la musique. Si l'on suppose que l'autre
3194 voix de notre duo se trouve dans le fichier @code{musique-Basson.ly} en
3195 tant que variable @code{notesBasson}, on établira un conducteur avec
3196
3197 @example
3198 \include "musique-Basson.ly"
3199 \include "musique-Cor.ly"
3200
3201 <<
3202   \new Staff \notesCor
3203   \new Staff \notesBasson
3204 >>
3205 @end example
3206
3207 @noindent
3208 ce qui équivaut à
3209
3210 @lilypond[quote,ragged-right]
3211 \relative c <<
3212   \new Staff {
3213     \time 2/4 R2*3
3214     r4 f8 a cis4 f e d
3215   }
3216   \new Staff {
3217     \clef bass
3218     r4 d,8 f | gis4 c | b bes |
3219     a8 e f4 | g d | gis f
3220   }
3221 >>
3222 @end lilypond
3223