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