@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond-learning.tely
@ignore
- Translation of GIT committish: a4836ce5ec9488d795344735f2febc880fbb6a2f
+ Translation of GIT committish: db53c05f11bea8831733b1fdf7ebe32cb1f491f4
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
-@c \version "2.11.61"
+@c \version "2.12.0"
@c Translators: Valentin Villenave, Jean-Charles Malahieude
@c Translation checkers: John Mandereau
+@c Translation status: post-GDP
@node Fundamental concepts
@chapter Fundamental concepts
@example
\version @w{"@version{}"}
+\header @{ @}
\score @{
@var{...expression musicale composite...} % c'est là qu'est la musique !
- \header @{ @}
\layout @{ @}
\midi @{ @}
@}
musicale simple, LilyPond interprètera le fichier tout comme si cette
expression était incluse dans les commandes de notre premier exemple.
-@cindex implicit contexts
+@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
@example
@{
- \new GrandStaff <<
+ \new StaffGroup <<
@var{...collez ici la partition complète d'un opéra de Wagner...}
>>
@}
@funindex \header
@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 : à l'inverse de
-toutes les commandes débutant par une oblique inversée (@emph{backslash}
-pour @code{\}), @strong{elles ne constituent pas} des expressions
-musicales et ne seront donc pas interprétées comme telles. Elles
-peuvent de ce fait être mentionnées à l'intérieur du bloc @code{\score},
-tout comme à 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 bien souvent avant le bloc @code{\score} tout
-simplement parce que les en-têtes apparaissent au début de la partition.
-C'est donc l'un des raccourcis que LilyPond prendra en considération.
+@code{\layout} et @code{\midi} -- sont spécifiques : à 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
+-- 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{Score layout} et @ruser{Creating MIDI files}.
-@cindex scores, multiples
+@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
@subsection 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,
@example
\score @{
@{ % cette accolade marque le début de l'expression musicale
- \new GrandStaff <<
+ \new StaffGroup <<
@var{...insérez ici l'intégralité d'un opéra de Wagner...}
>>
@} % cette accolade marque la fin de l'expression musicale
@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}, qui sert
-à regrouper les portées au moyen d'une accolade sur la gauche --- donc
-laissons cela de côté. Par contre, un chanteur et un piano
-@emph{pourraient} nous être utiles.
+par deux ou trois, alors contentons-nous d'une voix et d'un piano. On
+n'a plus besoin d'une partition d'orchestre --- @emph{i.e.} des
+portées regroupées en @code{StaffGroup} --- donc laissons cela de
+côté. Par contre, nous voulons bien une voix et un piano.
@example
\score @{
<<
{ f c c }
\new Staff \with {
- alignAboveContext = "main" }
+ alignAboveContext = #"main" }
{ f8 f c }
>>
r4 |
@subsection 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
D'autres constructions permettent d'obtenir des lignes regroupant ou en
travers des notes : les liaisons de prolongation indiquées par un
tilde (@code{~}), les marques de nolet avec
-@code{\times@tie{}x/y@tie{}@{..@}} ou
+@code{\times@tie{}x/y@tie{}@{..@}}, ou
encore les notes d'ornement avec @code{\grace@{..@}}.
En dehors de LilyPond, l'imbrication correcte de différents types de
@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 @q{contexte de voix} -- @emph{Voice
+é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 @q{couche} ou de @q{calque}.
+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éé
@end lilypond
+@cindex voix, nomage
+@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.
}
@end lilypond
-Ces voix sont séparées de la voix principale laquelle contient les notes en
+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 ;
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{Fixing overlapping notation}).
+@code{force-hshift} dans @ref{Fixing overlapping notation}).
@seealso
@subsection 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
>>
@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
}
@end lilypond
-@cindex spacing notes
+@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
@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
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 : le do de la deuxième voix est décalé à droite du ré de la
+ci-dessus : 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.
@funindex \new Lyrics
@funindex \lyricsto
+@funindex lyricsto
+@funindex Lyrics
@cindex Lyrics, création d'un contexte
@cindex paroles, affectation à une voix
@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
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 afin de séparer de la structure d'une portée
+utiliser des variables 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
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 les notes et les paroles. Vous
noterez aussi une variable particulière, que nous avons appelée
-@q{MetriqueArmure}, et qui contient plusieurs commandes que nous
+@qq{MetriqueArmure}, et qui contient plusieurs commandes que nous
utiliserons dans les deux portées. Dans de nombreux autres exemples,
-elle s'appelle @q{global}.
+elle s'appelle @qq{global}.
@lilypond[quote,verbatim]
TimeKey = { \time 4/4 \partial 4 \key c \major}
One two three four five six
}
\score {
- \new Choirstaff {
+ \new ChoirStaff {
\new Staff <<
\new Voice = "verse" {
\versenotes \break
@cindex book, exemple d'utilisation
@cindex recueil, exemple d'utilisation
@funindex \book
+@funindex book
Bien que ce que nous venons de voir constitue un exercice intéressant et
fort utile pour comprendre comment s'articulent des blocs séquentiels et
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}. Sont aussi disponibles d'autres
+@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 tablatures
d'instruments frettés, la basse chiffrée, etc.
@subsection Creating contexts
@funindex \new
+@funindex new
@cindex nouveaux contextes
@cindex Contextes, création de
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é seront plus facilement
+au premier coup d'œil, et les défauts de parité 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
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. Comme nous l'avons déjà vu
-dans le chapitre consacré aux paroles (@ref{Voices and vocals}),
-cet identifiant permettra ensuite de se référer à ce contexte particulier.
+instance particulière du type en question. Vous pouvez utiliser des
+chiffres et espaces, à la stricte condition d'englober le tout dans des
+guillemets ; l'identificateur suivant est tout à fait valide :
+@code{\new Staff = "MaPortee 1" @var{expression-musicale}}.
+Comme nous l'avons déjà vu dans le chapitre consacré aux paroles
+(@ref{Voices and vocals}), cet identifiant permettra ensuite de se
+référer à ce contexte particulier.
+
+
+@seealso
+Manuel de notation : @ruser{Creating contexts}.
@node Engravers explained
@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
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
@unnumberedsubsubsec 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
de façon dynamique grâce à @code{\set} ; un @code{\unset} les ramènera à
leur valeur par défaut.
+@cindex fontSize, valeur par défaut et réglage
+
La propriété @code{fontSize} constitue une exception : 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
@unnumberedsubsubsec 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é
@seealso
-Manuel de notation : @ruser{Changing context default settings},
-@ruser{The set command}.
+Manuel de notation :
+@ruser{Changing context default settings},
+@c uncomment when backslash-node-name issue is resolved -pm
+@c @ruser{The set command}.
-Références internes : @rinternals{Contexts},
+Références internes :
+@rinternals{Contexts},
@rinternals{Tunable context properties}.
@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
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 Staff_symbol_engraver.
+lignes d'une portée sont générées par le @code{Staff_symbol_engraver}.
@lilypond[quote,verbatim,ragged-right]
\new Staff \with {
Vous pouvez aussi ajouter individuellement un graveur à un contexte. La
commande se formule ainsi :
-@code{\consists @emph{Nom_du_graveur}}
+@code{\consists @var{Nom_du_graveur}}
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
@subsubheading 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
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
+pour soprano et violoncelle : dans ce cas, on pourrait commencer par les
@qq{notes et paroles}, pour la partie de soprano.
@example
@end example
On n'a pas besoin de deux commandes @code{\version}. Ce dont on a besoin,
-c'est dela 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}.
+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 ; 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.
<< % combine ChoirStaff and PianoStaff in parallel
\new ChoirStaff <<
\new Staff = "sopranos" <<
- \set Staff.instrumentName = "Soprano"
+ \set Staff.instrumentName = #"Soprano"
\new Voice = "sopranos" { \global \sopranoMusic }
>>
\new Lyrics \lyricsto "sopranos" { \sopranoWords }
\new Staff = "altos" <<
- \set Staff.instrumentName = "Alto"
+ \set Staff.instrumentName = #"Alto"
\new Voice = "altos" { \global \altoMusic }
>>
\new Lyrics \lyricsto "altos" { \altoWords }
\new Staff = "tenors" <<
- \set Staff.instrumentName = "Tenor"
+ \set Staff.instrumentName = #"Tenor"
\new Voice = "tenors" { \global \tenorMusic }
>>
\new Lyrics \lyricsto "tenors" { \tenorWords }
\new Staff = "basses" <<
- \set Staff.instrumentName = "Bass"
+ \set Staff.instrumentName = #"Bass"
\new Voice = "basses" { \global \bassMusic }
>>
\new Lyrics \lyricsto "basses" { \bassWords }
>> % end ChoirStaff
\new PianoStaff <<
- \set PianoStaff.instrumentName = "Piano"
+ \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 @q{SATB vocal score and
+Celui qui s'en rapprocherait le plus est @qq{SATB vocal score and
automatic piano reduction} -- voir @ref{Vocal ensembles} -- 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
@example
\new ChoirStaff <<
\new Staff = "sopranos" <<
- \set Staff.instrumentName = "Soprano"
+ \set Staff.instrumentName = #"Soprano"
\new Voice = "sopranos" @{ \global \sopranoMusique @}
>>
\new Lyrics \lyricsto "sopranos" @{ \sopranoParoles @}
\new Staff = "altos" <<
- \set Staff.instrumentName = "Alto"
+ \set Staff.instrumentName = #"Alto"
\new Voice = "altos" @{ \global \altoMusique @}
>>
\new Lyrics \lyricsto "altos" @{ \altoParoles @}
\new Staff = "tenors" <<
- \set Staff.instrumentName = "Tenor"
+ \set Staff.instrumentName = #"Tenor"
\new Voice = "tenors" @{ \global \tenorMusique @}
>>
\new Lyrics \lyricsto "tenors" @{ \tenorParoless @}
\new Staff = "basses" <<
- \set Staff.instrumentName = "Bass"
+ \set Staff.instrumentName = #"Bass"
\new Voice = "basses" @{ \global \basseMusique @}
>>
\new Lyrics \lyricsto "basses" @{ \basseParoles @}
@example
\new PianoStaff <<
- \set PianoStaff.instrumentName = "Piano "
+ \set PianoStaff.instrumentName = #"Piano "
\new Staff = "upper" \superieur
\new Staff = "lower" \inferieur
>>
>> % end ChoirStaff
\new PianoStaff <<
- \set PianoStaff.instrumentName = "Piano"
+ \set PianoStaff.instrumentName = #"Piano"
\new Staff = "upper" \superieur
\new Staff = "lower" \inferieur
>>
<< % combine ChoirStaff and PianoStaff in parallel
\new ChoirStaff <<
\new Staff = "sopranos" <<
- \set Staff.instrumentName = "Soprano"
+ \set Staff.instrumentName = #"Soprano"
\new Voice = "sopranos" { \global \sopranoMusic }
>>
\new Lyrics \lyricsto "sopranos" { \sopranoWords }
\new Staff = "altos" <<
- \set Staff.instrumentName = "Alto"
+ \set Staff.instrumentName = #"Alto"
\new Voice = "altos" { \global \altoMusic }
>>
\new Lyrics \lyricsto "altos" { \altoWords }
\new Staff = "tenors" <<
- \set Staff.instrumentName = "Tenor"
+ \set Staff.instrumentName = #"Tenor"
\new Voice = "tenors" { \global \tenorMusic }
>>
\new Lyrics \lyricsto "tenors" { \tenorWords }
\new Staff = "basses" <<
- \set Staff.instrumentName = "Bass"
+ \set Staff.instrumentName = #"Bass"
\new Voice = "basses" { \global \bassMusic }
>>
\new Lyrics \lyricsto "basses" { \bassWords }
>> % end ChoirStaff
\new PianoStaff <<
- \set PianoStaff.instrumentName = "Piano "
+ \set PianoStaff.instrumentName = #"Piano "
\new Staff = "upper" \upper
\new Staff = "lower" \lower
>>
@subsection 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