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