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