@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
@funindex \header
@funindex \layout
@funindex \midi
+@funindex midi
@cindex header
@cindex en-tête
@cindex layout
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,
<<
{ 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
@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.
@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
@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
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}
@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
@subsection Creating contexts
@funindex \new
+@funindex new
@cindex nouveaux contextes
@cindex Contextes, création de
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
<< % 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