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