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