@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond-learning.tely
@ignore
- Translation of GIT committish: dab80970d8e89571263d16433aff1e6f878a8f62
-
+ Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
@node Fundamental concepts
@chapter Fundamental concepts
-UNTRANSLATED NODE: IGNORE ME
-@menu
-* File structure (introduction)::
+@menu
* How LilyPond files work::
-* Score is a single musical expression::
-@end menu
-@node File structure (introduction)
-@section File structure (introduction)
-
-UNTRANSLATED NODE: IGNORE ME
+* Voices contain music::
+* Contexts and engravers::
+* Extending the templates::
+@end menu
@node How LilyPond files work
@section How LilyPond 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{File structure}.
+
+@menu
+* Introduction to the LilyPond file structure::
+* Score is a (single) compound musical expression::
+* Nesting music expressions::
+* On the un-nestedness of brackets and ties::
+@end menu
+
+@node Introduction to the LilyPond file structure
+@subsection Introduction to the LilyPond file structure
+
+@c FIXME this subsection translation is very outdated
+@c but wait until it is in a stable state in English
+
+La plupart des exemples de ce manuel sont de courts fragments, par exemple
+
+@example
+c4 a b c
+@end example
+
+Comme vous le savez maintenant (du moins nous l'espèrons), ceci ne
+peut pas être traité en tant que tel. Il s'agit de formes abrégées des
+exemples complets ; pour pouvoir être traitées, ces formeulations
+doivent au moins être encadrées par des accolades :
+
+@example
+@{
+ c4 a b c
+@}
+@end example
+
+La plupart des exemples font aussi intervenir la commande
+@code{\relative}, suivie de @code{c'} ou @code{c''}. Elle n'est pas à
+proprement parler nécessaire pour le traitement des exemples, mais
+dans la plupart des cas le résultat sera vraiment déplorable si vous
+l'oubliez.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+\relative c'' {
+ c4 a b c
+}
+@end lilypond
+
+C'est ici que nous passons aux choses sérieuses : le code LilyPond,
+sous cette forme, est en réalité un @emph{autre} raccourci. Même s'il
+est traité sans problème, et aboutit au bon résultat, c'est une forme
+abrégée de :
+
+@example
+\score @{
+ \relative c'' @{
+ c4 a b c
+ @}
+@}
+@end example
+
+Un bloc @code{\score} doit commencer par une et une seule expression
+musicale. Rappelez-vous que cette expression peut être ce que vous
+voulez, d'une note toute seule à un gigantesque
+
+@example
+@{
+ \new GrandStaff <<
+ collez ici la partition complète de votre opéra de Wagner préféré
+ >>
+@}
+@end example
+
+@noindent
+Dès lors que tout cela est entre accolades : @code{@{ ... @}}, c'est
+une et une seule expression musicale.
+
+Le bloc @code{\score} peut contenir d'autres éléments, tels que
+
+@example
+\score @{
+ @{ c'4 a b c' @}
+ \layout @{ @}
+ \midi @{ @}
+ \header @{ @}
+@}
+@end example
+
+@noindent
+Certains préfèrent mettre ces commandes en dehors du bloc
+@code{\score} --- par exemple, on met souvent le @code{\header}
+au-dessus. C'est juste là une autre forme abrégée que LilyPond
+accepte.
+
+@cindex variables
+@cindex identificateurs
+
+Un autre raccourci pratique est la possibilité de définir
+des variables --- également appelées @qq{identificateurs}. Dans tous
+les modèles, vous trouverez :
+
+@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 tiret, ni caractère accentué.} ; ce peut être
+@code{melodie}, @code{global}, @code{maindroitepiano}, ou
+@code{laTeteAToto}. Pour plus de détails, voir @ruser{Saving typing
+with identifiers and functions}.
+
+Pour une description complète du format des fichiers d'entrée, voir
+@ruser{File structure}.
+
+
+@node Score is a (single) compound musical expression
+@subsection Score is a (single) compound musical expression
+
+Dans la section précédente, 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 : comment diable peut-on savoir quoi mettre après
+@code{\score} ?
+
+En fait, nous ne l'avons pas éludée du tout : le grand mystère est
+tout simplement qu'il n'y a @emph{pas} de mystère. Allez,
+expliquons-le en une ligne :
+
+@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
+@ruser{Music expressions explained}, 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.
+
+@example
+\score @{
+ @{ % cette accolade marque le début de l'expression musicale
+ \new GrandStaff <<
+ insérez ici votre opéra de Wagner préféré
+ >>
+ @} % cette accolade marque la fin de l'expression musicale
+ \layout @{ @}
+@}
+@end example
+
+Un opéra de Wagner multiplierait facilement la longueur de ce manuel
+par deux ou trois, alors faisons-le en version chant/piano. On n'a
+plus besoin d'une partition d'orchestre --- @code{GrandStaff} --- donc
+laissons cela de côté. Par contre, un chanteur et un piano
+@emph{pourraient} nous être utiles.
+
+@example
+\score @{
+ @{
+ <<
+ \new Staff = "chanteur" <<
+ >>
+ \new PianoStaff = piano <<
+ >>
+ >>
+ @}
+ \layout @{ @}
+@}
+@end example
+
+Vous vous souvenez que nous avons recours à @code{<<} et @code{>>}
+pour mettre en place des musiques simultanées. Et, pour le
+coup, on aimerait @emph{vraiment} que la partie vocale et l'accompagnement
+soient imprimés ensemble...
+
+@example
+\score @{
+ @{
+ <<
+ \new Staff = "chanteur" <<
+ \new Voice = "chant" @{ @}
+ >>
+ \new Lyrics \lyricsto chant \new Lyrics @{ @}
+ \new PianoStaff = "piano" <<
+ \new Staff = "mainDroite" @{ @}
+ \new Staff = "mainGauche" @{ @}
+ >>
+ >>
+ @}
+ \layout @{ @}
+@}
+@end example
+
+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.
+
+Nous avons également une partie de piano, qui contient deux portées :
+une pour la main droite, une autre pour la main gauche.
+
+
+À ce point, on pourrait commencer à ajouter les notes. Dans les
+accolades qui suivent @code{\new Voice = chant}, on pourrait commencer
+à écrire
+
+@example
+\relative c'' @{
+ a4 b c d
+@}
+@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 :
+
+@example
+melodie = @{ @}
+texte = @{ @}
+mainDroite = @{ @}
+mainGauche = @{ @}
+\score @{
+ @{
+ <<
+ \new Staff = "chanteur" <<
+ \new Voice = "chant" @{ \melodie @}
+ >>
+ \new Lyrics \lyricsto chant \new Lyrics @{ \texte @}
+ \new PianoStaff = "piano" <<
+ \new Staff = "mainDroite" @{ \mainDroite @}
+ \new Staff = "mainGauche" @{ \mainGauche @}
+ >>
+ >>
+ @}
+ \layout @{ @}
+@}
+@end example
+
+@noindent
+Souvenez-vous que vous pouvez donner aux variables le nom que vous
+voulez, à condition de respecter les caractères autorisés. Ces
+limitations sont décrites dans @ruser{File structure}.
+
+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 :
+assurez-vous que chaque élément d'un même niveau a le même décalage
+horizontal dans votre éditeur de texte !
+
+
+
+@node Nesting music expressions
+@subsection Nesting music expressions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node On the un-nestedness of brackets and ties
+@subsection On the un-nestedness of brackets and ties
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Voices contain music
+@section Voices contain music
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* I'm hearing Voices::
+* Explicitly instantiating voices::
+* Voices and vocals::
+@end menu
+
+@node I'm hearing Voices
+@subsection I'm hearing Voices
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Explicitly instantiating voices
+@subsection Explicitly instantiating voices
+
+Les contextes @internalsref{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.
+
+En particulier,
+@example
+<< \upper \\ \lower >>
+@end example
+
+@noindent
+équivaut à
+
+@example
+<<
+ \new Voice = "1" @{ \voiceOne \upper @}
+ \new Voice = "2" @{ \voiceTwo \lower @}
+>>
+@end example
+
+Les commandes @code{\voiceXXX} fixent la direction des hampes, des
+liaisons de prolongations 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. La commande @code{\oneVoice} les ramène aux
+critères normaux.
+
+Une expression séquentielle qui apparaît en premier dans un @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 l'exemple de la section précédente.
+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.
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' {
+ \override NoteHead #'style = #'cross
+ \override NoteHead #'color = #red
+ c16 d e f
+ \voiceOne
+ <<
+ { g4 f e | d2 e2 }
+ \new Voice="1" { \voiceTwo
+ r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
+ \oneVoice
+ }
+ \new Voice { \voiceThree
+ s2. | s4 b4 c2
+ \oneVoice
+ }
+ >>
+ \oneVoice
+}
+@end lilypond
+
+La définition correcte des voix permet à la mélodie d'être liée.
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' {
+ c16^( d e f
+ \voiceOne
+ <<
+ { g4 f e | d2 e2) }
+ \context Voice="1" { \voiceTwo
+ r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
+ \oneVoice
+ }
+ \new Voice { \voiceThree
+ s2. s4 b4 c2
+ \oneVoice
+ }
+ >>
+ \oneVoice
+}
+@end lilypond
+
+Le fait d'éviter le séparateur @code{\\} permet aussi d'imbriquer des
+constructions polyphoniques, ce qui peut être une manière plus naturelle
+de saisir la musique.
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' {
+ c16^( d e f
+ \voiceOne
+ <<
+ { g4 f e | d2 e2) }
+ \context Voice="1" { \voiceTwo
+ r8 e4 d c8 ~ |
+ <<
+ {c8 b16 a b8 g ~ g2}
+ \new Voice { \voiceThree
+ s4 b4 c2
+ \oneVoice
+ }
+ >>
+ \oneVoice
+ }
+ >>
+ \oneVoice
+}
+@end lilypond
+
+Dans certaines circonstances de polyphonie complexe, vous pourrez être
+amené à recourir à des voix supplémentaires afin d'éviter des collisions
+de notes. Ces voix additionnelles s'ajoutent en définissant un
+identificateur, comme le montre l'exemple suivant :
+
+@lilypond[quote,verbatim,ragged-right,relative=2]
+voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
+
+\relative c''' <<
+ { \voiceOne g4 ~ \stemDown g32[ f( es d c b a b64 )g] } \\
+ { \voiceThree b4} \\
+ { \voiceFive d,} \\
+ { \voiceTwo g,}
+>>
+@end lilypond
+
+
+@node Voices and vocals
+@subsection Voices and vocals
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Contexts and engravers
+@section Contexts and engravers
+
+Nous avons évoqué rapidement les contextes et graveurs dans les sections
+précédentes ; examinons en détail ces concepts essentiels dans la
+maîtrise de LilyPond.
+
+@menu
+* Contexts explained::
+* Creating contexts::
+* Engravers explained::
+* Modifying context properties::
+* Adding and removing engravers::
+@end menu
+
+@node Contexts explained
+@subsection Contexts explained
+
+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 :
+
+@lilypond[quote,verbatim,relative=2,fragment]
+cis4 cis2. g4
+@end lilypond
+
+Si le code est assez austère, dans la parition ont été ajoutés un chiffre de mesure,
+des barres de mesure, des altérations et une clé. Pour une bonne raison : LilyPond
+@emph{interprète} le code. Il le compulse dans l'ordre chronologique, de même qu'on
+lit une partition de gauche à droite ; et pendant ce traitement, le logiciel garde en
+mémoire les limites des mesures, ou encore quelles hauteurs de notes demandent des
+altérations accidentelles. Ces informations se présentent à plusieurs niveaux : 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 @context{Voice}),
+les portées (contexte @context{Staff}), ou la partition dans son ensemble
+(contexte @context{Score}). Ils sont ordonnés hiérarchiquement : ainsi un
+contexte @context{Staff} peut contenir plusieurs contextes @context{Voice}, et un
+contexte @context{Score} peut contenir plusieurs contextes @context{Staff}.
+
+@quotation
+@image{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 @context{Voice} peut faire intervenir une
+altération accidentelle, puis le contexte @context{Staff} devra déterminer si
+cette dernière devra être imprimée ou non dans la suite de la mesure. Les barres
+de mesure, enfin, sont alignées verticalement grâce au contexte @context{Score}.
+
+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 : il faut alors
+modifier les comportement par défaut des contextes @context{Score} et @context{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.
+
+Une description exhaustive de tous les contextes disponibles peut être trouvée dans la
+référence du programme : voir
+@ifhtml
+@internalsref{Contexts}.
+@end ifhtml
+@ifnothtml
+Translation @expansion{} Context.
+@end ifnothtml
+
+@c [TODO: describe propagation]
+
+
+@node Creating contexts
+@subsection Creating contexts
+
+Dans une partition contenant une seule voix sur une seule portée,
+les contextes sont automatiquement créés. Dans une partition plus complexe,
+il faut les crééer à la main. Trois commandes le permettent :
+
+@itemize @bullet
+
+@item
+La plus facile, et la plus rapide à saisir, est @code{\new} -- @qq{nouveau} en français.
+Elle introduit une expression musicale, comme suit :
+
+@funindex \new
+@cindex nouveaux contextes
+@cindex Contextes, création de
+
+@example
+\new @var{Contexte} @var{expression musicale}
+@end example
+
+@noindent
+le choix du @var{Contexte} pouvant être, par exemple, @code{Staff} ou
+@code{Voice}. Cette commande crée un contexte, puis interprète
+l'@var{expression musicale} dans ledit contexte.
+
+En pratique, la commande @code{\new} peut servir dans une partition
+comprenant plusieurs portées. Comme chaque partie doit se trouver sur sa propre
+portée, il faut la faire précéder de @code{\new Staff}.
+
+@lilypond[quote,verbatim,relative=2,ragged-right,fragment]
+<<
+ \new Staff { c4 c }
+ \new Staff { d4 d }
+>>
+@end lilypond
+
+La commande @code{\new} peut aussi permettre de nommer le contexte créé :
+
+@example
+\new @var{Contexte} = @var{"inventezUnNom"} @var{musique}
+@end example
+Le nom que vous choisirez ne pourra être attribué que si aucun autre contexte
+n'a été créé précédemment avec le même nom.
+
+
+@funindex \context
+
+@item
+Tout comme @code{\new}, la commande @code{\context} envoie une expression musicale
+vers un contexte donné, mais attribue nécessairement un nom à ce contexte. La
+syntaxe est la suivante :
+
+@example
+\context @var{Contexte} = @var{unNom} @var{musique}
+@end example
+
+Cette commande va partir à la recherche d'un contexte déjà existant, de type
+@var{Contexte}, et portant le nom @var{unNom}. Ce qui peut être fort utile
+pour se référer à un contexte existant. S'il s'avère que le contexte en question
+n'existe pas encore, il est créé. Dans le cas de musique vocale avec des paroles,
+cela donne :
+
+@example
+\context Voice = "@b{tenor}" @var{musique}
+@end example
+
+@noindent
+et (pour que le texte soit aligné correctement avec les notes) :
+
+@example
+\new Lyrics \lyricsto "@b{tenor}" @var{paroles}
+@end example
+
+@noindent
+
+Une autre utilité de dénommer les contextes est de superposer en un même
+contexte différentes expressions musicales. Dans l'exemple suivant, les
+notes et les ponctuations ont été saisies séparément :
+
+@example
+musique = @{ c4 c4 @}
+ponctuation = @{ s4-. s4-> @}
+@end example
+
+En les envoyant toutes deux dans le même contexte @context{Voice}, on les combine :
+
+@example
+<<
+ \new Staff \context Voice = "A" \musique
+ \context Voice = "A" \ponctuation
+>>
+@end example
+@lilypond[quote,ragged-right]
+music = { c4 c4 }
+arts = { s4-. s4-> }
+\relative c'' <<
+ \new Staff \context Voice = "A" \music
+ \context Voice = "A" \arts
+>>
+@end lilypond
+
+De cette façon, il est possible d'élaborer une édition Urtext (c'est-à-dire originale,
+la plupart du temps sans ponctuations), en laissant la possibilité d'ajouter différentes
+ponctuations sur les mêmes notes.
+
+@cindex crééer des contextes
+
+@item
+La dernière commande pour créer des contextes est
+@example
+\context @var{Contexte} @var{musique}
+@end example
+
+
+@noindent
+Elle ressemble à l'emploi de @code{\context} avec @code{= @var{unNom}}, mais
+cette fois elle se considèrera chez elle partout où elle trouvera un contexte
+de type @var{Contexte}, quel que puisse être son nom.
+
+@c Au secours ! --vv
+
+Cette variante sert à des expressions musicales qui peuvent être interprétées à
+plusieurs niveaux. Par exemple, une commande telle que @code{\applyOutput} (voir
+@c FIXME: broken link
+@c @ref{Running a function on all layout objects}) : si elle n'est pas associée avec
+@code{\context}, elle s'applique par défaut dans le contexte @context{Voice}.
+
+@example
+\applyOutput #'@var{Contexte} #@var{fonction} % s'applique dans le contexte Voice
+@end example
+
+Pour l'appliquer au contexte @context{Score} ou @context{Staff}, il faut utiliser :
+
+@example
+\applyOutput #'Score #@var{fonction}
+\applyOutput #'Staff #@var{fonction}
+@end example
+
+@end itemize
+
+
+@node Engravers explained
+@subsection Engravers explained
+
UNTRANSLATED NODE: IGNORE ME
-@node Score is a single musical expression
-@section Score is a single musical expression
+@node Modifying context properties
+@subsection Modifying context properties
UNTRANSLATED NODE: IGNORE ME
+@node Adding and removing engravers
+@subsection Adding and removing engravers
+
+UNTRANSLATED NODE: IGNORE ME
+
+
+@node Extending the templates
+@section Extending the templates
+
+Bon, vous avez lu le tutoriel, vous savez écrire de la musique. Mais
+comment obtenir les portées que vous voulez ? Les @ref{Templates},
+c'est bien beau, mais que faire quand ils ne traitent pas ce que l'on
+veut précisément ?
+
+Les exemples qui suivent vous donneront des méthodes générales pour
+adapter des modèles.
+
+@menu
+* Soprano and cello::
+* Four-part SATB vocal score::
+* Building a score from scratch::
+@end menu
+
+@node Soprano and cello
+@subsection Soprano and cello
+
+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 : dans ce cas l'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 @{
+ Laaa Siii Dooo Rééé
+@}
+
+\score@{
+ <<
+ \new Voice = "voixUn" @{
+ \autoBeamOff
+ \melodie
+ @}
+ \new Lyrics \lyricsto "voixUn" \texte
+ >>
+ \layout @{ @}
+ \midi @{ @}
+@}
+@end example
+
+Maintenant, on veut ajouter une partie de violoncelle.
+Jetons un coup d'oeil sur l'exemple avec les notes seules :
+
+@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 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 ; 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 ; il nous faut donc les renommer.
+Appelons la section pour la soprano @code{musiqueSoprano} et celle pour le
+violoncelle @code{musiqueVioloncelle}. Tant qu'on y est, renommons
+@code{texte} en @code{parolesSoprano}. Attention à bien renommer les
+deux occurrences de chacune de ces dénominations : c'est-à-dire la
+définition de départ, où l'on trouve @code{mélodie = 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{}"}
+musiqueSoprano = \relative c' @{
+ \clef treble
+ \key c \major
+ \time 4/4
+
+ a4 b c d
+@}
+
+parolesSoprano = \lyricmode @{
+ Laaa Siii Dooo Rééé
+@}
+
+musiqueVioloncelle = \relative c @{
+ \clef bass
+ \key c \major
+ \time 4/4
+
+ d4 g fis8 e d4
+@}
+
+\score@{
+ <<
+ \new Voice = "voixUn" @{
+ \autoBeamOff
+ \musiqueSoprano
+ @}
+ \new Lyrics \lyricsto "voixUn" \parolesSoprano
+ >>
+ \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 :
+
+@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 à
+
+@example
+\score@{
+ <<
+ <<
+ \new Voice = "voixUn" @{
+ \autoBeamOff
+ \musiqueSoprano
+ @}
+ \new Lyrics \lyricsto "voixUn" \parolesSoprano
+ >>
+ \new Staff \musiqueVioloncelle
+ >>
+ \layout @{ @}
+ \midi @{ @}
+@}
+@end example
+
+@noindent
+C'est un peu le bazar dans tout ça ; mais il vous sera facile de
+mettre un peu d'ordre dans l'indentation. Voici le modèle pour
+soprano et violoncelle au complet :
+
+@lilypond[quote,verbatim,ragged-right]
+\version "2.11.38"
+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
+
+
+@node Four-part SATB vocal score
+@subsection Four-part SATB vocal score
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Building a score from scratch
+@subsection Building a score from scratch
+
+UNTRANSLATED NODE: IGNORE ME
--- SKELETON FILE --
-When you actually translate this file, please remove these lines as
-well as all `UNTRANSLATED NODE: IGNORE ME' lines.