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