]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/fr/learning/fundamental.itely
resolve merge
[lilypond.git] / Documentation / fr / learning / fundamental.itely
diff --git a/Documentation/fr/learning/fundamental.itely b/Documentation/fr/learning/fundamental.itely
new file mode 100644 (file)
index 0000000..62903c1
--- /dev/null
@@ -0,0 +1,3299 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+
+@ignore
+    Translation of GIT committish: 057106293b07b74b00553fe4dc3dfac5c1f3b682
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  For details, see the Contributors'
+    Guide, node Updating translation committishes..
+@end ignore
+
+@c \version "2.14.0"
+
+@c Translators: Valentin Villenave, Jean-Charles Malahieude
+@c Translation checkers: John Mandereau
+@c Translation status: post-GDP
+
+@node Concepts fondamentaux
+@chapter Concepts fondamentaux
+@translationof Fundamental concepts
+
+Le tutoriel nous a montré comment obtenir une édition de toute beauté à
+partir d'un simple fichier texte.  Nous nous intéresserons dans cette
+partie aux concepts et techniques qui permettent d'obtenir des
+partitions complexes de même qualité.
+
+@menu
+* Organisation des fichiers LilyPond::
+* Les voix contiennent la musique::
+* Contextes et graveurs::
+* Extension des modèles::
+@end menu
+
+@node Organisation des fichiers LilyPond
+@section Organisation des fichiers LilyPond
+@translationof How LilyPond input files work
+
+La mise en forme des fichiers d'entrée de LilyPond est vraiment
+peu astreignante, afin d'offrir assez de souplesse aux utilisateurs
+expérimentés pour qu'ils puissent organiser leurs fichiers comme
+ils l'entendent.  Cependant, les nouveaux utilisateurs peuvent parfois
+se perdre en raison de cette souplesse.  Cette section présente
+sommairement l'organisation du code LilyPond, en privilégiant
+la simplicité au détriment de certains détails.  Vous trouverez une
+description plus complète dans @ruser{Structure de fichier}.
+
+@menu
+* Introduction à la structure de fichier LilyPond::
+* La partition est une (unique) expression musicale composée::
+* Expressions musicales imbriquées::
+* Non-imbrication des crochets et liaisons::
+@end menu
+
+@node Introduction à la structure de fichier LilyPond
+@subsection Introduction à la structure de fichier LilyPond
+@translationof Introduction to the LilyPond file structure
+
+@cindex format d'entrée
+@cindex structure de ficher
+
+Un fichier d'entrée LilyPond ressemble à@tie{}:
+
+@example
+\version @w{"@version{}"}
+\header @{ @}
+\score @{
+  @var{...expression musicale composite...}  % c'est là qu'est la musique !
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+@noindent
+Il existe de nombreuses variantes à ce schéma simpliste, mais cet
+exemple est un préambule à notre propos.
+
+@funindex \book
+@funindex book
+@funindex \score
+@funindex score
+
+@cindex book, livre, ouvrage
+@cindex livre
+@cindex score, partition
+@cindex partition
+
+Jusqu'à présent, les exemples que nous avons pu voir ne faisaient pas
+appel à la commande @code{\score@{@}}.  En fait, LilyPond ajoute
+automatiquement les commandes nécessaires au traitement d'un code
+simpliste.  LilyPond considère
+
+@example
+\relative c'' @{
+  c4 a d c
+@}
+@end example
+
+@noindent
+comme un raccourci de
+
+@example
+\book @{
+  \score @{
+    \new Staff @{
+      \new Voice @{
+        \relative c'' @{
+          c4 a b c
+        @}
+      @}
+    @}
+    \layout @{ @}
+  @}
+@}
+@end example
+
+En d'autres termes, si le code n'est constitué que d'une expression
+musicale simple, LilyPond interprètera le fichier tout comme si cette
+expression était incluse dans les commandes de notre premier exemple.
+
+@cindex contextes implicites
+@cindex implicites, contextes
+
+@strong{Attention :}  de nombreux exemples, dans la documentation de
+LilyPond, ne font pas apparaître les commandes @code{\new Staff} ou
+@code{\new Voice}, qui sont créées implicitement.  Ce qui
+n'est pas primordial pour des exemples simples le devient dès que la
+situation se complexifie un tant soit peu.  Le fait de ne pas déclarer
+explicitement un contexte peut alors amener à des résultats quelque peu
+surprenants, comme la création d'une portée supplémentaire et
+indésirable.  La manière de créer explicitement des contextes est
+traitée plus en détails au chapitre @ref{Contextes et graveurs}.
+
+@warning{Dès lors que votre musique dépasse quelques lignes, nous vous
+engageons fortement à créer explicitement les voix et portées.}
+
+Mais revenons à notre premier exemple, et penchons-nous tout d'abord sur
+la commande @code{\score}.
+
+Un bloc @code{\score} doit contenir une et une seule expression
+musicale, exprimée immédiatement à la suite de la commande
+@code{\score}.  Rappelez-vous que cette expression peut être n'importe
+quoi, d'une note isolée à un gigantesque
+
+@example
+@{
+  \new StaffGroup <<
+    @var{...collez ici la partition complète d'un opéra de Wagner...}
+  >>
+@}
+@end example
+
+@noindent
+Dès lors que tout cela est entre accolades@tie{}: @code{@{ @dots{} @}},
+LilyPond le considère comme une et une seule expression musicale.
+
+Comme nous l'avons vu précédemment, un bloc @code{\score} peut contenir
+d'autres informations@tie{}:
+
+@example
+\score @{
+  @{ c'4 a b c' @}
+  \header @{ @}
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+@funindex \header
+@funindex header
+@funindex \layout
+@funindex layout
+@funindex \midi
+@funindex midi
+
+@cindex header
+@cindex en-tête
+@cindex layout
+@cindex mise en forme
+@cindex midi
+
+@noindent
+Gardez à l'esprit que ces trois commandes -- @code{\header},
+@code{\layout} et @code{\midi} -- sont spécifiques@tie{}: à l'inverse de
+toutes les commandes débutant par une oblique inversée @code{\}
+(@emph{backslash} en anglais), @strong{elles ne constituent pas} des
+expressions musicales et ne peuvent pas faire partie d'expressions
+musicales.  Elles peuvent de ce fait être placées à l'intérieur du
+bloc @code{\score}, ou bien à l'extérieur.  En réalité, ces commandes
+sont la plupart du temps indépendantes du bloc @code{\score} -- par
+exemple, la commande @code{\header} intervient souvent avant le bloc
+@code{\score}, comme le montre l'exemple ci-dessus.
+
+Les deux autres commandes -- @code{\layout @{@}} et @code{\midi @{@}}
+-- que nous n'avons pas détaillées pour l'instant, auront respectivement
+pour effet, lorsqu'elles interviennent, de produire une sortie
+imprimable et un fichier MIDI.  Nous nous y intéressons plus
+particulièrement dans le manuel de notation, aux chapitres
+@ruser{Mise en forme de la partition} et
+@ruser{Création de fichiers MIDI}.
+
+@cindex partitions multiples
+@cindex book,  bloc implicite
+@cindex implicite, bloc book
+
+@funindex \book
+@funindex book
+
+Vous pouvez tout à fait mentionner plusieurs blocs @code{\score}.  Ils
+seront traités comme autant de partitions indépendantes qui seront
+regroupées dans un seul fichier résultant.  La commande @code{\book}
+(@emph{recueil} ou @emph{ouvrage}) n'est pas obligatoire -- elle sera
+créée implicitement.  Néanmoins, le recours à la commande @code{\book}
+vous permettra d'obtenir des fichiers résultants distincts à partir
+d'un même fichier source @file{.ly} -- par exemple un fichier par pupitre.
+
+En résumé :
+
+Dès que LilyPond rencontre un bloc @code{\book}, il crée un
+fichier distinct (@file{.pdf} par exemple).  Dans le cas où il n'est pas
+mentionné explicitement, LilyPond regroupera l'intégralité du code dans
+un bloc @code{\book}.
+
+Tout bloc @code{\score} inclus dans un bloc @code{\book} constitue un
+fragment de musique, par exemple un mouvement d'une symphonie.
+
+@cindex layout, effets selon l'emplacement
+
+Tout bloc @code{\layout} affecte le bloc @code{\score} ou @code{\book}
+au sein duquel il intervient@tie{}: si c'est à l'intérieur d'un bloc
+@code{\score}, seul celui-ci en sera affecté.  Dans le cas où le bloc
+@code{\layout} se trouve à l'extérieur du bloc @code{\score}, que le
+bloc @code{\book} soit explicite ou non, il affectera chacun des
+@code{\score} compris dans ce @code{\book}.
+
+Pour plus de détail à ce sujet, consultez
+@ruser{Plusieurs partitions dans un même ouvrage}.
+
+@cindex variables
+@cindex identificateurs
+
+Un autre raccourci pratique est la possibilité de définir
+des variables, également appelées @qq{identificateurs} -- voir
+@ref{Organisation du code source avec des variables} à ce sujet.  Dans
+tous les modèles, vous trouverez@tie{}:
+
+@example
+melodie = \relative c' @{
+  c4 a b c
+@}
+
+\score @{
+  @{ \melodie @}
+@}
+@end example
+
+Lorsque LilyPond examinera ce fichier, il va prendre la valeur de la
+variable @code{melodie}, c'est-à-dire tout ce qui suit le signe @code{=},
+et l'insérer partout où il rencontrera @code{\melodie}.  Vous êtes
+libre de choisir comment dénommer vos variables@footnote{Les noms de
+variables sont sensibles à la casse, et ne peuvent contenir ni
+chiffre, ni ponctuation, ni caractère accentué, ni espace.}@tie{}; ce
+peut être @code{melodie}, @code{global}, @code{maindroitepiano}, ou
+@code{laTeteAToto}, tant qu'il ne s'agit pas de @qq{mot réservé}.  Pour
+plus de détails, voir
+@ref{Économie de saisie grâce aux identificateurs et fonctions}.
+
+
+@seealso
+Pour une description complète du format des fichiers d'entrée, voir
+@ruser{Structure de fichier}.
+
+
+@node La partition est une (unique) expression musicale composée
+@subsection La partition est une (unique) expression musicale composée
+@translationof Score is a (single) compound musical expression
+
+@funindex \score
+@funindex score
+
+@cindex partition
+@cindex bloc score, contenu
+@cindex expression musicale composite
+
+Dans la section précédente,
+@ref{Introduction à la structure de fichier LilyPond},  nous
+avons vu l'organisation générale des fichiers d'entrée de LilyPond.
+Mais c'est comme si nous avions éludé la question essentielle@tie{}:
+comment diable peut-on savoir quoi mettre après @code{\score}@tie{}?
+
+En fait, nous ne l'avons pas éludée du tout@tie{}: le grand mystère est
+tout simplement qu'@strong{il n'y a pas} de mystère.  Allez,
+expliquons-le en une ligne@tie{}:
+
+@quotation
+@emph{Un bloc @code{\score} doit commencer par une et une seule
+expression musicale.}
+@end quotation
+
+@noindent
+Peut-être serait-il judicieux de relire la section
+@ref{Les expressions musicales en clair}, dans laquelle vous avez
+appris à construire de grandes expressions musicales petit bout
+par petit bout -- nous avons vu les notes, puis les accords, etc.
+Maintenant, nous allons partir d'une grande expression musicale,
+et remonter la pente.  Pour rester simple, nous nous contenterons d'un
+chanteur accompagné au piano.  On n'a pas besoin d'une partition
+d'orchestre -- c.-à-d. des portées regroupées en @code{StaffGroup} --
+donc laissons cela de côté.  Par contre, nous voulons bien une voix et
+une double portée de piano.
+
+@example
+\score @{
+  @{
+    <<
+      \new Staff = "chanteur" <<
+      >>
+      \new PianoStaff = "piano" <<
+      >>
+    >>
+  @}
+  \layout @{ @}
+@}
+@end example
+
+Nous avons ici attribué des noms aux portées -- @qq{chanteur} et
+@qq{piano}.  Bien que cela ne soit pas primordial, c'est une
+habitude qu'il est bon d'adopter dès le départ@tie{}: vous saurez au
+premier coup d'œil à quoi correspond chaque portée.
+
+Vous vous souvenez que nous avons recours à @code{<<} et @code{>>}
+en lieu et place de @code{@{ @dots{} @}} pour gérer des musiques
+simultanées.  Et, pour le coup, on aimerait @emph{vraiment} que la
+partie vocale et l'accompagnement soient imprimés ensemble@dots{}  Bien
+que faire appel à @code{<< ... >>} ne soit pas réellement nécessaire
+pour la portée du chanteur, dans la mesure où elle ne contient qu'une
+seule expression musicale, nous vous recommandons de prendre l'habitude
+de l'encadrer ainsi plutôt que par de simples accolades -- une portée
+peut en effet contenir plusieurs voix, ou bien des notes @strong{et} des
+paroles.  Dans la mesure où nous y ajouterons des paroles, les chevrons
+sont donc obligatoires.  Si vous avez oublié comment ajouter des
+paroles à l'aide de la commande @code{\addlyrics}, relisez le chapitre
+@ref{Écriture de chants simples}.
+
+@lilypond[verbatim,quote,ragged-right]
+\score {
+  <<
+    \new Staff = "singer" <<
+      \new Voice = "vocal" { c'1 }
+      \addlyrics { And }
+    >>
+    \new PianoStaff = "piano" <<
+      \new Staff = "upper" { c'1 }
+      \new Staff = "lower" { c'1 }
+    >>
+  >>
+  \layout { }
+}
+@end lilypond
+
+On y voit nettement plus clair maintenant.  Nous voici donc avec la
+partie du chanteur, qui contient un ensemble @code{Voice}, ce qui dans
+LilyPond correspond à une voix, au sens de voix d'une polyphonie plutôt
+que de voix chantée -- ce pourrait être une partie de violon par
+exemple --, et des paroles.
+Nous avons également une partie de piano, qui contient deux
+portées@tie{}: une pour la main droite, une autre pour la main gauche.
+Il nous faudra d'ailleurs ajouter une clef de fa à cette dernière.
+
+À ce point, on pourrait commencer à ajouter les notes.  Dans les
+accolades qui suivent @code{\new Voice =  "chant"}, on pourrait
+commencer à écrire
+
+@example
+\relative c'' @{
+  r4 d8\noBeam g, c4 r
+@}
+@end example
+
+Mais si l'on procédait ainsi, la section @code{\score} deviendrait
+vite assez touffue, et très rapidement on ne s'y retrouverait plus.
+C'est pourquoi on utilisera plutôt des variables, ou identificateurs,
+comme nous l'avons vu plus haut.  Pour s'assurer que le contenu de la
+variable @code{texte} soit bien interprété comme des paroles, nous le
+préfixons d'un @code{\lyricmode}.  Sans cette précaution, LilyPond
+tenterait d'interpréter le contenu de cette variable comme des notes, ce
+qui déclencherait immanquablement des erreurs.  LilyPond dispose de
+différents types de données -- voir @ruser{Modes de saisie} pour plus de
+détails.
+
+Avec quelques notes de plus et une clef de fa, nous pourrions
+avoir@tie{}:
+
+@lilypond[verbatim,quote,ragged-right]
+melody = \relative c'' { r4 d8\noBeam g, c4 r }
+text   = \lyricmode { And God said, }
+upper  = \relative c'' { <g d g,>2~ <g d g,> }
+lower  = \relative c { b2 e2 }
+
+\score {
+  <<
+    \new Staff = "singer" <<
+      \new Voice = "vocal" { \melody }
+      \addlyrics { \text }
+    >>
+    \new PianoStaff = "piano" <<
+      \new Staff = "upper" { \upper }
+      \new Staff = "lower" {
+        \clef "bass"
+        \lower
+      }
+    >>
+  >>
+  \layout { }
+}
+@end lilypond
+
+Quand on écrit ou que l'on lit une section @code{\score}, mieux vaut
+y aller lentement et soigneusement.  Commencez par le niveau le plus
+large, puis travaillez sur chaque niveau plus détaillé.  À ce propos,
+une indentation stricte et propre est vraiment d'une aide
+précieuse@tie{}: assurez-vous que chaque élément d'un même niveau a le
+même décalage horizontal dans votre éditeur de texte@tie{}!
+
+
+@seealso
+Manuel de notation :
+@ruser{Structure d'une partition}.
+
+
+@node Expressions musicales imbriquées
+@subsection Expressions musicales imbriquées
+@translationof Nesting music expressions
+
+@cindex portées, temporaires
+@cindex ossias
+
+Déclarer toutes les portées dès le départ n'est pas une
+obligation@tie{}; elles peuvent intervenir temporairement n'importe où
+dans la partition.  Ceci est tout à fait indiqué pour créer des sections
+@rglos{ossia}.  L'exemple suivant illustre la manière de créer
+temporairement une nouvelle portée, l'espace de trois notes@tie{}:
+
+@lilypond[verbatim,quote,ragged-right]
+\new Staff {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f c c }
+      \new Staff {
+        f8 f c
+      }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+@noindent
+Vous noterez la taille de la clef, identique à celle que l'on trouve
+lors d'un changement en cours de ligne -- légèrement plus petite que
+celle imprimée en tête de ligne.
+
+@cindex portée, positionnement
+
+Une section ossia se placera au dessus de la portée en procédant
+ainsi@tie{}:
+
+@lilypond[verbatim,quote,ragged-right]
+\new Staff = "main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f c c }
+      \new Staff \with {
+        alignAboveContext = #"main" }
+      { f8 f c }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+Cet exemple recourt à @code{\with}, que nous verrons en détail plus
+avant.  C'est un moyen de modifier le comportement par défaut d'une
+portée individuelle.  Nous indiquons ici que la nouvelle portée doit se
+placer au-dessus de la portée @qq{principal} plutôt qu'en dessous, ce
+qui est le comportement par défaut.
+
+
+@seealso
+Les ossia apparaissent souvent sans clef ni métrique, et dans une taille
+plus petite.  Ceci requiert des commandes dont nous n'avons pas encore
+parlé.  Voir @ref{Taille des objets} et @ruser{Portées d'ossia}.
+
+
+@node Non-imbrication des crochets et liaisons
+@subsection Non-imbrication des crochets et liaisons
+@translationof On the un-nestedness of brackets and ties
+
+@cindex crochets, imbrication
+@cindex crochets, types de
+
+Nous avons déjà rencontré plusieurs types de crochets au fil de nos
+fichiers LilyPond.  Ils obéissent à des règles différentes qui peuvent
+paraître déroutantes de prime abord.  Avant d'examiner ces règles, voici
+une liste des différents types de crochet@tie{}:
+
+@c attempt to force this onto a new page
+@need 50
+@multitable @columnfractions .3 .7
+@headitem Type de crochet
+  @tab Fonction
+@item @code{@{ .. @}}
+  @tab Délimite un segment de musique séquentielle
+@item @code{< .. >}
+  @tab Délimite les notes d'un accord
+@item @code{<< .. >>}
+  @tab Délimite des sections simultanées
+@item @code{( .. )}
+  @tab Marque le début et la fin d'une liaison
+@item @code{\( .. \)}
+  @tab Marque le début et la fin d'une liaison de phrasé
+@item @code{[ .. ]}
+  @tab Marque le début et la fin d'une ligature manuelle
+@end multitable
+
+D'autres constructions permettent d'obtenir des lignes regroupant ou en
+travers des notes@tie{}:  les liaisons de prolongation indiquées par un
+tilde (@code{~}), les marques de nolet avec
+@w{@code{\times x/y @{..@}}}, ou
+encore les notes d'ornement avec @code{\grace@{..@}}.
+
+En dehors de LilyPond, l'imbrication correcte de différents types de
+crochets exige un strict respect des conventions, telles que
+@code{<<@tie{}[@tie{}@{@tie{}(@tie{}..@tie{})@tie{}@}@tie{}]@tie{}>>},
+où les marques de fermeture interviennent
+obligatoirement dans l'ordre exactement inverse à celles d'ouverture.
+Ceci @strong{doit} être rigoureusement respecté pour les trois
+types de crochets utilisés pour @strong{délimiter} comme l'indique le
+tableau ci-dessus.
+Une telle rigueur dans l'imbrication n'est @strong{pas} requise pour les
+types de crochets dont la fonction est de @strong{marquer}, selon le
+tableau ci-dessus, lorsqu'il sont utilisés en combinaison avec des
+liaisons de prolongation ou des nolets.  En effet, il ne s'agit pas
+de crochets ayant pour fonction de borner quelque chose@tie{}; ils
+agissent plutôt comme marquant le début de quelque chose et sa fin.
+
+Ainsi, et bien que ce ne soit pas très musical, une liaison de phrasé
+peut débuter avant l'insertion d'une ligature manuelle et s'arrêter
+avant la fin de la ligature@tie{}:
+
+@lilypond[quote,verbatim,ragged-right,relative=2]
+g8\( a b[ c b\) a] g4
+@end lilypond
+
+De manière générale, différents types de crochets, notamment s'ils
+indiquent des nolets, liaisons de prolongation ou notes d'ornement,
+peuvent se mélanger entre eux.  L'exemple suivant montre une ligature
+qui se prolonge sur un triolet (ligne 1), puis une liaison qui se
+prolonge sur un triolet (ligne 2) et enfin une ligature et une liaison
+qui s'étendent sur un triolet, lui-même lié à un quintolet agrémenté
+d'une liaison de phrasé se poursuivant (lignes 3 et 4).
+
+@lilypond[quote,verbatim,ragged-right,relative=1]
+r16[ g \times 2/3 { r16 e'8] }
+g,16( a \times 2/3 { b16 d) e }
+g,8[( a \times 2/3 { b8 d) e~] } |
+\times 4/5 { e32\( a, b d e } a4.\)
+@end lilypond
+
+
+@node Les voix contiennent la musique
+@section Les voix contiennent la musique
+@translationof Voices contain music
+
+Les chanteurs utilisent leur voix pour chanter@tie{}; il en va de même
+pour LilyPond.  En fait, la musique de chacun des instruments d'une
+partition est contenue dans des voix (@emph{Voices} en anglais), qui
+se trouvent être le concept fondamental de LilyPond.
+
+@menu
+* J'entends des Voix::
+* Instanciation explicite des voix::
+* Voix et paroles::
+@end menu
+
+@node J'entends des Voix
+@subsection J'entends des Voix
+@translationof I'm hearing Voices
+
+@cindex polyphonie
+@cindex calques (layers)
+@cindex voix multiples
+@cindex Voice, contexte
+@cindex contexte de voix
+@cindex musique simultanée
+@cindex musique concurrente
+@cindex voix ou accords
+@cindex accords ou voix
+
+Dans une partition gérée par LilyPond, le niveau le plus bas, ou bien
+élémentaire ou fondamental, est le @qq{contexte de voix} -- @emph{Voice
+context} en anglais --.  Pour d'autres logiciels, on fait tantôt
+référence à la notion de @qq{couche} ou de @qq{calque}.
+
+En réalité, le contexte de voix est le seul à pouvoir contenir de la
+musique.  S'il n'est pas déclaré explicitement, il sera créé
+automatiquement comme nous l'avons vu au début de ce chapitre.  Certains
+instruments, le hautbois par exemple, ne peuvent jouer qu'une seule note
+à la fois.  On dit en pareil cas qu'il s'agit de musique monophonique,
+et nous n'aurons alors besoin que d'une seule voix.  Les intruments qui,
+comme le piano, peuvent émettre plusieurs sons en même temps, nécessitent
+de recourir à plusieurs voix pour gérer efficacement l'alignement des
+notes et rythmes différents.
+
+Si une voix unique peut tout à fait contenir plusieurs notes dans un
+accord, à partir de quand aurons-nous vraiment besoin de plusieurs
+voix@tie{}?  Considérons déjà ces quatre accords@tie{}:
+
+@lilypond[quote,verbatim,ragged-right,relative=1]
+\key g \major
+<d g>4 <d fis> <d a'> <d g>
+@end lilypond
+
+Nous exprimons ici chacun des accords par l'utilisation de
+chevrons gauche et droite simples, @w{@code{< ... >}}, puisque nous
+n'avons besoin que d'une seule voix.  Supposons maintenant que le fa
+dièse soit une croche, suivie d'un sol croche -- une note de passage
+vers le la@tie{}?  Nous avons alors deux notes qui débutent au même
+moment, mais dont la durée est différente@tie{}: un ré noire et un fa
+dièse croche. Comment coder cela@tie{}?  Dans la mesure où toutes les
+notes d'un accord doivent avoir la même durée, nous ne pouvons pas
+écrire un accord.  Nous ne pouvons pas non plus écrire deux notes
+séparées, puisqu'elles débutent en même temps.  Nous avons alors besoin
+de deux voix.
+
+Voyons comment cela se pratique selon la grammaire de LilyPond.
+
+@funindex << \\ >>
+@funindex \\
+
+Le plus sûr moyen de saisir un fragment où plusieurs voix cohabitent
+sur la même portée, consiste à saisir chacune des voix séquentiellement
+(avec @code{@{...@}}), puis à les combiner en simultané à l'aide de
+doubles chevrons gauche/droite, @code{<<...>>}.  Les fragments
+devront être séparés par une double oblique inversée, @code{\\}, pour
+les affecter à des voix séparées.  Dans le cas contraire, les notes
+seraient toutes affectées à une même voix, ce qui pourait générer des
+erreurs.  Cette manière de procéder est tout à fait indiquée dans le cas
+d'une pièce ne comportant que quelques courts passages de polyphonie.
+
+Voici comment éclater les accords en deux voix, avec la note de passage
+et la liaison@tie{}:
+
+@lilypond[quote,verbatim,ragged-right,relative=2]
+\key g \major
+%    Voice "1"               Voice "2"
+<< { g4 fis8( g) a4 g } \\ { d4 d d d }  >>
+@end lilypond
+
+Notez que les hampes de la seconde voix sont dirigées vers le bas.
+
+Autre exemple :
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\key d \minor
+%    Voice "1"             Voice "2"
+<< { r4 g g4. a8 }    \\ { d,2 d4 g }       >> |
+<< { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
+<< { a2. r4 }         \\ { fis2. s4 }       >> |
+@end lilypond
+
+Le recours à une construction @code{<< \\ >>} particulière à chaque
+mesure n'est pas nécessaire.  Bien qu'on y gagne en lisibilité si chaque
+mesure ne contient que quelques notes, il est plus judicieux de
+carrément séparer chaque voix@tie{}:
+
+@lilypond[quote,verbatim,ragged-right,relative=2]
+\key d \minor
+<< {
+  % Voice "1"
+  r4 g g4. a8 |
+  bes4 bes c bes |
+  a2. r4 |
+} \\ {
+  % Voice "2"
+  d,2 d4 g |
+  g4 g g8( a) g4 |
+  fis2. s4 |
+} >>
+@end lilypond
+
+
+@cindex voix, nommage
+@cindex voix et constructions simultanées
+@cindex liaisons et constructions simultanées
+
+Cet exemple ne comporte que deux voix, mais il peut être étendu pour
+traiter trois voix ou plus en ajoutant autant de séparateurs @code{\\}
+que de besoin.
+
+Les contextes @code{Voice} portent les noms @code{"1"}, @code{"2"}, etc.
+Pour chacun de ces contextes, le positionnement et l'orientation des
+liaisons, hampes, nuances, etc. est définie automatiquement.
+
+@lilypond[quote,verbatim]
+\new Staff \relative c' {
+  % Main voice
+  c16 d e f
+  %    Voice "1"     Voice "2"                Voice "3"
+  << { g4 f e } \\ { r8 e4 d c8~ } >> |
+  << { d2 e }   \\ { c8 b16 a b8 g~ g2 } \\ { s4 b c2 } >> |
+}
+@end lilypond
+
+Ces voix sont séparées de la voix principale, laquelle contient les
+notes en dehors de la construction @code{<<...>>} -- que nous
+appellerons @emph{construction simultanée}.  Les liaisons, de
+prolongation ou non, ne peuvent relier des notes que si elles
+appartiennent à la même voix@tie{}; elles ne peuvent ni pénétrer une
+contruction simultanée, ni en sortir.  Inversement, les voix parallèles
+issues de constructions simultanées apparaissant sur une même portée
+appartiennent à la même voix.  Les autres propriétés liées au contexte
+de voix  s'appliquent tout au long des constructions simultanées.
+Reprenons notre exemple, en affectant une couleur et une allure
+différentes aux notes de chacune des voix.  Vous noterez qu'un
+changement apporté à une voix ne se propage pas aux autres, et qu'il se
+reporte jusqu'au bout, et que la voix aux triangles bleus comporte une
+liaison de prolongation entre deux constructions.
+
+@lilypond[quote,verbatim]
+\new Staff \relative c' {
+  % Main voice
+  c16 d e f
+  <<  % Bar 1
+    {
+      \voiceOneStyle
+      g4 f e
+    }
+  \\
+    {
+      \voiceTwoStyle
+      r8 e4 d c8~
+    }
+  >> |
+  <<  % Bar 2
+     % Voice 1 continues
+    { d2 e }
+  \\
+     % Voice 2 continues
+    { c8 b16 a b8 g~ g2 }
+  \\
+    {
+      \voiceThreeStyle
+      s4 b c2
+    }
+  >> |
+}
+@end lilypond
+
+@funindex \voiceOneStyle
+@funindex \voiceTwoStyle
+@funindex \voiceThreeStyle
+@funindex \voiceFourStyle
+@funindex \voiceNeutralStyle
+
+Les commandes @code{\voiceXXXStyle} sont principalement dédiées à une
+utilisation pédagogique, comme l'est ce document.  Elles modifient la
+couleur des hampes et ligatures et le style de tête des note, pour
+permettre une meilleure distinction entre les différentes voix.   La
+première voix comporte des têtes en losange rouge, la deuxième en
+triangle bleu, la troisième en cercle barré vert, la quatrième (non
+utilisée ici) en croix magenta@tie{};  @code{\voiceNeutralStyle} (non
+utilisé ici) revient au style par défaut.  Nous verrons plus tard
+comment créer de telles commandes.
+Voir @ref{Visibilité et couleur des objets} et
+@ref{Utilisation de variables dans les retouches}.
+
+@cindex polyphonie et mode relatif
+@cindex mode relatif et polyphonie
+
+La polyphonie ne modifie en rien la relation entre les notes au sein
+d'un bloc @code{\relative}.  Chaque note est calculée par rapport à
+celle qui la précède, ou bien par rapport à la première note de l'accord
+qui précède.  Ainsi, dans
+
+@example
+\relative c' @{ noteA << < noteB noteC > \\ noteD >> noteE @}
+@end example
+
+@noindent
+@code{noteB} est relative à @code{noteA}                        @*
+@code{noteC} est relative à @code{noteB}, pas à @code{noteA}    @*
+@code{noteD} est relative à @code{noteB}, pas à @code{noteA} ni
+@code{noteC}                                                    @*
+@code{noteE} est relative à @code{noteD}, pas à @code{noteA}
+
+Une méthode alternative, et qui peut simplifier les choses si les notes
+des différentes voix sont espacées, consiste à placer une commande
+@code{\relative} au début de chacune des voix@tie{}:
+
+@example
+\relative c' @{ noteA ... @}
+<<
+  \relative c'' @{ < noteB noteC > ... @}
+\\
+  \relative g' @{ noteD ... @}
+>>
+\relative c' @{ noteE ... @}
+@end example
+
+Pour finir, analysons le principe d'utilisation des voix dans une pièce
+complexe.  Nous allons nous concentrer sur les deux premières mesures du
+second des Deux nocturnes, opus 32 de Chopin.  Cet exemple nous servira
+à plusieurs reprises, y compris dans le chapitre suivant, pour illustrer
+certaines techniques de notation.  Aussi, ne prétez pas trop d'attention
+à ce qui pour l'instant pourrait vous paraître vraiment mystérieux dans
+le code, et intéressons-nous uniquement à ce qui concerne la musique et
+les voix -- ce qui est plus compliqué sera décortiqué plus tard.
+
+@c The following should appear as music without code
+@lilypond[quote,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  << % Voice one
+    { c2 aes4. bes8 }
+  \\ % Voice two
+    { aes2 f4 fes }
+  \\ % No voice three
+  \\ % Voice four
+    {
+      % Ignore these for now - they are explained in Ch 4
+      \once \override NoteColumn #'force-hshift = #0
+      <ees c>2
+      \once \override NoteColumn #'force-hshift = #0.5
+      des2
+    }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+La direction des hampes sert souvent à indiquer dans la continuité deux
+lignes mélodiques simultanées.  Ici, les hampes des notes les plus
+hautes vont vers le haut, et celles des notes plus basses vers le
+bas.  C'est une première indication de ce que nous avons eu recours à
+plus d'une voix.
+
+Mais le réel besoin de multiples voix se fait sentir dès lors que
+plusieurs notes qui débutent en même temps ont des durées différentes.
+C'est évident au troisième temps de la première mesure@tie{}: le la
+bémol est une noire pointée, le fa une noire, et le ré bémol une
+blanche.  On ne peut les grouper dans un accord, puisque toutes les
+notes composant un accord doivent être de même durée.  On ne peut non
+plus les écrire séquentiellement, puisqu'elles débutent toutes au même
+instant.  Ce fragment de mesure nécessite trois voix, et une bonne
+pratique voudrait que l'intégralité de la mesure soit sur trois voix,
+comme ci-dessous où nous avons une allure et une couleur différentes aux
+notes de chacune d'entre elles.  Une fois de plus, nous reviendrons plus
+tard sur le code que vous ne comprendriez pas.
+
+@c The following should appear as music without code
+@c The three voice styles should be defined in -init
+@lilypond[quote,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<
+    { % Voice one
+      \voiceOneStyle
+      c2 aes4. bes8
+    }
+  \\  % Voice two
+    { \voiceTwoStyle
+      aes2 f4 fes
+    }
+  \\  % No Voice three (we want stems down)
+  \\  % Voice four
+    { \voiceThreeStyle
+      % Ignore these for now - they are explained in Ch 4
+      \once \override NoteColumn #'force-hshift = #0
+      <ees c>2
+      \once \override NoteColumn #'force-hshift = #0.5
+      des2
+    }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+Essayons à présent de coder cette musique en partant de zéro.  Comme
+nous le verrons, certaines difficultés vont se présenter.  Partons de ce
+que nous avons appris@tie{}: utilisons la construction
+@code{<<@tie{}\\@tie{}>>} pour saisir la première mesure dans trois
+voix@tie{}:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<
+    { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { <ees c>2 des2 }
+  >>
+  <c ees aes c>1
+}
+@end lilypond
+
+@cindex stem down
+@cindex hampes en bas
+@cindex stem up
+@cindex hampes en haut
+@cindex voix et direction des hampes
+@cindex direction des hampes et voix
+
+La direction des hampes est attribuée automatiquement@tie{}: les voix
+impaires portent des hampes vers le haut, les voix paires des hampes
+vers le bas.  Les hampes des voix 1 et 2 sont orientées comme il faut
+mais celles de la voix 3 devraient, dans le cas qui nous occupe, aller
+vers le bas.  Nous pouvons corriger cela en sautant la voix 3 et en
+plaçant la musique dans la voix 4 grâce à un @code{\\}
+supplémentaire@tie{}:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  << % Voice one
+    { c2 aes4. bes8 }
+  \\ % Voice two
+    { aes2 f4 fes   }
+  \\ % Omit Voice three
+  \\ % Voice four
+    { <ees c>2 des2 }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+@noindent
+Cette manipulation nous permet de régler la direction des hampes, mais
+elle engendre un problème que l'on rencontre parfois avec de multiples
+voix, à savoir que les hampes d'une voix peuvent chevaucher les têtes de
+note des autres voix.  En matière de mise en forme des notes, LilyPond
+tolère que des notes ou accords appartenant à deux voix se retrouvent
+dans le même empilement de notes (@emph{note column} en anglais) si tant
+est que ces hampes vont dans des directions opposées@tie{}; néanmoins les
+notes des troisième et quatrième voix seront décalées si nécessaire pour
+éviter que les têtes ne se chevauchent.  Cela marche plutôt bien mais,
+dans notre exemple, les notes de la voix la plus basse ne sont vraiment
+pas correctement placées.  LilyPond met à notre disposition plusieurs
+moyens d'ajuster le positionnement horizontal des notes.  Nous ne sommes
+pas encore tout à fait prêts pour voir comment corriger cela, aussi nous
+examinerons ce problème dans un autre chapitre (voir la propriété
+@code{force-hshift} dans @ref{Correction des collisions d'objets}).
+
+
+@seealso
+Manuel de notation :
+@ruser{Plusieurs voix}.
+
+
+@node Instanciation explicite des voix
+@subsection Instanciation explicite des voix
+@translationof Explicitly instantiating voices
+
+@funindex \voiceOne
+@funindex voiceOne
+@funindex \voiceTwo
+@funindex voiceTwo
+@funindex \voiceThree
+@funindex voiceThree
+@funindex \voiceFour
+@funindex voiceFour
+@funindex \oneVoice
+@funindex oneVoice
+@funindex \new Voice
+@cindex Voice, création de contextes
+
+Les contextes @rinternals{Voice} peuvent être déclarés manuellement
+dans un bloc @code{<< >>} pour créer de la musique polyphonique, en
+utilisant @code{\voiceOne}, @dots{} jusqu'à @code{\voiceFour} pour
+assigner des directions de hampes et un déplacement horizontal pour
+chaque partie.  Cette méthode apporte de la clarté pour des partitions
+plus importantes puisqu'elle permet de bien séparer les voix et de leur
+affecter un nom plus parlant.
+
+En particulier, la construction @code{<< \\ >>} que nous avons vue
+précédemment@tie{}:
+
+@example
+\new Staff @{
+  \relative c' @{
+    << @{ e4 f g a @} \\ @{ c,4 d e f @} >>
+  @}
+@}
+@end example
+
+@noindent
+équivaut à
+
+@example
+\new Staff <<
+  \new Voice = "1" @{ \voiceOne \relative c' @{ e4 f g a @} @}
+  \new Voice = "2" @{ \voiceTwo \relative c' @{ c4 d e f @} @}
+>>
+@end example
+
+Toutes deux produiront
+
+@c The following example should not display the code
+@lilypond[ragged-right,quote]
+\new Staff <<
+  \new Voice = "1" { \voiceOne \relative c' { e4 f g a } }
+  \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } }
+>>
+@end lilypond
+
+@cindex Voice, retour à un seul contexte
+@cindex retour à un contexte Voice unique
+
+Les commandes @code{\voiceXXX} fixent la direction des hampes, des
+liaisons de prolongation et de phrasé, des articulations, des
+annotations, des points d'augmentation des notes pointées et des
+doigtés.  @code{\voiceOne} et @code{\voiceThree} font pointer ces objets
+vers le haut, alors que @code{\voiceTwo} et @code{\voiceFour} les font
+pointer vers le bas.  Ces commandes génèrent par ailleurs un décalage
+horizontal de chacune des voix pour éviter tout risque de chevauchement
+entre plusieurs notes.  La commande @code{\oneVoice} les ramène aux
+critères normaux.
+
+Voyons, à l'aide de ces exemples simples, les effets respectifs de
+@code{\oneVoice}, @code{\voiceOne} et @code{\voiceTwo} sur les
+annotations, liaisons de prolongation ou de phrasé, et sur les nuances.
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c' {
+  % Default behavior or behavior after \oneVoice
+  c4 d8~ d e4( f | g4 a) b-> c |
+}
+@end lilypond
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c' {
+  \voiceOne
+  c4 d8~ d e4( f | g4 a) b-> c |
+  \oneVoice
+  c,4 d8~ d e4( f | g4 a) b-> c |
+}
+@end lilypond
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c' {
+  \voiceTwo
+  c4 d8~ d e4( f | g4 a) b-> c |
+  \oneVoice
+  c,4 d8~ d e4( f | g4 a) b-> c |
+}
+@end lilypond
+
+Voyons à présent trois différentes façons d'exprimer un passage
+polyhonique, à partir d'un exemple de la section précédente.  Chacune
+d'elles aura ses avantages selon les circonstances.
+
+Une expression séquentielle qui apparaît en premier dans un @code{<< >>}
+-- attention, @strong{pas} dans une construction @code{<< \\ >>} --
+appartient à la voix principale.  Ceci est utile lorsque des voix
+supplémentaires apparaissent pendant que la voix principale est jouée.
+Voici une meilleure réalisation de notre exemple.
+Les notes colorées et en croix mettent en évidence le fait que la
+mélodie principale est maintenant dans un seul contexte de voix, ce qui
+permet d'ajouter une liaison de phrasé à l'ensemble.
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' {
+  \voiceOneStyle
+  % The following notes are monophonic
+  c16^( d e f
+  % Start simultaneous section of three voices
+  <<
+    % Continue the main voice in parallel
+    { g4 f e | d2 e) | }
+    % Initiate second voice
+    \new Voice {
+      % Set stems, etc., down
+      \voiceTwo
+      r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
+    }
+    % Initiate third voice
+    \new Voice {
+      % Set stems, etc, up
+      \voiceThree
+      s2. | s4 b c2 |
+    }
+  >>
+}
+@end lilypond
+
+@cindex imbrication d'expressions musicales
+@cindex imbrication de constructions simultanées
+@cindex voix temporaires
+@cindex voix, imbrication
+
+
+Dans certaines circonstances de polyphonie complexe, vous pourrez être
+amené à recourir à une voix temporaire, ce qui peut être une manière
+plus naturelle de saisir la musique@tie{}:
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' {
+  c16^( d e f
+  <<
+    { g4 f e | d2 e) | }
+    \new Voice {
+      \voiceTwo
+      r8 e4 d c8~ |
+      <<
+        { c8 b16 a b8 g~ g2 | }
+        \new Voice {
+          \voiceThree
+          s4 b c2 |
+        }
+      >>
+    }
+  >>
+}
+@end lilypond
+
+@cindex espacement des notes
+
+Cette manière de brièvement imbriquer des voix est bien utile pour de
+courts fragments de musique polyphonique.  Mais lorsqu'une portée est
+très souvent polyphonique, on peut y gagner en clarté si l'on utilise
+plusieurs voix sur l'ensemble de cette portée et que l'on positionne des
+silences invisibles pour sauter les moments où il n'y a rien dans cette
+voix.
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' <<
+  % Initiate first voice
+  \new Voice {
+    \voiceOne
+    c16^( d e f g4 f e | d2 e2) |
+  }
+  % Initiate second voice
+  \new Voice {
+    % Set stems, etc, down
+    \voiceTwo
+    s4 r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2 |
+  }
+  % Initiate third voice
+  \new Voice {
+    % Set stems, etc, up
+    \voiceThree
+    s1 | s4 b4 c2 |
+  }
+>>
+@end lilypond
+
+@subsubheading Empilement des notes
+@translationof Note columns
+
+@cindex note column
+@cindex empilement de notes
+@cindex collisions de notes
+@cindex shift, commandes
+@cindex décalage, commandes
+
+@funindex \shiftOff
+@funindex shiftOff
+@funindex \shiftOn
+@funindex shiftOn
+@funindex \shiftOnn
+@funindex shiftOnn
+@funindex \shiftOnnn
+@funindex shiftOnnn
+
+Les notes rapprochées d'un accord, ou des notes de différentes voix qui
+tombent ensemble, seront rangées sur deux colonnes, voire plus, pour
+palier d'éventuels chevauchements des têtes.  On appelle cela des
+empilements de notes.  Chaque voix dispose de plusieurs empilements, et
+l'attribution d'un décalage à une voix en particulier s'appliquera à
+l'empilement en question s'il y avait risque de collision.
+Nous en avons une illustration à la deuxième mesure de l'exemple
+ci-dessus@tie{}: le do de la deuxième voix est décalé à droite du ré de
+la première voix et, dans l'accord final, le do de la troisième voix est
+lui aussi décalé à droite des autres notes.
+
+Les commandes @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}, et
+@code{\shiftOff} spécifient le degré nécessaire de décalage qui sera
+appliqué aux notes ou accords de la voix en question afin d'éviter une
+collision.  Par défaut, les voix extérieures -- normalement les
+première et deuxième -- se verront attribuer @code{\shiftOff}, alors que
+les voix intérieures -- trois et quatre -- se verront attribuer
+@code{\shiftOn}.  Lorsqu'un décalage s'applique, les voix un et trois
+iront vers la droite, et les voix deux et quatre vers la gauche.
+
+@code{\shiftOnn} et @code{\shiftOnnn} définissent des degrés augmentés
+de décalage auquel on peut devoir temporairement recourir dans des
+situations complexes -- voir @ref{Exemple concret}.
+
+Un empilement peut ne contenir qu'une note ou un accord dans une voix
+aux hampes vers le haut, et une note ou un accord dans une voix
+aux hampes vers le bas.  Dans le cas où des notes, issues de deux voix
+ayant toutes deux des hampes dans la même direction, se retrouvent au
+même moment et qu'aucun décalage n'a été spécifié ou qu'ils sont
+identiques, LilyPond vous le signalera par le message @qq{Trop
+d'empilements en conflit}.
+
+
+@seealso
+Manuel de notation :
+@ruser{Plusieurs voix}.
+
+
+@node Voix et paroles
+@subsection Voix et paroles
+@translationof Voices and vocals
+
+La musique vocale est une gageure en soi@tie{}: il nous faut combiner
+deux expressions différentes -- des notes et des paroles.
+
+@funindex \new Lyrics
+@funindex \lyricsto
+@funindex lyricsto
+@funindex Lyrics
+
+@cindex Lyrics, création d'un contexte
+@cindex paroles, affectation à une voix
+
+Nous avons déjà abordé la commande @code{\addlyrics@{@}}, qui permet de
+gérer des partitions simples.  Cette technique est cependant
+relativement limitée.  Pour de la musique un peu plus compliquée, il
+vous faudra contenir les paroles dans un contexte @code{Lyrics}, créé
+par la commande @code{\new Lyrics}@tie{}; vous relierez ensuite ces
+paroles aux notes grâce à la commande @code{\lyricsto@{@}} et au nom
+assigné à la voix en question.
+
+@lilypond[quote,verbatim]
+<<
+  \new Voice = "one" {
+    \relative c'' {
+      \autoBeamOff
+      \time 2/4
+      c4 b8. a16 | g4. f8 | e4 d | c2 |
+    }
+  }
+  \new Lyrics \lyricsto "one" {
+    No more let | sins and | sor -- rows | grow. |
+  }
+>>
+@end lilypond
+
+Notez bien que les paroles sont liées à un contexte de voix
+(@code{Voice}), @strong{non} à un contexte de portée (@code{Staff}).  Il
+est donc nécessaire de créer explicitement les contextes @code{Staff}
+et @code{Voice}.
+
+@cindex paroles et ligatures
+@cindex ligatures et paroles
+
+@funindex \autoBeamOff
+@funindex autoBeamOff
+
+Si la ligature automatique que LilyPond applique par défaut
+est pleinement adaptée en matière de musique instrumentale, il
+n'en va pas de même dans le cas d'une musique associée à des paroles,
+et pour laquelle soit les ligatures sont carrément absentes, soit elles
+servent à indiquer un mélisme -- plusieurs notes pour une même syllabe.
+Dans l'exemple qui suit, nous utilisons la commande @code{\autoBeamOff}
+afin de désactiver les ligatures automatiques.
+
+@funindex \new ChoirStaff
+@funindex ChoirStaff
+@funindex \lyricmode
+@funindex lyricmode
+
+@cindex structure d'une partition vocale
+@cindex chœur, partie de
+
+Nous allons reprendre un extrait de Judas Maccabæus pour illustrer ce
+que cette technique apporte en flexibilité.  Nous commençons par
+utiliser des variables -- ou identificateurs --  afin de séparer de la
+structure de la portée aussi bien la musique que les paroles.  Nous
+ajoutons par la même occasion un crochet spécifique aux portées pour
+chœur (@code{ChoirStaff}).  Quant aux blocs de paroles, nous les faisons
+précéder de la commande @code{\lyricmode} pour nous assurer qu'elles
+seront interprétées comme telles, et non comme de la musique.
+
+@lilypond[quote,verbatim]
+global = { \key f \major \time 6/8 \partial 8 }
+
+SopOneMusic = \relative c'' {
+  c8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ c4
+}
+SopOneLyrics = \lyricmode {
+  Let | flee -- cy flocks the | hills a -- dorn, __
+}
+SopTwoMusic = \relative c' {
+  r8 | r4. r4 c8 | a'8([ g)] f f([ e)] d | e8([ d)] c bes'
+}
+SopTwoLyrics = \lyricmode {
+  Let | flee -- cy flocks the | hills a -- dorn,
+}
+
+\score {
+  \new ChoirStaff <<
+    \new Staff <<
+      \new Voice = "SopOne" {
+        \global
+        \SopOneMusic
+      }
+      \new Lyrics \lyricsto "SopOne" {
+        \SopOneLyrics
+      }
+    >>
+    \new Staff <<
+      \new Voice = "SopTwo" {
+        \global
+        \SopTwoMusic
+      }
+      \new Lyrics \lyricsto "SopTwo" {
+        \SopTwoLyrics
+      }
+    >>
+  >>
+}
+@end lilypond
+
+Voici donc la structure de base valable pour toute partition vocale.  On
+peut y ajouter d'autres portées si besoin est, d'autres voix à chaque
+portée, plusieurs couplets aux paroles, et les variables contenant la
+musique peuvent même être stockées dans des fichiers indépendants dès
+lors que leur longueur devient conséquente.
+
+@cindex structure d'hymne
+@cindex SATB, structure
+@cindex partition vocale avec plusieurs couplets
+@cindex couplets multiples et musique vocale
+
+Voici maintenant la première ligne d'une hymne pour chœur à quatre voix
+mixtes, comportant quatre couplets.  Les paroles sont ici identiques
+pour les quatre voix.  Vous remarquerez le recours aux variables afin de
+séparer de la structure de portée aussi bien les notes que les paroles.
+Vous noterez aussi une variable particulière, que nous avons appelée
+@qq{ArmureMetrique}, et qui contient plusieurs commandes que nous
+utiliserons dans les deux portées.  Dans de nombreux autres exemples,
+elle s'appelle @qq{global}.
+
+@lilypond[quote,verbatim]
+keyTime = { \key c \major \time 4/4 \partial 4 }
+
+SopMusic   = \relative c' { c4 | e4. e8 g4  g    | a4   a   g  }
+AltoMusic  = \relative c' { c4 | c4. c8 e4  e    | f4   f   e  }
+TenorMusic = \relative c  { e4 | g4. g8 c4.   b8 | a8 b c d e4 }
+BassMusic  = \relative c  { c4 | c4. c8 c4  c    | f8 g a b c4 }
+
+VerseOne =
+  \lyricmode { E -- | ter -- nal fa -- ther, | strong to save, }
+VerseTwo   =
+  \lyricmode { O | Christ, whose voice the | wa -- ters heard, }
+VerseThree =
+  \lyricmode { O | Ho -- ly Spi -- rit, | who didst brood }
+VerseFour  =
+  \lyricmode { O | Tri -- ni -- ty of | love and pow'r }
+
+\score {
+  \new ChoirStaff <<
+    \new Staff <<
+      \clef "treble"
+      \new Voice = "Sop"  { \voiceOne \keyTime \SopMusic }
+      \new Voice = "Alto" { \voiceTwo \AltoMusic }
+      \new Lyrics \lyricsto "Sop" { \VerseOne   }
+      \new Lyrics \lyricsto "Sop" { \VerseTwo   }
+      \new Lyrics \lyricsto "Sop" { \VerseThree }
+      \new Lyrics \lyricsto "Sop" { \VerseFour  }
+    >>
+    \new Staff <<
+      \clef "bass"
+      \new Voice = "Tenor" { \voiceOne \keyTime \TenorMusic }
+      \new Voice = "Bass"  { \voiceTwo \BassMusic }
+    >>
+  >>
+}
+@end lilypond
+
+
+@seealso
+Manuel de notation :
+@ruser{Musique vocale}.
+
+
+@node Contextes et graveurs
+@section Contextes et graveurs
+@translationof Contexts and engravers
+
+Nous avons évoqué rapidement les contextes et graveurs dans les
+chapitres précédents@tie{}; examinons en détail ces concepts essentiels
+à la maîtrise de LilyPond.
+
+@menu
+* Tout savoir sur les contextes::
+* Création d'un contexte::
+* Tout savoir sur les graveurs::
+* Modification des propriétés d'un contexte::
+* Ajout et suppression de graveurs::
+@end menu
+
+@node Tout savoir sur les contextes
+@subsection Tout savoir sur les contextes
+@translationof Contexts explained
+
+@cindex contextes, les différents
+
+Imprimer de la musique impose d'ajouter un certain nombre d'éléments de
+notation.  Par exemple, voici un fragment de partition, précédé du code
+qui l'engendre@tie{}:
+
+@lilypond[quote,verbatim,relative=2]
+cis4 cis2. | a4 a2. |
+@end lilypond
+
+Si le code est assez austère, dans la partition ont été ajoutés un
+chiffre de mesure, des barres de mesure, des altérations et une clé.
+Pour une bonne raison@tie{}: LilyPond @emph{interprète} le code.  Il le
+compulse dans l'ordre chronologique, de même qu'on lit une partition de
+gauche à droite@tie{}; et pendant ce traitement, le logiciel garde en
+mémoire les limites des mesures, ou encore quelles hauteurs de note
+demandent des altérations accidentelles.  Ces informations se présentent
+à plusieurs niveaux@tie{}: ainsi, une altération n'a d'effet que sur une
+seule portée, tandis qu'une barre de mesure doit être synchronisée sur
+toute l'étendue verticale de la partition.
+
+LilyPond regroupe ces règles et ces fragments d'information dans des
+@emph{Contextes}.  Certains contextes sont les voix (contexte
+@code{Voice}), les portées (contexte @code{Staff}), ou la partition dans
+son ensemble (contexte @code{Score}).  Ils sont ordonnés
+hiérarchiquement@tie{}: ainsi un contexte @code{Staff} peut contenir
+plusieurs contextes @code{Voice}, et un contexte @code{Score} peut
+contenir plusieurs contextes @code{Staff}.
+
+@quotation
+@sourceimage{context-example,5cm,,}
+@end quotation
+
+Chaque contexte est chargé de faire appliquer certaines règles de
+gravure, de créer certains objets, et de prendre en compte les
+propriétés qui leur sont associées.  Ainsi, le contexte @code{Voice}
+peut faire intervenir une altération accidentelle, puis le contexte
+@code{Staff} devra déterminer s'il faudra imprimer ou non cette dernière
+dans la suite de la mesure.
+
+Les barres de mesure, quant à elles, sont alignées verticalement grâce
+au contexte @code{Score} par défaut.
+En revanche, dans une musique polymétrique, par exemple mêlant une
+portée à 3/4 et une autre à 4/4, les barres de mesures n'ont plus à être
+alignées@tie{}: il faut alors modifier les comportement par défaut des
+contextes @code{Score} et @code{Staff}.
+
+Dans une partition très simple, les contextes sont créés implicitement
+et peuvent être ignorés.  Mais lorsqu'il s'agit de morceaux plus amples
+-- entendons par là tout ce qui s'écrit sur plus d'une portée -- il faut
+les créer explicitement pour être sûr d'obtenir toutes les portées
+nécessaires, et dans le bon ordre.  Enfin, pour des morceaux impliquant
+une notation spéciale, modifier les contextes ou en créer de nouveaux
+devient extrêment utile.
+
+En plus des contextes @code{Score}, @code{Staff} et @code{Voice} sont
+disponibles d'autres contextes intermédiaires entre les niveaux
+partition et portée, chargés de gérer certains regroupement, tels que
+@code{PianoStaff} ou @code{ChoirStaff}.  Vous disposez aussi d'autres
+contextes de portée ou de voix alternatifs, ainsi que des contextes
+spécifiques pour les paroles, les percussions, les diagrammes pour
+instruments frettés, la basse chiffrée, etc.
+
+Le nom de chacun des contextes est formé d'un ou plusieurs mots aux
+initiales en capitale et directement accolés les uns aux autres sans
+ponctuation, comme par exemple @code{GregorianTranscriptionStaff}.
+
+
+@seealso
+Manuel de notation :
+@ruser{Tout savoir sur les contextes}.
+
+
+@node Création d'un contexte
+@subsection Création d'un contexte
+@translationof Creating contexts
+
+@funindex \new
+@funindex new
+
+@cindex nouveaux contextes
+@cindex contextes, création de
+
+Il en va des contextes comme de toute hiérarchie@tie{}: il faut un
+sommet -- le contexte @code{Score} en l'occurence.  La commande
+@code{\score} est chargée de le créer, mais pour des partitions simples,
+il le sera automatiquement.  Le bloc @code{\score} contient donc une
+expression musicale unique ainsi que la définition des supports à
+produire -- @code{\layout} pour du visuel ou @code{\midi} pour de
+l'acoustique.
+
+Lorsqu'une partition ne comporte qu'une voix et une seule portée, vous
+pouvez laisser LilyPond créer automatiquement les contextes @code{Voice}
+et @code{Staff}@tie{}; mais leur présence explicite devient
+indispensable dès que la situation se complique.
+Le moyen le plus simple est d'utiliser la commande @code{\new}.  Elle
+doit intervenir avant une expression musicale, ainsi@tie{}:
+
+@example
+\new @var{type} @var{expression-musicale}
+@end example
+
+@noindent
+où @var{type} correspond au nom du contexte (tels @code{Staff} ou
+@code{Voice}).  Cette commande crée un nouveau contexte, puis
+interprète l'@var{expression-musicale} contenue dans ledit
+contexte.
+
+@warning{La commande @bs{}@code{new Score} ne devrait jamais servir en
+début de partition, puisque le contexte premier que constitue
+@code{Score} est créé automatiquement par l'interprétation de
+l'@var{expression-musicale} contenue dans le bloc @code{\score}.  Les
+adaptations affectant les propriétés des différents contextes et qui
+s'appliqueront à l'ensemble de la partition trouvent leur place au sein
+d'un bloc @bs{}@code{layout}, en suivant les préceptes énoncés au
+chapitre @ref{Modification des propriétés d'un contexte}.}
+
+Nous avons déjà vu au cours des chapitres précédents de nombreux
+exemples où des contextes @code{Staff} ou @code{Voice} étaient créés au
+besoin.  Dans un but didactique, voici maintenant une application
+complète et abondamment commentée@tie{}:
+
+@lilypond[quote,verbatim,ragged-right]
+\score {  % start of single compound music expression
+  <<  % start of simultaneous staves section
+    \time 2/4
+    \new Staff {  % create RH staff
+      \key g \minor
+      \clef "treble"
+      \new Voice {  % create voice for RH notes
+        \relative c'' {  % start of RH notes
+          d4 ees16 c8. |
+          d4 ees16 c8. |
+        }  % end of RH notes
+      }  % end of RH voice
+    }  % end of RH staff
+    \new Staff <<  % create LH staff; needs two simultaneous voices
+      \key g \minor
+      \clef "bass"
+      \new Voice {  % create LH voice one
+        \voiceOne
+        \relative g {  % start of LH voice one notes
+          g8 <bes d> ees, <g c> |
+          g8 <bes d> ees, <g c> |
+        }  % end of LH voice one notes
+      }  % end of LH voice one
+      \new Voice {  % create LH voice two
+        \voiceTwo
+        \relative g {  % start of LH voice two notes
+          g4 ees |
+          g4 ees |
+        }  % end of LH voice two notes
+      }  % end of LH voice two
+    >>  % end of LH staff
+  >>  % end of simultaneous staves section
+}  % end of single compound music expression
+@end lilypond
+
+Notez que toute déclaration qui ouvre un bloc par une
+accolade, @code{@{}, ou un double chevron gauche, @code{<<}, est
+indentée de deux espaces supplémentaires, et de deux autres pour sa
+marque de fermeture.  Bien que ceci ne soit pas obligatoire, nous vous
+invitons à adopter cette pratique qui vous évitera nombre d'erreurs
+@qq{accolades non appariées}.  La structure de la musique apparaît ainsi
+au premier coup d'œil, et les défauts de parité sont plus facilement
+repérables.  Vous remarquerez que la portée MG est créée à l'aide d'un
+double chevron gauche -- nécessaire pour gérer ses deux voix -- alors
+que la portée MD ne contient qu'une seule expression musicale -- il n'y
+a qu'une voix -- bornée par des accolades simples.
+
+@cindex contexte, nommage
+@cindex nommage des contextes
+
+La commande @code{\new} peut aussi permettre de nommer le contexte créé,
+et ainsi le distinguer des autres contextes déjà existants@tie{}:
+
+@example
+\new @var{type} = @var{"UnNom"} @var{expression-musicale}
+@end example
+
+Vous noterez la distinction entre le nom du type de contexte,
+@code{Staff}, @code{Voice}, etc. et le nom -- une simple suite de
+lettres au bon gré de l'utilisateur -- permettant d'identifier une
+instance particulière du type en question.  Vous pouvez utiliser des
+chiffres et espaces, à la stricte condition d'englober le tout dans des
+guillemets@tie{}; l'identificateur suivant est tout à fait valide@tie{}:
+@w{@code{\new Staff = "MaPortee 1" @var{expression-musicale}}}.
+Comme nous l'avons déjà vu dans le chapitre consacré aux paroles
+(@ref{Voix et paroles}), cet identifiant permettra ensuite de se
+référer à ce contexte particulier.
+
+
+@seealso
+Manuel de notation :
+@ruser{Création d'un contexte}.
+
+
+@node Tout savoir sur les graveurs
+@subsection Tout savoir sur les graveurs
+@translationof Engravers explained
+
+@cindex engravers
+@cindex graveurs
+
+Tout point qui compose une partition générée par LilyPond est
+produit par un graveur (@emph{engraver} en anglais).   Ainsi, il y en a
+un qui imprime les portées, un autre les têtes de note, un autre les
+hampes, un autre encore pour les ligatures, etc.  LilyPond dispose de
+plus de 120 graveurs@tie{}!  La plupart des partitions ne requièrent de
+s'intéresser qu'à quelques-uns seulement, et pour des partitions
+simples, vous n'aurez même pas à vous en préoccuper.
+
+Les graveurs résident et opèrent au sein des contextes.
+Les graveurs tels que le @code{Metronome_mark_engraver}, dont les effets
+s'appliquent à la partition dans son intégralité, opèrent au sein du
+contexte de plus haut niveau -- le contexte @code{Score}.
+
+Les graveurs @code{Clef_engraver} et @code{Key_engraver} seront logés
+dans chacun des contextes @code{Staff}@tie{}; deux portées peuvent
+requérir des clefs et des armures différentes.
+
+Les graveurs @code{Note_heads_engraver} et @code{Stem_engraver} résident
+dans chacun des contextes @code{Voice}, contexte du plus bas niveau.
+
+Chaque graveur confectionne les objets spécifiquement associés à sa
+fonction et traite les propriétés attachées à cette fonction.  Ces
+propriétés, tout comme celles relatives aux contextes, peuvent être
+modifiées afin d'influencer le comportement du graveur et par voie de
+conséquence le rendu des éléments dont il a la charge.
+
+Les graveurs ont tous un nom composé, formé des différents mots
+décrivant leur fonction.  Seule l'initiale du premier mot est en
+majuscule, et les mots qui le composent sont joints par un caractère
+souligné.  Ainsi, le @code{Staff_symbol_engraver} est chargé de créer
+les lignes de la portée, et le @code{Clef_engraver} détermine la hauteur
+de référence de la portée en dessinant le symbole de la clef.
+
+Voici quelques-uns des graveurs les plus courants, ainsi que leur
+fonction.  Vous noterez qu'il est facile d'en connaître la fonction à
+partir du nom, et vice versa.
+
+@multitable @columnfractions .3 .7
+@headitem Graveur
+  @tab Fonction
+@item Accidental_engraver
+  @tab Crée les altérations, y compris de précaution, accidentelles ou suggérées
+@item Beam_engraver
+  @tab Grave les ligatures (@emph{beams})
+@item Clef_engraver
+  @tab Grave les clefs
+@item Completion_heads_engraver
+  @tab Divise les notes qui dépassent de la mesure
+@item New_dynamic_engraver
+  @tab Crée les soufflets et textes de nuance
+@item Forbid_line_break_engraver
+  @tab Empêche un saut de ligne si un élément musical est toujours actif
+@item Key_engraver
+  @tab Crée l'armure
+@item Metronome_mark_engraver
+  @tab Grave les indications métronomiques
+@item Note_heads_engraver
+  @tab Grave les têtes de note
+@item Rest_engraver
+  @tab Grave les silences
+@item Staff_symbol_engraver
+  @tab Grave les cinq lignes (par défaut) de la portée
+@item Stem_engraver
+  @tab Crée les hampes et les trémolos sur une hampe unique
+@item Time_signature_engraver
+  @tab Crée les métriques
+@end multitable
+
+@smallspace
+
+Nous verrons plus avant comment le résultat de LilyPond peut changer
+lorsqu'on modifie l'action des graveurs.
+
+
+@seealso
+Référence des propriétés internes :
+@rinternals{Engravers and Performers}.
+
+
+@node Modification des propriétés d'un contexte
+@subsection Modification des propriétés d'un contexte
+@translationof Modifying context properties
+
+@cindex contexte, propriétés
+@cindex propriétés d'un contexte, modification
+@cindex modification des propriétés d'un contexte
+
+@funindex \set
+@funindex set
+@funindex \unset
+@funindex unset
+
+Les contextes gèrent les différentes valeurs des nombreuses
+@emph{propriétés} qui leur sont attachées.  Beaucoup d'entre elles
+sont susceptibles d'être modifiées afin d'influer sur l'interprétation
+de l'input et ainsi changer l'apparence du résultat.  On les modifie
+grâce à la commande @code{\set}, qui s'utilise ainsi@tie{}:
+
+@example
+\set @emph{ContexteNommé}.@emph{propriétéNommée} = #@emph{valeur}
+@end example
+
+où @emph{ContexteNommé} est habituellement @code{Score},
+@code{Staff} ou @code{Voice}.  S'il n'est pas mentionné, il sera
+considéré comme étant @code{Voice}.
+
+Les noms des propriétés de contexte sont composés de mots accolés sans
+trait d'union ni caractère souligné, et dont seul le premier n'aura pas
+d'initiale en majuscule.  Voici quelques exemples de celles les plus
+communément utilisées.
+
+@c attempt to force this onto a new page
+@need 50
+@multitable @columnfractions .25 .15 .45 .15
+@headitem propriétéNommée
+  @tab Type
+  @tab Fonction
+  @tab Exemple de valeur
+@item extraNatural
+  @tab Booléen
+  @tab Si vrai, ajoute un bécarre avant une altération accidentelle
+  @tab @code{#t}, @code{#f}
+@item currentBarNumber
+  @tab Entier
+  @tab Détermine le numéro de la mesure en cours
+  @tab @code{50}
+@item doubleSlurs
+  @tab Booléen
+  @tab Si vrai, imprime les liaisons au-dessous @strong{et} au-dessus des notes
+  @tab @code{#t}, @code{#f}
+@item instrumentName
+  @tab Texte
+  @tab Détermine le nom à afficher en début de portée
+  @tab @code{"Cello I"}
+@item fontSize
+  @tab Réel
+  @tab Augmente ou diminue la taille de la fonte
+  @tab @code{2.4}
+@item stanza
+  @tab Texte
+  @tab Détermine le texte à imprimer avant le début d'un couplet
+  @tab @code{"2"}
+@end multitable
+
+@noindent
+où un boléen correspond soit à vrai (@code{#t} pour @emph{True} en
+anglais) ou faux (@code{#f} pour @emph{False} en anglais), un entier est
+un nombre entier positif, un réel est un nombre décimal positif ou
+négatif, et texte correspond à une suite de caractères encadrée par des
+apostrophes doubles.  Attention à la présence des signes dièse
+(@code{#}) dans deux cas particuliers@tie{}: ils sont partie intégrante
+des valeurs boléennes et précèdent les @code{t} ou @code{f}, mais
+doivent aussi précéder @emph{valeur} dans le libellé de la commande
+@code{\set}. Il faudra donc, dans le cas d'une valeur boléenne, ne pas
+oublier de saisir deux signes dièse -- par exemple @code{##t}.
+
+@cindex propriétés et contextes
+@cindex réglage de propriétés au sein des contextes
+
+Avant de déterminer l'une de ces propriétés, nous devons savoir dans
+quel contexte elle intervient.  Si cela est bien souvent évident, il
+peut arriver que cela tourne au cauchemar.  Lorsque vous ne spécifiez
+pas le bon contexte, aucun message d'erreur ne s'affiche et l'effet
+attendu n'est pas au rendez-vous.  Par exemple, le @code{instrumentName}
+est de manière incontestable membre du contexte @code{Staff}, puisque
+c'est bien la portée que l'on va nommer.
+Dans l'exemple suivant, la première portée affiche effectivement un nom,
+alors que ce n'est pas le cas pour la deuxième dans la mesure où le
+contexte n'a pas été spécifié.
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff \relative c'' {
+    \set Staff.instrumentName = #"Soprano"
+    c4 c
+ }
+  \new Staff \relative c' {
+  \set instrumentName = #"Alto"  % Wrong!
+  d4 d
+ }
+>>
+@end lilypond
+
+Dans la mesure où le nom de contexte par défaut est @code{Voice}, la
+deuxième commande @code{\set} a défini @qq{Alto} comme propriété
+@code{instrumentName} du contexte de voix.  Puisque LilyPond n'ira pas
+chercher une telle propriété dans le contexte @code{Voice}, celle-ci ne
+sera pas interprétée.  Il ne s'agit pas d'une erreur, aucun message
+d'erreur ne sera ni émis ni enregistré.
+
+De la même manière, une faute d'orthographe dans le nom de la propriété
+ne génèrera aucun message d'erreur et l'action escomptée ne se produira
+pas.  Vous pourriez déterminer par la commande @code{\set} n'importe
+quelle @qq{propriété}, même fictive, à partir de n'importe quel nom et
+dans n'importe lequel des contextes disponibles.  Mais tant que ce nom
+est inconnu de LilyPond, rien ne se passera.  Certains éditeurs de texte
+disposent d'une prise en charge spécifique aux fichiers source LilyPond,
+à l'instar de LilyPondTool couplé à JEdit et qui documente les noms des
+propriétés dans une infobulle lorsque vous les survolez à la souris, ou
+les souligne différemment s'ils sont inconnus, comme ConTEXT.  Dans le
+cas où votre éditeur ne dispose pas de ces fonctionnalités, nous vous
+recommandons de vérifier le nom des propriétés que vous manipulez dans
+la Référence des propriétés internes -- voir
+@rinternals{Tunable context properties}, ou @rinternals{Contexts}.
+
+La propriété @code{instrumentName} ne sera prise en compte que si elle
+est définie dans un contexte @code{Staff}@tie{}; d'autres propriétés
+peuvent par contre être définies dans plusieurs contextes différents.
+C'est le cas de la propriété @code{extraNatural} qui est définie par
+défaut à @code{##t} (vrai) pour toutes les portées.  Si vous lui
+attribuez la valeur @code{##f} (faux) dans un contexte @code{Staff}
+particulier, elle ne s'appliquera qu'aux altérations de la portée en
+question@tie{}; si vous lui attribuez la valeur @qq{faux} au niveau du
+contexte @code{Score}, cela s'appliquera alors à toutes les portées.
+
+Voici comment supprimer les bécarres supplémentaires pour une
+portée@tie{}:
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff \relative c'' {
+    ais2 aes
+  }
+  \new Staff \relative c'' {
+    \set Staff.extraNatural = ##f
+    ais2 aes
+  }
+>>
+@end lilypond
+
+@noindent
+et pour toutes les portées :
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff \relative c'' {
+    ais2 aes
+  }
+  \new Staff \relative c'' {
+    \set Score.extraNatural = ##f
+    ais2 aes
+  }
+>>
+@end lilypond
+
+Autre exemple, si la propriété @code{clefOctavation} est déterminée au
+niveau du contexte @code{Score}, elle modifiera la valeur de l'octave en
+cours pour toutes les portées actives@tie{}; cette valeur sera considérée
+comme étant la nouvelle valeur par défaut pour toutes les portées à
+venir.
+
+La commande opposée, @code{\unset}, efface la propriété du
+contexte@tie{}; la plupart des propriétés reviennent de ce fait à leur
+valeur par défaut.  En règle générale, la commande @code{\unset} n'est
+pas nécessaire dès lors que vous faites appel à une nouvelle commande
+@code{\set} pour modifier le réglage.
+
+Les commandes @code{\set} et @code{\unset} peuvent intervenir n'importe
+où dans votre fichier source.  Elles seront effectives dès leur
+apparition et jusqu'à la fin de la partition, à moins d'être affectées
+par un @code{\unset} ou un nouveau @code{\set}.  À titre d'exemple, nous
+allons jouer avec la taille des fontes, ce qui affecte entre
+autres la grosseur des têtes de note.  Les modifications s'appliquent
+toujours par rapport à la valeur par défaut, non par rapport à la
+dernière valeur définie.
+
+@lilypond[quote,verbatim,ragged-right,relative=1]
+c4 d
+% make note heads smaller
+\set fontSize = #-4
+e4 f |
+% make note heads larger
+\set fontSize = #2.5
+g4 a
+% return to default size
+\unset fontSize
+b4 c |
+@end lilypond
+
+Nous venons de voir comment déterminer la valeur de différents types de
+propriété.  N'oubliez pas que les nombres, entiers ou réels, doivent
+être précédés d'un signe dièse (@code{#}) et les valeurs vrai ou faux de
+deux signes dièse -- respectivement @code{##t} et @code{##f} --. Une
+valeur textuelle doit être encadrée de guillemets anglais,
+@code{"@dots{ }"}, bien que, comme nous le constaterons plus tard, la
+commande @code{\markup} permet aussi de spécifier du texte.
+
+@subsubheading Définition des propriétés de contexte avec @code{\with}
+@translationof Setting context properties with @code{\with}
+
+@funindex \with
+@funindex with
+
+@cindex propriétés d'un contexte, définition avec \with
+
+Les propriétés d'un contexte peuvent aussi être réglées lors de la
+création de ce contexte.  Ceci constitue parfois une façon plus claire
+de spécifier les valeurs d'une propriété pour la durée de vie du
+contexte.  Lorsque vous créez un contexte à l'aide de la commande
+@code{\new}, vous pouvez la faire suivre immédiatement d'un bloc
+@w{@code{\with @{ .. @}}} qui contiendra les réglages des différentes
+propriétés.  Ainsi, si nous voulions par exemple annuler l'impression
+des bécarres supplémentaires sur la durée d'une portée, nous
+écririons@tie{}:
+
+@example
+\new Staff \with @{ extraNatural = ##f @}
+@end example
+
+@noindent
+ce qui donnerait :
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff
+    \relative c'' {
+      gis4 ges aes ais
+    }
+  \new Staff \with { extraNatural = ##f } {
+    \relative c'' {
+      gis4 ges aes ais
+    }
+  }
+>>
+@end lilypond
+
+Les propriétés réglées de cette manière peuvent néanmoins être modifiées
+de façon dynamique grâce à @code{\set}@tie{}; un @code{\unset} les
+ramènera à leur valeur initialisée par @code{\with}.
+
+@cindex fontSize, valeur par défaut et réglage
+
+La propriété @code{fontSize} constitue une exception@tie{}: lorsqu'elle
+est déterminée au sein d'un bloc @code{\with}, cela redéfinit la valeur
+par défaut de la taille de fonte.  Une modification est possible par la
+commande @code{\set}, mais la commande @code{\unset fontSize} fera
+revenir à la nouvelle valeur par défaut.
+
+@subsubheading Définition des propriétés de contexte avec @code{\context}
+@translationof Setting context properties with @code{\context}
+
+@cindex propriétés d'un contexte, définition avec \context
+
+@funindex \context
+@funindex context
+
+Vous pouvez régler les valeurs des propriétés de contexte en une seule
+fois pour tous les contextes d'un même type, par exemple tous les
+contextes @code{Staff}.  Le type du contexte doit être donné
+explicitement d'après son nom, par exemple @code{Staff}, précédé d'une
+oblique inverse, donc nous saisirons @code{\Staff}.  La manière de
+régler la valeur des propriétés est la même que ce que nous avons vu
+avec la commande @code{\with}, puisqu'on se place dans un bloc
+@code{\context} inclus dans un bloc @code{\layout}.  Chaque bloc
+@code{\context} affectera tous les contextes concernés par le bloc
+@code{\score} ou @code{\book} au sein duquel apparaît ce bloc
+@code{\layout}.  Voici comment le mettre en place@tie{}:
+
+@lilypond[verbatim,quote]
+\score {
+  \new Staff {
+    \relative c'' {
+      cis4 e d ces
+    }
+  }
+  \layout {
+    \context {
+      \Staff
+      extraNatural = ##t
+    }
+  }
+}
+@end lilypond
+
+Dans le cas où ces ajustements de propriété doivent affecter
+toutes les portées de la partition, nous utiliserons alors@tie{}:
+
+@lilypond[quote,verbatim]
+\score {
+  <<
+    \new Staff {
+      \relative c'' {
+        gis4 ges aes ais
+      }
+    }
+    \new Staff {
+      \relative c'' {
+        gis4 ges aes ais
+      }
+    }
+  >>
+  \layout {
+    \context {
+      \Score extraNatural = ##f
+    }
+  }
+}
+@end lilypond
+
+@noindent
+Les propriétés de contexte ainsi définies peuvent être adaptées pour
+chacun des contextes en particulier grâce à un bloc @code{\with} ou bien
+une commande @code{\set} au fil des notes.
+
+
+@seealso
+Manuel de notation :
+@ruser{Modification des réglages par défaut d'un contexte},
+@ruser{La commande de fixation (set)}.
+
+Référence des propriétés internes :
+@rinternals{Contexts},
+@rinternals{Tunable context properties}.
+
+
+@node Ajout et suppression de graveurs
+@subsection Ajout et suppression de graveurs
+@translationof Adding and removing engravers
+
+@cindex graveurs, ajout
+@cindex graveurs, suppression
+
+@funindex \consists
+@funindex consists
+@funindex \remove
+@funindex remove
+
+Nous avons vu que chaque contexte met en œuvre plusieurs graveurs, et
+que chacun de ces graveurs est chargé de générer une composante
+particulière du fichier de sortie, qui les barres de mesure, qui la
+portée, qui les têtes de note, les hampes, etc.  Le fait de supprimer un
+graveur d'un contexte éliminera sa contribution au fichier de sortie.
+Bien que ce soit là un moyen radical de modifier le résultat, cette
+pratique est dans quelques cas fort utile.
+
+@subsubheading Modification d'un seul contexte
+@translationof Changing a single context
+
+Nous utilisons, pour supprimer un graveur d'un contexte, la commande
+@code{\with} dès la création dudit contexte, comme nous l'avons vu dans
+la section précédente.
+
+Illustrons notre propos en reprenant un exemple du chapitre précédent,
+duquel nous supprimerons les lignes de la portée.  Pour mémoire, les
+lignes d'une portée sont générées par le @code{Staff_symbol_engraver}.
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff \with {
+  \remove Staff_symbol_engraver
+}
+\relative c' {
+  c4 d
+  \set fontSize = #-4  % make note heads smaller
+  e4 f |
+  \set fontSize = #2.5  % make note heads larger
+  g4 a
+  \unset fontSize  % return to default size
+  b4 c |
+}
+@end lilypond
+
+@cindex ambitus, graveur
+
+Vous pouvez aussi ajouter individuellement un graveur à un contexte. La
+commande se formule ainsi@tie{}:
+
+@code{\consists @var{Nom_du_graveur}}
+
+@noindent
+et se place dans un bloc @code{\with}.  Certaines partitions vocales
+font apparaître un @rglos{ambitus} au début de la portée, afin
+d'indiquer ses notes extrêmes.  L'ambitus est généré par
+l'@code{Ambitus_engraver}, que l'on peut adjoindre à n'importe quel
+contexte.  Si nous l'ajoutons au contexte @code{Voice}, seule la
+tessiture de cette voix sera calculée@tie{}:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff <<
+  \new Voice \with {
+    \consists Ambitus_engraver
+  } {
+    \relative c'' {
+      \voiceOne
+      c4 a b g
+    }
+  }
+  \new Voice {
+    \relative c' {
+      \voiceTwo
+      c4 e d f
+    }
+  }
+>>
+@end lilypond
+
+@noindent
+alors que si nous l'ajoutons au contexte @code{Staff},
+l'@code{Ambitus_engraver} calculera l'écart maximal à partir de toutes
+les notes de toutes les voix de la portée@tie{}:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff \with {
+  \consists Ambitus_engraver
+}
+<<
+  \new Voice {
+    \relative c'' {
+      \voiceOne
+      c4 a b g
+    }
+  }
+  \new Voice {
+    \relative c' {
+      \voiceTwo
+      c4 e d f
+    }
+  }
+>>
+@end lilypond
+
+@subsubheading Modification de tous les contextes d'un même type
+@translationof Changing all contexts of the same type
+
+@funindex \layout
+@funindex layout
+
+Les exemples ci-dessus nous ont montré comment ajouter ou retirer des
+graveurs à des contextes individuels.  Nous pourrions aussi ajouter ou
+supprimer des graveurs à tous les contextes d'un même type en insérant
+les commandes pour le contexte approprié au sein d'un bloc
+@code{\layout}.  Si nous voulions afficher un ambitus pour chacune des
+portées d'un système à quatre portées, il nous suffirait d'écrire@tie{}:
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+  <<
+    \new Staff {
+      \relative c'' {
+        c4 a b g
+      }
+    }
+    \new Staff {
+      \relative c' {
+        c4 a b g
+      }
+    }
+    \new Staff {
+      \clef "G_8"
+      \relative c' {
+        c4 a b g
+      }
+    }
+    \new Staff {
+      \clef "bass"
+      \relative c {
+        c4 a b g
+      }
+    }
+  >>
+  \layout {
+    \context {
+      \Staff
+      \consists Ambitus_engraver
+    }
+  }
+}
+@end lilypond
+
+@noindent
+Vous réglerez de la même manière les propriétés de tous les contextes
+d'un type particulier si vous insérez les commandes @code{\set} dans un
+bloc @code{\context}.
+
+@seealso
+Manuel de notation :
+@ruser{Modification des greffons de contexte},
+@ruser{Modification des réglages par défaut d'un contexte}.
+
+@knownissues
+Dans la mesure où les @code{Stem_engraver} et @code{Beam_engraver}
+rattachent à des têtes de note les objets qu'ils créent, désactiver le
+@code{Note_heads_engraver} entraîne l'absence de hampe et de ligature.
+
+
+@node Extension des modèles
+@section Extension des modèles
+@translationof Extending the templates
+
+Bon, vous avez lu le tutoriel, vous savez écrire de la musique.  Mais
+comment obtenir les portées que vous voulez@tie{}?  Les @ref{Modèles},
+c'est bien beau, mais que faire quand ils ne traitent pas ce que l'on
+veut précisément@tie{}?
+
+Les exemples qui suivent vous donneront des méthodes générales pour
+adapter des modèles.
+
+@menu
+* Soprano et violoncelle::
+* Partition pour chœur à quatre voix mixtes::
+* Écriture d'une partition à partir de zéro::
+* Économie de saisie grâce aux identificateurs et fonctions::
+* Conducteurs et parties::
+@end menu
+
+@node Soprano et violoncelle
+@subsection Soprano et violoncelle
+@translationof Soprano and cello
+
+@cindex modèles, modification des
+
+Commencez par le modèle qui vous semblera le plus proche de ce à quoi
+vous voulez aboutir.  Disons par exemple que vous voulez écrire une pièce
+pour soprano et violoncelle@tie{}: dans ce cas, on pourrait commencer
+par les @qq{notes et paroles}, pour la partie de soprano.
+
+@example
+\version @w{"@version{}"}
+
+melodie = \relative c' @{
+  \clef "treble"
+  \key c \major
+  \time 4/4
+  a4 b c d
+@}
+
+texte = \lyricmode @{
+  Aaa Bee Cee Dee
+@}
+
+\score@{
+  <<
+    \new Voice = "un" @{
+      \autoBeamOff
+      \melodie
+    @}
+    \new Lyrics \lyricsto "un" \texte
+  >>
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+Maintenant, on veut ajouter une partie de violoncelle.
+Jetons un coup d'œil sur l'exemple avec les notes seules@tie{}:
+
+@example
+\version @w{"@version{}"}
+
+melodie = \relative c' @{
+  \clef "treble"
+  \key c \major
+  \time 4/4
+  a4 b c d
+@}
+
+\score @{
+  \new Staff \melodie
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+On n'a pas besoin de deux commandes @code{\version}.  Ce dont on a
+besoin, c'est de la section @code{melodie}. De même, on n'a pas besoin
+de deux sections @code{\score} -- si nous les gardions toutes les deux,
+on obtiendrait deux parties séparées@tie{}; mais nous voulons un vrai
+duo, avec les deux parties ensemble.  Dans la section @code{\score}, on
+n'a pas besoin non plus de deux @code{\layout} ni de deux @code{\midi}.
+
+Si on se contente de couper et coller les sections @code{melodie}, on se
+retrouvera avec deux sections de ce nom@tie{}; il nous faut donc les
+renommer.  Appelons la section pour la soprano @code{sopranoMusique} et
+celle pour le violoncelle @code{violoncelleMusique}.  Tant qu'on y est,
+renommons @code{texte} en @code{sopranoParoles}.  Attention à bien
+renommer les deux occurrences de chacune de ces dénominations@tie{}:
+c'est-à-dire la définition de départ, où l'on trouve @w{@code{melodie =
+\relative c' @{ }}, et l'endroit où cette dénomination est utilisée,
+dans la section @code{\score}.
+
+Et puis, toujours tant qu'on y est, mettons le violoncelle en clé de fa,
+comme le veut l'usage, et donnons-lui d'autres notes.
+
+@example
+\version @w{"@version{}"}
+
+sopranoMusique = \relative c' @{
+  \clef "treble"
+  \key c \major
+  \time 4/4
+  a4 b c d
+@}
+
+sopranoParoles = \lyricmode @{
+  Laaa Siii Dooo Rééé
+@}
+
+violoncelleMusique = \relative c @{
+  \clef "bass"
+  \key c \major
+  \time 4/4
+  d4 g fis8 e d4
+@}
+
+\score@{
+  <<
+    \new Voice = "un" @{
+      \autoBeamOff
+      \sopranoMusique
+    @}
+    \new Lyrics \lyricsto "un" \sopranoParoles
+  >>
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+Voilà qui est mieux, mais la partie de violoncelle n'apparaît pas sur
+la partition -- en effet, nous n'y avons pas fait appel dans la section
+@code{\score}.  Si l'on veut que la partie de violoncelle s'imprime sous
+la partie de soprano, on va devoir ajouter@tie{}:
+
+@example
+\new Staff \musiqueVioloncelle
+@end example
+
+@noindent
+en dessous de tout ce qui concerne la soprano.  Il nous faut également
+encadrer la musique par des @code{<<} et @code{>>}, qui feront comprendre
+à LilyPond que plusieurs événements -- ici, des objets @code{Staff} --
+se déroulent en même temps.  Le bloc @code{\score} ressemble maintenant à
+
+@c Indentation in this example is deliberately poor
+@example
+\score @{
+  <<
+  <<
+    \new Voice = "un" @{
+      \autoBeamOff
+      \sopranoMusique
+    @}
+    \new Lyrics \lyricsto "un" \sopranoParoles
+  >>
+  \new Staff \violoncelleMusique
+  >>
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+@noindent
+C'est un peu le bazar dans tout ça@tie{}; mais il vous sera facile de
+mettre un peu d'ordre dans l'indentation.  Voici le modèle pour
+soprano et violoncelle au complet@tie{}:
+
+@lilypond[quote,verbatim,ragged-right,addversion]
+sopranoMusic = \relative c' {
+  \clef "treble"
+  \key c \major
+  \time 4/4
+  a4 b c d
+}
+
+sopranoLyrics = \lyricmode {
+  Aaa Bee Cee Dee
+}
+
+celloMusic = \relative c {
+  \clef "bass"
+  \key c \major
+  \time 4/4
+  d4 g fis8 e d4
+}
+
+\score {
+  <<
+    <<
+      \new Voice = "one" {
+        \autoBeamOff
+        \sopranoMusic
+      }
+      \new Lyrics \lyricsto "one" \sopranoLyrics
+    >>
+    \new Staff \celloMusic
+  >>
+  \layout { }
+  \midi { }
+}
+@end lilypond
+
+
+@seealso
+Les patrons originaux sont disponibles à l'annexe @qq{Modèles}, voir
+@ref{Portée unique}.
+
+
+@node Partition pour chœur à quatre voix mixtes
+@subsection Partition pour chœur à quatre voix mixtes
+@translationof Four-part SATB vocal score
+
+@cindex exemple, SATB
+@cindex SATB, squelette
+
+La plupart des œuvres écrites pour chœur à quatre voix mixtes et
+orchestre, comme Elias de Mendelssohn ou le Messie de Haendel, disposent
+la musique et les paroles du chœur sur quatre portées -- soprano, alto,
+ténor et basse -- surmontant une réduction pour piano de
+l'accompagnement orchestral.  En voici un exemple, tiré du Messie de
+Haendel@tie{}:
+
+@c The following should appear as music without code
+@lilypond[quote,ragged-right]
+global = { \key d \major \time 4/4 }
+
+sopranoMusic = \relative c'' {
+  \clef "treble"
+  r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
+}
+sopranoWords = \lyricmode {
+  Wor -- thy | is the lamb | that was slain |
+}
+
+altoMusic = \relative a' {
+  \clef "treble"
+  r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 |
+}
+altoWords = \sopranoWords
+
+tenorMusic = \relative c' {
+  \clef "G_8"
+  r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
+}
+tenorWords = \sopranoWords
+
+bassMusic = \relative c' {
+  \clef "bass"
+  r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
+}
+bassWords = \sopranoWords
+
+upper = \relative a' {
+  \clef "treble"
+  \global
+  r4 <a d fis>2 <a e' a>4 |
+  <d fis d'>4. <d fis d'>8 <a d a'>2 |
+  <g cis g'>4 <a d fis> <a cis e>2 |
+}
+
+lower = \relative c, {
+  \clef "bass"
+  \global
+  <d d'>4 <d d'>2 <cis cis'>4 |
+  <b b'>4. <b' b'>8 <fis fis'>2 |
+  <e e'>4 <d d'> <a' a'>2 |
+}
+
+\score {
+  <<  % combine ChoirStaff and PianoStaff in parallel
+    \new ChoirStaff <<
+      \new Staff = "sopranos" <<
+        \set Staff.instrumentName = #"Soprano"
+        \new Voice = "sopranos" {
+          \global
+          \sopranoMusic
+        }
+      >>
+      \new Lyrics \lyricsto "sopranos" {
+        \sopranoWords
+      }
+      \new Staff = "altos" <<
+        \set Staff.instrumentName = #"Alto"
+        \new Voice = "altos" {
+          \global
+          \altoMusic
+        }
+      >>
+      \new Lyrics \lyricsto "altos" { \altoWords }
+      \new Staff = "tenors" <<
+        \set Staff.instrumentName = #"Tenor"
+        \new Voice = "tenors" {
+          \global
+          \tenorMusic
+        }
+      >>
+      \new Lyrics \lyricsto "tenors" { \tenorWords }
+      \new Staff = "basses" <<
+        \set Staff.instrumentName = #"Bass"
+        \new Voice = "basses" {
+          \global
+          \bassMusic
+        }
+      >>
+      \new Lyrics \lyricsto "basses" {
+        \bassWords
+      }
+    >>  % end ChoirStaff
+    \new PianoStaff <<
+      \set PianoStaff.instrumentName = #"Piano"
+      \new Staff = "upper" \upper
+      \new Staff = "lower" \lower
+    >>
+  >>
+}
+@end lilypond
+
+Aucun des modèles ne permet d'arriver exactement à cette mise en forme.
+Celui qui s'en rapprocherait le plus est @qq{SATB vocal score and
+automatic piano reduction} -- voir @ref{Ensemble vocal} -- mais encore
+faudrait-il en modifier la mise en forme et refaire la partie de
+piano qui n'est plus une simple reprise des parties vocales.  Les
+variables qui gèrent la musique et les paroles du chœur ne nécessitent
+pas de modification, mais il nous faut d'autres variables pour la
+réduction de piano.
+
+L'ordre dans lequel apparaissent les contextes dans le @code{ChoirStaff}
+du modèle ne correspond pas à ce que nous voyons ci-dessus.  Il nous
+faudra y revenir pour obtenir quatre portées avec des paroles en dessous
+de chacune d'elles.  Toutes les voix devraient être @code{\voiceOne},
+ce qui est la position par défaut@tie{}; il nous faudra donc éliminer
+toutes les commandes @code{\voiceXXX}.  Les ténors auront besoin d'une
+clé spécifique.  Enfin, nous n'avons pas encore abordé la façon dont les
+paroles sont présentées dans le modèle@tie{}; nous procèderons donc
+comme nous en avons l'habitude.  Il faudra aussi ajouter un nom à chaque
+portée.
+
+Une fois tout ceci accompli, voici notre @code{ChoirStaff}@tie{}:
+
+@example
+\new ChoirStaff <<
+  \new Staff = "sopranos" <<
+    \set Staff.instrumentName = #"Soprano"
+    \new Voice = "sopranos" @{
+      \global
+      \sopranoMusique
+    @}
+  >>
+  \new Lyrics \lyricsto "sopranos" @{
+    \sopranoParoles
+  @}
+  \new Staff = "altos" <<
+    \set Staff.instrumentName = #"Alto"
+    \new Voice = "altos" @{
+      \global
+      \altoMusique
+    @}
+  >>
+  \new Lyrics \lyricsto "altos" @{
+    \altoParoles
+  @}
+  \new Staff = "tenors" <<
+    \set Staff.instrumentName = #"Tenor"
+    \new Voice = "tenors" @{
+      \global
+      \tenorMusique
+    @}
+  >>
+  \new Lyrics \lyricsto "tenors" @{
+    \tenorParoles
+  @}
+  \new Staff = "basses" <<
+    \set Staff.instrumentName = #"Bass"
+    \new Voice = "basses" @{
+      \global
+      \bassMusique
+    @}
+  >>
+  \new Lyrics \lyricsto "basses" @{
+    \bassParoles
+  @}
+>>  % fin du ChoirStaff
+@end example
+
+Il nous faut maintenant nous occuper de la partie de piano.  Nous allons
+nous contenter de récupérer la partie de piano du modèle
+@qq{Solo piano}@tie{}:
+
+@example
+\new PianoStaff <<
+  \set PianoStaff.instrumentName = #"Piano  "
+  \new Staff = "upper" \superieur
+  \new Staff = "lower" \inferieur
+>>
+@end example
+
+puis d'ajouter les définitions de variable pour @code{superieur} et
+@code{inferieur}.
+
+Les systèmes pour chœur et pour piano doivent être combinés à l'aide de
+doubles chevrons gauche/droite puisqu'ils doivent s'empiler@tie{}:
+
+@example
+<<  % combine ChoirStaff et PianoStaff l'un au-dessus de l'autre
+  \new ChoirStaff <<
+    \new Staff = "sopranos" <<
+      \new Voice = "sopranos" @{
+        \global
+        \sopranoMusique
+      @}
+    >>
+    \new Lyrics \lyricsto "sopranos" @{
+      \sopranoParoles
+     @}
+    \new Staff = "altos" <<
+      \new Voice = "altos" @{
+        \global
+        \altoMusique
+      @}
+    >>
+    \new Lyrics \lyricsto "altos" @{
+      \altoParoles
+    @}
+    \new Staff = "tenors" <<
+      \clef "G_8"  % tenor clef
+      \new Voice = "tenors" @{
+        \global
+        \tenorMusique
+      @}
+    >>
+    \new Lyrics \lyricsto "tenors" @{
+      \tenorParoles
+    @}
+    \new Staff = "basses" <<
+      \clef "bass"
+      \new Voice = "basses" @{
+        \global
+        \bassMusique
+      @}
+    >>
+    \new Lyrics \lyricsto "basses" @{
+      \bassParoles
+    @}
+  >>  % fin du ChoirStaff
+
+  \new PianoStaff <<
+    \set PianoStaff.instrumentName = #"Piano"
+    \new Staff = "upper" \superieur
+    \new Staff = "lower" \inferieur
+  >>
+>>
+@end example
+
+Une fois tout cela mis en place, et après avoir ajouté les notes et les
+paroles de ces trois mesures du Messie, nous obtenons@tie{}:
+
+@lilypond[quote,verbatim,ragged-right,addversion]
+global = { \key d \major \time 4/4 }
+sopranoMusic = \relative c'' {
+  \clef "treble"
+  r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
+}
+sopranoWords = \lyricmode {
+  Wor -- thy | is the lamb | that was slain |
+}
+altoMusic = \relative a' {
+  \clef "treble"
+  r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
+}
+altoWords = \sopranoWords
+tenorMusic = \relative c' {
+  \clef "G_8"
+  r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
+}
+tenorWords = \sopranoWords
+bassMusic = \relative c' {
+  \clef "bass"
+  r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
+}
+bassWords = \sopranoWords
+upper = \relative a' {
+  \clef "treble"
+  \global
+  r4 <a d fis>2 <a e' a>4 |
+  <d fis d'>4. <d fis d'>8 <a d a'>2 |
+  <g cis g'>4 <a d fis> <a cis e>2 |
+}
+lower = \relative c, {
+  \clef "bass"
+  \global
+  <d d'>4 <d d'>2 <cis cis'>4 |
+  <b b'>4. <b' b'>8 <fis fis'>2 |
+  <e e'>4 <d d'> <a' a'>2 |
+}
+
+\score {
+  <<  % combine ChoirStaff and PianoStaff in parallel
+    \new ChoirStaff <<
+      \new Staff = "sopranos" <<
+        \set Staff.instrumentName = #"Soprano"
+        \new Voice = "sopranos" {
+          \global
+          \sopranoMusic
+        }
+      >>
+      \new Lyrics \lyricsto "sopranos" {
+        \sopranoWords
+      }
+      \new Staff = "altos" <<
+        \set Staff.instrumentName = #"Alto"
+        \new Voice = "altos" {
+          \global
+          \altoMusic
+        }
+      >>
+      \new Lyrics \lyricsto "altos" {
+        \altoWords
+      }
+      \new Staff = "tenors" <<
+        \set Staff.instrumentName = #"Tenor"
+        \new Voice = "tenors" {
+          \global
+          \tenorMusic
+        }
+      >>
+      \new Lyrics \lyricsto "tenors" {
+        \tenorWords
+      }
+      \new Staff = "basses" <<
+        \set Staff.instrumentName = #"Bass"
+        \new Voice = "basses" {
+          \global
+          \bassMusic
+        }
+      >>
+      \new Lyrics \lyricsto "basses" {
+        \bassWords
+      }
+    >>  % end ChoirStaff
+
+    \new PianoStaff <<
+      \set PianoStaff.instrumentName = #"Piano  "
+      \new Staff = "upper" \upper
+      \new Staff = "lower" \lower
+    >>
+  >>
+}
+@end lilypond
+
+
+@node Écriture d'une partition à partir de zéro
+@subsection Écriture d'une partition à partir de zéro
+@translationof Building a score from scratch
+
+@cindex modèles, création
+@cindex squelettes, création
+
+Après avoir acquis une certaine dextérité dans l'écriture de code
+LilyPond, vous devez vous sentir suffisament prêt à vous lancer dans
+la création d'une partition à partir de zéro, autrement dit en ne
+partant pas d'un exemple.  Vous pourrez ainsi vous construire vos
+propres patrons selon le type de musique que vous affectionnez plus
+particulièrement.  Pour voir comment procéder, nous allons monter la
+partition d'un prélude pour orgue.
+
+Nous débutons par une section d'en-tête@tie{}; nous y mettrons entre
+autres le titre et le nom du compositeur.  Puis viennent toutes les
+définitions de toutes les variables.  Nous terminons par le bloc
+@code{\score}.  Attelons-nous pour cette aventure, en gardant bien à
+l'esprit ce que nous venons de dire@tie{}; nous nous occuperons des
+détails en temps voulu.
+
+Nous nous appuyons sur les deux premières mesures du prélude sur
+@emph{Jesu, meine Freude}, écrit pour orgue avec pédalier.  Vous pouvez
+voir ces deux mesures au bas de cette page.  La main droite comporte
+deux voix, la main gauche et le pédalier une seule.  Il nous faut donc
+quatre définitions de musique, plus une qui contiendra la métrique et
+l'armure@tie{}:
+
+@example
+\version @w{"@version{}"}
+\header @{
+  title = "Jesu, meine Freude"
+  composer = "J S Bach"
+@}
+ArmureMetrique = @{ \key c \minor \time 4/4 @}
+ManuelUnVoixUnMusique = @{ s1 @}
+ManuelUnVoixDeuxMusique = @{ s1 @}
+ManuelDeuxMusique = @{ s1 @}
+PedalierOrgueMusique = @{ s1 @}
+
+\score @{
+@}
+@end example
+
+Pour l'instant, nous utilisons des silences invisibles, @code{s1}, en
+lieu et place des notes réelles.  On verra plus tard.
+
+Passons maintenant au bloc @code{\score} et à ce qu'il devrait contenir.
+Nous y recopions simplement la structure des portées que nous voulons.
+La musique pour orgue se présente généralement sous la forme de trois
+portées, une pour chaque main et une pour le pédalier.  Les portées du
+manuel sont regroupées, nous utiliserons donc un @code{PianoStaff}.  La
+première partie du manuel requiert deux voix et la seconde une seule.
+
+@example
+\new PianoStaff <<
+  \new Staff = "ManuelUn" <<
+    \new Voice @{
+      \ManuelUnVoixUnMusique 
+    @}
+    \new Voice @{
+      \ManuelUnVoixDeuxMusique
+    @}
+  >>  % fin du contexte de portée ManuelUn
+  \new Staff = "ManuelDeux" <<
+    \new Voice @{
+      \ManuelDeuxMusique
+    @}
+  >>  % fin du contexte de portée ManuelDeux
+>>  % fin du contexte PianoStaff
+@end example
+
+Il nous faut ajouter à cela une portée pour le pédalier.  Elle se place
+sous le système de piano, mais puisqu'elle doit rester synchrone avec
+lui, nous utilisons des doubles chevrons pour les regrouper.
+Négliger ceci nous renverrait une erreur, et personne n'est à l'abri de
+cette faute@tie{}! Pour preuve, il vous suffit de copier l'exemple
+complet en fin de chapitre, de supprimer ces @code{<<} et @code{>>}, et
+de le compiler, pour voir de quoi il retourne.
+
+@example
+<<  % Système pianistique et portée de pédalier sont synchrones
+  \new PianoStaff <<
+    \new Staff = "ManuelUn" <<
+      \new Voice @{
+        \ManuelUnVoixUnMusique
+      @}
+      \new Voice @{
+        \ManuelUnVoixDeuxMusique
+      @}
+    >>  % fin du contexte de portée ManuelUn
+    \new Staff = "ManualDeux" <<
+      \new Voice @{
+        \ManuelDeuxMusique
+      @}
+    >>  % fin du contexte de portée ManuelDeux
+  >>  % fin du contexte PianoStaff
+  \new Staff = "PedalierOrgue" <<
+    \new Voice @{
+      \PedalierOrgueMusique
+     @}
+  >>
+>>
+@end example
+
+La construction en simultané -- @code{<<...>>} -- n'est pas strictement
+obligatoire pour les portées manuel deux et pédalier, qui ne contiennent
+chacune qu'une seule expression musicale@tie{}; mais cela ne mange pas
+de pain, et c'est une bonne habitude que de toujours encadrer par des
+doubles chevrons gauche/droite ce qui suit une commande @code{\new
+Staff} au cas où il y aurait plusieurs voix.  Il en va autrement pour
+les contextes @code{Voice}@tie{}: ils doivent être toujours suivis
+d'accolades --  @code{@{...@}} --  au cas où vous auriez employé
+plusieurs variables qui doivent intervenir consécutivement.
+
+Ajoutons donc cette structure au bloc @code{\score}, tout en fignolant
+l'indentation.  Nous en profitons pour ajouter les clés appropriées,
+effectuer les réglages concernant les hampes et liaisons de la portée
+supérieure grâce à @code{\voiceOne} et @code{\voiceTwo}, et mettre en
+place la métrique et l'armure de chaque portée grâce à notre variable
+@code{\MetriqueArmure}.
+
+@example
+\score @{
+  <<  % Système pianistique et portée de pédalier sont synchrones
+    \new PianoStaff <<
+      \new Staff = "ManuelUn" <<
+        \ArmureMetrique % définition de l'armure et de la métrique
+        \clef "treble"
+        \new Voice @{
+          \voiceOne
+          \ManuelUnVoixUnMusique
+        @}
+        \new Voice @{
+          \voiceTwo
+          \ManuelUnVoixDeuxMusique
+        @}
+      >>  % fin du contexte de la portée ManuelUn
+      \new Staff = "ManuelDeux" <<
+        \ArmureMetrique
+        \clef "bass"
+        \new Voice @{
+          \ManuelDeuxMusique
+        @}
+      >>  % fin du contexte de la portée ManuelDeux
+    >>  % fin du contexte PianoStaff
+    \new Staff = "PedalierOrgue" <<
+      \ArmureMetrique
+      \clef "bass"
+      \new Voice @{
+        \PedalierOrgueMusique
+      @}
+    >>  % fin du contexte de la portée PedalOrgan
+  >>
+@}  % fin du contexte Score
+@end example
+
+@cindex espacement des portées
+@cindex portées, espacement
+
+Cette partition pour orgue est préesque parfaite.  Rest juste ce petit
+défaut qui ne se remarque pas lorsque l'on considère un seul
+système@tie{}: la distance qui sépare la portée de pédalier de celle de
+la main gauche devrait être plus ou moins égale à celle qui sépare les
+deux mains.  En fait, la distance entre les deux portées d'un
+@code{PianoStaff} ne saurait trop se dilater@tie{}; le pédalier devrait
+adopter le même comportement.
+
+@cindex sous-propriétés
+@cindex propriétéset sous-propriétés
+@cindex graphical objects
+@cindex objets graphiques
+@cindex grobs
+
+La propension des portées à se dilater se contrôle à l'aide de la
+propriété @code{staff-staff-spacing}, attachée à @qq{l'objet graphique}
+@code{VerticalAxisGroup} -- la documentation de LilyPond utilise souvent
+l'abréviation @emph{grob} pour @emph{graphical object}.  Pas de
+panique@tie{}! Tout ceci sera expliqué plus tard -- pour les curieux,
+jetez un œil au chapitre
+@ruser{Vue d'ensemble de la modification des propriétés}.
+Revenons à notre propos@tie{}: nous voulons modifier uniquement la
+sous-propriété @code{stretchability}.  Les impatients trouveront les
+valeurs par défaut de la propriété @code{staff-staff-spacing} dans le
+fichier @file{scm/define-grobs.scm}, en examinant la définition du
+@emph{grob} @code{VerticalAxisGroup}.  La valeur que nous affecterons à
+@code{stretchability} est celle que contient la définition du contexte 
+@code{PianoStaff} telle qu'elle apparaît dans le fichier
+@file{ly/engraver-init.ly}).
+
+@example
+\score @{
+  <<  % Système pianistique et portée de pédalier sont synchrones
+    \new PianoStaff <<
+      \new Staff = "ManuelUn" <<
+        \ArmureMetrique % définition de l'armure et de la métrique
+        \clef "treble"
+        \new Voice @{
+          \voiceOne
+          \ManuelUnVoixUnMusique
+        @}
+        \new Voice @{
+          \voiceTwo
+          \ManuelUnVoixDeuxMusique
+        @}
+      >>  % fin du contexte de la portée ManuelUn
+      \new Staff = "ManuelDeux" \with @{
+        \override VerticalAxisGroup
+          #'staff-staff-spacing  #'stretchability = 5
+      @} <<
+        \ArmureMetrique
+        \clef "bass"
+        \new Voice @{
+          \ManuelDeuxMusique
+        @}
+      >>  % fin du contexte de la portée ManuelDeux
+    >>  % fin du contexte PianoStaff
+    \new Staff = "PedalierOrgue" <<
+      \ArmureMetrique
+      \clef "bass"
+      \new Voice @{
+        \PedalierOrgueMusique
+      @}
+    >>  % fin du contexte de la portée PedalOrgan
+  >>
+@}  % fin du contexte Score
+@end example
+
+Nous en avons fini avec la structure.  Toutes les partitions pour orgue
+auront cette structure, même si le nombre de voix peut changer.  Tout ce
+qui nous reste à faire maintenant consiste à saisir la musique et à
+regrouper toutes les parties.
+
+@lilypond[quote,verbatim,ragged-right,addversion]
+\header {
+  title = "Jesu, meine Freude"
+  composer = "J S Bach"
+}
+keyTime = { \key c \minor \time 4/4 }
+ManualOneVoiceOneMusic = \relative g' {
+  g4 g f ees |
+  d2 c |
+}
+ManualOneVoiceTwoMusic = \relative c' {
+  ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
+  c8 c4 b8 c8. g16 c b c d |
+}
+ManualTwoMusic = \relative c' {
+  c16 b c8~ c16 b c g a8 g~ g16 g aes ees |
+  f16 ees f d g aes g f ees d e8~ ees16 f ees d |
+}
+PedalOrganMusic = \relative c {
+  r8 c16 d ees d ees8~ ees16 a, b g c b c8 |
+  r16 g ees f g f g8 c,2 |
+}
+
+\score {
+  <<  % PianoStaff and Pedal Staff must be simultaneous
+    \new PianoStaff <<
+      \new Staff = "ManualOne" <<
+        \keyTime  % set key and time signature
+        \clef "treble"
+        \new Voice {
+          \voiceOne
+          \ManualOneVoiceOneMusic
+        }
+        \new Voice {
+          \voiceTwo
+          \ManualOneVoiceTwoMusic
+        }
+      >>  % end ManualOne Staff context
+      \new Staff = "ManualTwo" \with {
+        \override VerticalAxisGroup
+          #'staff-staff-spacing #'stretchability = 5
+      } <<
+        \keyTime
+        \clef "bass"
+        \new Voice {
+          \ManualTwoMusic
+        }
+      >>  % end ManualTwo Staff context
+    >>  % end PianoStaff context
+    \new Staff = "PedalOrgan" <<
+      \keyTime
+      \clef "bass"
+      \new Voice {
+        \PedalOrganMusic
+      }
+    >>  % end PedalOrgan Staff context
+  >>
+}  % end Score context
+@end lilypond
+
+@seealso
+Glossaire musicologique :
+@rglosnamed{system,système}.
+
+
+@node Économie de saisie grâce aux identificateurs et fonctions
+@subsection Économie de saisie grâce aux identificateurs et fonctions
+@translationof Saving typing with variables and functions
+
+@cindex variables
+@cindex identificateurs
+
+Jusqu'à maintenant, vous avez vu ce type de code@tie{}:
+
+@lilypond[quote,verbatim,ragged-right]
+hornNotes = \relative c'' { c4 b dis c }
+\score {
+  {
+    \hornNotes
+  }
+}
+@end lilypond
+
+Vous comprendrez combien cela peut être utile pour écrire de la
+musique minimaliste@tie{}:
+
+@lilypond[quote,verbatim,ragged-right]
+fragmentA = \relative c'' { a4 a8. b16 }
+fragmentB = \relative c'' { a8. gis16 ees4 }
+
+violin = \new Staff { \fragmentA \fragmentA \fragmentB \fragmentA }
+
+\score {
+  {
+    \violin
+  }
+}
+@end lilypond
+
+Néanmoins vous pouvez aussi utiliser ces identificateurs
+-- aussi connus sous le nom de variables, macros, ou commandes
+(définies par l'utilisateur) -- pour des retouches@tie{}:
+
+@c TODO Avoid padtext - not needed with skylining
+@lilypond[quote,verbatim,ragged-right]
+dolce = \markup { \italic \bold dolce }
+
+padText = { \once \override TextScript #'padding = #5.0 }
+fthenp =_\markup {
+  \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
+}
+
+violin = \relative c'' {
+  \repeat volta 2 {
+    c4._\dolce b8 a8 g a b |
+    \padText
+    c4.^"hi there!" d8 e' f g d |
+    c,4.\fthenp b8 c4 c-. |
+  }
+}
+
+\score {
+  {
+    \violin
+  }
+  \layout { ragged-right = ##t }
+}
+@end lilypond
+
+Ces identificateurs sont évidemment utiles pour économiser de la
+frappe.  Mais ils peuvent l'être même si vous ne les utilisez qu'une
+seule fois@tie{}: ils réduisent la complexité.  Regardons l'exemple
+précédent sans aucun identificateur.  C'est beaucoup plus laborieux à
+lire, et particulièrement la dernière ligne.
+
+@example
+violin = \relative c'' @{
+  \repeat volta 2 @{
+    c4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
+    \once \override TextScript #'padding = #5.0
+    c4.^"hi there!" d8 e' f g d |
+    c,4.\markup @{
+      \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
+    @}
+    b8 c4 c-. |
+  @}
+@}
+@end example
+
+@c TODO Replace the following with a better example  -td
+@c Skylining handles this correctly without padText
+
+Jusqu'ici nous avons vu des substitutions statiques@tie{}: quand
+LilyPond rencontre @code{\padText}, il le remplace par le contenu que
+nous lui avons défini -- c'est-à-dire le contenu à droite de
+@code{padText=}.
+
+LilyPond gère également des substitutions non-statiques -- vous
+pouvez les voir comme des fonctions.
+
+@lilypond[quote,verbatim,ragged-right]
+padText =
+#(define-music-function
+     (parser location padding)
+     (number?)
+   #{
+     \once \override TextScript #'padding = $padding
+   #})
+
+\relative c''' {
+  c4^"piu mosso" b a b |
+  \padText #1.8
+  c4^"piu mosso" d e f |
+  \padText #2.6
+  c4^"piu mosso" fis a g |
+}
+@end lilypond
+
+Utiliser des identificateurs est aussi un bon moyen pour vous épargner
+du travail si la syntaxe de LilyPond change un jour -- voir
+@rprogram{Mise à jour avec convert-ly}.  Si vous avez une seule
+définition, par exemple @code{\dolce}, pour tous vos fichiers (voir
+@ref{Feuilles de style}) et que la syntaxe change, alors vous n'aurez
+qu'à mettre à jour votre seule définition @code{\dolce}, au lieu de
+devoir modifier chaque fichier @file{.ly}.
+
+
+@node Conducteurs et parties
+@subsection Conducteurs et parties
+@translationof Scores and parts
+
+Dans la musique d'orchestre, toutes les notes sont imprimées deux fois.
+D'abord dans les parties séparées destinées aux musiciens, et ensuite
+dans le conducteur destiné au chef.  Les variables sont là pour vous
+éviter un double travail.  La musique n'est entrée qu'une seule fois, et
+stockée dans une variable, dont le contenu servira à imprimer à la fois
+la partie séparée et la partition d'orchestre.
+
+Il est judicieux de définir les notes dans un fichier séparé. Par
+exemple, supposons que le fichier @file{musique-Cor.ly} contienne la
+partie suivante pour un duo cor/@/basson.
+
+@example
+notesCor = \relative c @{
+  \time 2/4
+  r4 f8 a | cis4 f | e d |
+@}
+@end example
+
+@noindent
+On établira alors une partie séparée en constituant un nouveau
+fichier@tie{}:
+
+@example
+\include "musique-Cor.ly"
+
+\header @{
+  instrument = "Cor en Fa"
+@}
+
+@{
+ \transpose f c' \notesCor
+@}
+@end example
+
+À la ligne
+
+@example
+\include "musique-Cor.ly"
+@end example
+
+@noindent
+sera substitué le contenu du fichier @file{musique-Cor.ly}, et de ce
+fait la variable @code{notesCor} se trouvera définie.  La commande
+@code{\transpose@tie{}f@tie{}c'} indique que son argument
+@code{\notesCor} sera transposé à la quinte supérieure@tie{}: le son
+réel @code{f} s'écrit @code{c'}, ce qui est la caractéristique d'un Cor
+en fa.  La transposition est visible comme suit@tie{}:
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+  \time 2/4
+  r4 f8 a | cis4 f | e d |
+}
+@end lilypond
+
+Dans les pièces d'ensemble, il arrive souvent qu'une voix ne joue pas
+pendant plusieurs mesures.  Un silence spécial, appelé silence
+multimesures, l'indique alors.  On l'obtient par un @code{R} majuscule,
+suivi d'une durée@tie{}: @code{1}@tie{}pour une pause,
+@code{2}@tie{}pour une demi-pause, etc.  Cette durée peut être
+multipliée pour établir de plus longs silences.  Par exemple, le silence
+suivant dure 3@tie{}mesures à 2/4.
+
+@example
+R2*3
+@end example
+
+Dans une partie séparée, les silences multimesure sont compressés.
+Il faut pour cela définir la propriété @code{skipBars} à
+@qq{vrai}@tie{}:
+
+@example
+\set Score.skipBars = ##t
+@end example
+
+@noindent
+Cette commande assigne la valeur @qq{vrai} -- @emph{true} en anglais, et
+@code{#t} dans le langage Scheme -- à cette propriété dans le
+contexte @code{Score}.  Si l'on ajoute dans la musique ci-dessus le
+silence multimesure et cette option, on obtient le résultat suivant@tie{}:
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+  \time 2/4
+  \set Score.skipBars = ##t
+  R2*3 |
+  r4 f8 a | cis4 f | e d |
+}
+@end lilypond
+
+Le conducteur rassemble toute la musique. Si l'on suppose que l'autre
+voix de notre duo se trouve dans le fichier @file{musique-Basson.ly} en
+tant que variable @code{notesBasson}, on établira un conducteur avec
+
+@example
+\include "musique-Basson.ly"
+\include "musique-Cor.ly"
+
+<<
+  \new Staff \notesCor
+  \new Staff \notesBasson
+>>
+@end example
+
+@noindent
+ce qui équivaut à
+
+@lilypond[quote,ragged-right]
+\relative c <<
+  \new Staff {
+    \clef "treble"
+    \time 2/4
+    R2*3 |
+    r4 f8 a | cis4 f | e4 d |
+  }
+  \new Staff {
+    \clef "bass"
+    \time 2/4
+    r4 d,8 f | gis4 c | b4 bes |
+    a8 e f4 | g4 d | gis4 f |
+  }
+>>
+@end lilypond
+