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