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