@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 26375d5016d8d180fc914bfd07cf76f4168f2e37
+ Translation of GIT committish: 92d7753b7a1e9887afcc6ad6864a78940e7878fb
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.12.0"
+@c \version "2.13.39"
@c Translators: Valentin Villenave, Jean-Charles Malahieude
@c Translation checkers: John Mandereau
@funindex book
@funindex \score
@funindex score
+
@cindex book, livre, ouvrage
@cindex livre
@cindex score, partition
@funindex layout
@funindex \midi
@funindex midi
+
@cindex header
@cindex en-tête
@cindex layout
@cindex partitions multiples
@cindex book, bloc implicite
@cindex implicite, bloc book
+
@funindex \book
@funindex book
un bloc @code{\book}.
Tout bloc @code{\score} inclus dans un bloc @code{\book} constitue un
-fragment de musique.
+fragment de musique, par exemple un mouvement d'une symphonie.
@cindex layout, effets selon l'emplacement
@funindex \score
@funindex score
+
@cindex partition
@cindex bloc score, contenu
@cindex expression musicale composite
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
}
@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
+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
placer au-dessus de la portée @qq{principal} plutôt qu'en dessous, ce
qui est le comportement par défaut.
-Les ossia apparaissent souvent sans clef ni métrique, et dans une police
+
+@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}.
@item @code{< .. >}
@tab Délimite les notes d'un accord
@item @code{<< .. >>}
- @tab Délimitent des sections simultanées
+ @tab Délimite des sections simultanées
@item @code{( .. )}
@tab Marque le début et la fin d'une liaison
@item @code{\( .. \)}
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) et qui
+partition est contenue dans des voix (@emph{Voices} en anglais), qui
se trouvent être le concept fondamental de LilyPond.
@menu
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\key g \major
-% Voice "1" Voice "2"
-<< { g4 fis8( g) a4 g } \\ { d4 d d d } >> |
+% 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.
\new Staff \relative c' {
% Main voice
c16 d e f
- % Voice "1" Voice "2" Voice "3"
- << { g4 f e } \\ { r8 e4 d c8 ~ } >> |
- << { d2 e2 } \\ { c8 b16 a b8 g ~ g2 } \\ { s4 b4 c2 } >> |
+ % 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
\new Staff \relative c' {
% Main voice
c16 d e f
- << % Bar 1
+ << % Bar 1
{
\voiceOneStyle
g4 f e
\\
{
\voiceTwoStyle
- r8 e4 d c8 ~
+ r8 e4 d c8~
}
- >>
- << % Bar 2
+ >> |
+ << % Bar 2
% Voice 1 continues
- { d2 e2 }
+ { d2 e }
\\
% Voice 2 continues
- { c8 b16 a b8 g ~ g2 }
+ { c8 b16 a b8 g~ g2 }
\\
{
\voiceThreeStyle
- s4 b4 c2
+ s4 b c2
}
- >>
+ >> |
}
@end lilypond
@cindex mode relatif et polyphonie
La polyphonie ne modifie en rien la relation entre les notes au sein
-d'un bloc @w{@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
+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 @}
annotations, liaisons de prolongation ou de phrasé, et sur les nuances.
@lilypond[quote,ragged-right,verbatim]
-\relative c'{
+\relative c' {
% Default behavior or behavior after \oneVoice
- c d8 ~ d e4 ( f g a ) b-> c
+ c4 d8~ d e4( f | g4 a) b-> c |
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
-\relative c'{
+\relative c' {
\voiceOne
- c d8 ~ d e4 ( f g a ) b-> c
+ c4 d8~ d e4( f | g4 a) b-> c |
\oneVoice
- c, d8 ~ d e4 ( f g a ) b-> c
+ c,4 d8~ d e4( f | g4 a) b-> c |
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
-\relative c'{
+\relative c' {
\voiceTwo
- c d8 ~ d e4 ( f g a ) b-> c
+ c4 d8~ d e4( f | g4 a) b-> c |
\oneVoice
- c, d8 ~ d e4 ( f g a ) b-> c
+ c,4 d8~ d e4( f | g4 a) b-> c |
}
@end lilypond
% Start simultaneous section of three voices
<<
% Continue the main voice in parallel
- { g4 f e | d2 e2) }
+ { g4 f e | d2 e) | }
% Initiate second voice
\new Voice {
- % Set stems, etc, down
+ % Set stems, etc., down
\voiceTwo
- r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
+ r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
}
% Initiate third voice
\new Voice {
% Set stems, etc, up
\voiceThree
- s2. | s4 b4 c2
+ s2. | s4 b c2 |
}
>>
}
@cindex imbrication d'expressions musicales
@cindex imbrication de constructions simultanées
-
@cindex voix temporaires
@cindex voix, imbrication
\new Staff \relative c' {
c16^( d e f
<<
- { g4 f e | d2 e2) }
+ { g4 f e | d2 e) | }
\new Voice {
\voiceTwo
- r8 e4 d c8 ~ |
+ r8 e4 d c8~ |
<<
- {c8 b16 a b8 g ~ g2}
+ { c8 b16 a b8 g~ g2 | }
\new Voice {
\voiceThree
- s4 b4 c2
+ s4 b c2 |
}
>>
}
@end lilypond
@subsubheading Empilement des notes
+@translationof Note columns
@cindex note column
@cindex empilement de notes
@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.
+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
@lilypond[quote,verbatim,fragment]
<<
- \new Voice = "one" \relative c'' {
- \autoBeamOff
- \time 2/4
- c4 b8. a16 g4. f8 e4 d c2
+ \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.
+ No more let | sins and | sor -- rows | grow. |
}
>>
@end lilypond
@cindex paroles et ligatures
@cindex ligatures et paroles
+
@funindex \autoBeamOff
@funindex autoBeamOff
@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 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
+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 = { \time 6/8 \partial 8 \key f \major}
+global = { \key f \major \time 6/8 \partial 8 }
+
SopOneMusic = \relative c'' {
- c8 | c([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 }
-SopTwoMusic = \relative c' {
- r8 | r4. r4 c8 | a'([ g)] f f([ e)] d | e([ d)] c bes' }
+ c8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ c4
+}
SopOneLyrics = \lyricmode {
- Let | flee -- cy flocks the | hills a -- dorn, __ }
+ 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, }
+ Let | flee -- cy flocks the | hills a -- dorn,
+}
\score {
\new ChoirStaff <<
@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.
+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
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{MetriqueArmure}, et qui contient plusieurs commandes que nous
+@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]
-TimeKey = { \time 4/4 \partial 4 \key c \major}
-SopMusic = \relative c' { c4 | e4. e8 g4 g | a a g }
-AltoMusic = \relative c' { c4 | c4. c8 e4 e | f 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 }
+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 \TimeKey \SopMusic }
+ \new Voice = "Sop" { \voiceOne \keyTime \SopMusic }
\new Voice = "Alto" { \voiceTwo \AltoMusic }
\new Lyrics \lyricsto "Sop" { \VerseOne }
\new Lyrics \lyricsto "Sop" { \VerseTwo }
>>
\new Staff <<
\clef "bass"
- \new Voice = "Tenor" { \voiceOne \TimeKey \TenorMusic }
- \new Voice = "Bass" { \voiceTwo \BassMusic }
- >>
- >>
-}
-@end lilypond
-
-@cindex couplet et refrain
-
-Nous allons terminer en voyant comment coder un couplet pour soliste
-suivi d'un refrain à deux voix sur deux portées. Les explications sont
-importantes, dans la mesure où les moyens mis en œuvre pour arriver à
-enchaîner le solo et la polyphonie dans une seule et même partition sont
-quelque peu tirés par les cheveux.
-
-Commençons par ouvrir un bloc @code{score} qui contiendra un
-@code{ChoirStaff}, puisque nous aimerions voir un crochet au début du
-système choral. Nous devrions avoir, après @code{\new ChoirStaff}, un
-double chevron gauche pour synchroniser les portées@tie{}; mais comme nous
-reportons le parallélisme après le solo, nous utilisons des accolades --
-un double chevron ne serait cependant pas génant. À l'intérieur du
-@code{ChoirStaff}, nous voulons en premier la portée avec le couplet.
-Puisqu'elle englobe parallèlement des notes et des paroles, nous devons
-encadrer les @code{\new Voice} et @code{\new Lyrics} de doubles
-chevrons gauche/droite pour les faire démarrer de concert@tie{}:
-
-@lilypond[quote,verbatim,ragged-right]
-versenotes = \relative c'' {
- \clef "treble"
- \key g \major
- \time 3/4 g g g b b b
-}
-versewords = \lyricmode {
- One two three four five six
-}
-\score {
- \new ChoirStaff {
- \new Staff <<
- \new Voice = "verse" {
- \versenotes \break
- }
- \new Lyrics \lyricsto verse {
- \versewords
- }
- >>
- }
-}
-@end lilypond
-
-Voici la ligne du couplet réalisée.
-
-Nous poursuivons avec @code{refrainA}, sur la même portée, alors même
-qu'une deuxième portée s'amorce en parallèle pour contenir
-@code{refrainB}. Cette section parallèle doit s'enchaîner directement à
-la suite du @code{\break} de la voix contenant le couplet -- il s'agit
-bien de la @emph{même} voix. Voici cette section parallèle. On
-pourrait tout à fait ajouter encore d'autres portées ici, toujours de la
-même manière.
-
-@example
-<<
- \refrainnotesA
- \new Lyrics \lyricsto verse @{
- \refrainparolesA
- @}
- \new Staff <<
- \new Voice = "refrainB" @{
- \refrainnotesB
- @}
- \new Lyrics \lyricsto "refrainB" @{
- \refrainparolesB
- @}
- >>
->>
-@end example
-
-Et voici le résultat final, avec ses deux portées pour la partie
-chorale, et qui montre comment la section en parallèle s'enchaîne avec
-la voix du couplet@tie{}:
-
-@lilypond[quote,verbatim, ragged-right]
-versenotes = \relative c'' {
- \clef "treble"
- \key g \major
- \time 3/4 g g g b b b
-}
-refrainnotesA = \relative c'' {
- \time 2/4
- c c g g \bar "|."
-}
-refrainnotesB = \relative c {
- \clef "bass"
- \key g \major
- c e d d
-}
-versewords = \lyricmode {
- One two three four five six
-}
-refrainwordsA = \lyricmode {
- la la la la
-}
-refrainwordsB = \lyricmode {
- dum dum dum dum
-}
-\score {
- \new ChoirStaff {
- \new Staff <<
- \new Voice = "verse" {
- \versenotes \break
- <<
- \refrainnotesA
- \new Lyrics \lyricsto "verse" {
- \refrainwordsA
- }
- \new Staff <<
- \new Voice = "refrainB" {
- \refrainnotesB
- }
- \new Lyrics \lyricsto "refrainB" {
- \refrainwordsB
- }
- >>
- >>
- }
- \new Lyrics \lyricsto "verse" {
- \versewords
- }
- >>
- }
-}
-@end lilypond
-
-@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
-simultanés, nous aurions aussi pu coder notre exemple sous la forme de
-deux blocs @code{\score} au sein d'un bloc @code{\book} implicite@tie{}:
-
-@lilypond[quote,verbatim,ragged-right]
-versenotes = \relative c'' {
- \clef "treble"
- \key g \major
- \time 3/4 g g g b b b
-}
-refrainnotesA = \relative c'' {
- \time 2/4
- c c g g \bar "|."
-}
-refrainnotesB = \relative c {
- \clef "bass"
- \key g \major
- c e d d
-}
-versewords = \lyricmode {
- One two three four five six
-}
-refrainwordsA = \lyricmode {
- la la la la
-}
-refrainwordsB = \lyricmode {
- dum dum dum dum
-}
-\score {
- \new Staff <<
- \new Voice = "verse" {
- \versenotes
- }
- \new Lyrics \lyricsto "verse" {
- \versewords
- }
- >>
-}
-
-\score {
- \new ChoirStaff <<
- \new Staff <<
- \new Voice = "refrainA" {
- \refrainnotesA
- }
- \new Lyrics \lyricsto "refrainA" {
- \refrainwordsA
- }
- >>
- \new Staff <<
- \new Voice = "refrainB" {
- \refrainnotesB
- }
- \new Lyrics \lyricsto "refrainB" {
- \refrainwordsB
- }
+ \new Voice = "Tenor" { \voiceOne \keyTime \TenorMusic }
+ \new Voice = "Bass" { \voiceTwo \BassMusic }
>>
>>
}
@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.
+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::
qui l'engendre@tie{}:
@lilypond[quote,verbatim,relative=2,fragment]
-cis4 cis2. g4
+cis4 cis2. | a4 a2. |
@end lilypond
Si le code est assez austère, dans la partition ont été ajoutés un
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}.
+@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,,}
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 tablatures
-d'instruments frettés, la basse chiffrée, etc.
+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
@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.
+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.
+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{}:
interprète l'@var{expression-musicale} contenue dans ledit
contexte.
-Notez bien que la commande @code{\new Score} n'est pas obligatoire,
-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}. Le seul cas où il faut créer
-explicitement un contexte @code{Score} à l'aide de la commande
-@code{\new score} est lorsqu'il comprendra un bloc @code{\with} aux fins
-de stipuler les propriétés de certains contextes qui s'appliqueront à
-l'ensemble de la partition. Vous trouverez plus dinformation sur
-l'utilisation des blocs @code{\with} au chapitre
-@ref{Modification des propriétés d'un 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
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é plus facilement
+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.
+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
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
+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.
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.
+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.
@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
+ @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 Dynamic_engraver
+@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
@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
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}.
+(@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
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
-le Manuel de références internes -- voir
+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{}:
+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'' {
- ais4 aes
- }
+ ais2 aes
+ }
\new Staff \relative c'' {
\set Staff.extraNatural = ##f
- ais4 aes
- }
+ ais2 aes
+ }
>>
@end lilypond
@lilypond[quote,verbatim,ragged-right]
<<
\new Staff \relative c'' {
- ais4 aes
- }
+ ais2 aes
+ }
\new Staff \relative c'' {
\set Score.extraNatural = ##f
- ais4 aes
- }
+ ais2 aes
+ }
>>
@end lilypond
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.
+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
dernière valeur définie.
@lilypond[quote,verbatim,ragged-right,relative=1,fragment]
-c4
+c4 d
% make note heads smaller
\set fontSize = #-4
-d e
+e4 f |
% make note heads larger
\set fontSize = #2.5
-f g
+g4 a
% return to default size
\unset fontSize
-a b
+b4 c |
@end lilypond
Nous venons de voir comment déterminer la valeur de différents types de
ê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
+@code{"@dots{ }"}, bien que, comme nous le constaterons plus tard, la
commande @code{\markup} permet aussi de spécifier du texte.
-@unnumberedsubsubsec Définition des propriétés de contexte avec @code{\with}
+@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
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{}:
+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 @}
@lilypond[quote,verbatim,ragged-right]
<<
\new Staff
- \relative c'' {
- gis ges aes ais
- }
- \new Staff \with { extraNatural = ##f }
- \relative c'' {
- gis ges aes ais
- }
->>
-@end lilypond
-
-Dans le cas où ces ajustements de propriété doivent affecter
-toutes les portées de la partition, nous utiliserons alors
-l'instruction @code{\new Score}, comme ici@tie{}:
-
-@lilypond[quote,verbatim,ragged-right]
-\score {
- \new Score \with { extraNatural = ##f } <<
- \new Staff {
- \relative c'' {
- gis ges aes ais
- }
+ \relative c'' {
+ gis4 ges aes ais
}
- \new Staff {
- \relative c'' {
- gis 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 par défaut.
+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
+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.
-@unnumberedsubsubsec Définition des propriétés de contexte avec @code{\context}
+@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
}
@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
@seealso
Manuel de notation :
@ruser{Modification des réglages par défaut d'un contexte},
-@c uncomment when backslash-node-name issue is resolved -pm
-@c @ruser{La commande de fixation (set)}.
+@ruser{La commande de fixation (set)}.
Référence des propriétés internes :
@rinternals{Contexts},
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
\remove Staff_symbol_engraver
}
\relative c' {
- c4
+ c4 d
\set fontSize = #-4 % make note heads smaller
- d e
+ e4 f |
\set fontSize = #2.5 % make note heads larger
- f g
+ g4 a
\unset fontSize % return to default size
- a b
+ b4 c |
}
@end lilypond
\new Staff <<
\new Voice \with {
\consists Ambitus_engraver
+ } {
+ \relative c'' {
+ \voiceOne
+ c4 a b g
+ }
}
- \relative c'' {
- \voiceOne
- c a b g
- }
- \new Voice
- \relative c' {
- \voiceTwo
- c e d f
+ \new Voice {
+ \relative c' {
+ \voiceTwo
+ c4 e d f
+ }
}
>>
@end lilypond
@lilypond[quote,verbatim,ragged-right]
\new Staff \with {
- \consists Ambitus_engraver
- }
- <<
- \new Voice
- \relative c'' {
- \voiceOne
- c a b g
+ \consists Ambitus_engraver
+}
+<<
+ \new Voice {
+ \relative c'' {
+ \voiceOne
+ c4 a b g
+ }
}
- \new Voice
- \relative c' {
- \voiceTwo
- c e d f
+ \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
@lilypond[quote,verbatim,ragged-right]
\score {
<<
- \new Staff <<
- \relative c'' { c a b g }
- >>
- \new Staff <<
- \relative c' { c a b g }
- >>
- \new Staff <<
+ \new Staff {
+ \relative c'' {
+ c4 a b g
+ }
+ }
+ \new Staff {
+ \relative c' {
+ c4 a b g
+ }
+ }
+ \new Staff {
\clef "G_8"
- \relative c' { c a b g }
- >>
- \new Staff <<
+ \relative c' {
+ c4 a b g
+ }
+ }
+ \new Staff {
\clef "bass"
- \relative c { c a b g }
- >>
+ \relative c {
+ c4 a b g
+ }
+ }
>>
\layout {
\context {
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.
+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
+ \clef "treble"
\key c \major
\time 4/4
-
a4 b c d
@}
@example
\version @w{"@version{}"}
+
melodie = \relative c' @{
- \clef treble
+ \clef "treble"
\key c \major
\time 4/4
-
a4 b c d
@}
\score @{
-\new Staff \melodie
-\layout @{ @}
-\midi @{ @}
+ \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}.
+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}.
+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
+ \clef "treble"
\key c \major
\time 4/4
-
a4 b c d
@}
@}
violoncelleMusique = \relative c @{
- \clef bass
+ \clef "bass"
\key c \major
\time 4/4
-
d4 g fis8 e d4
@}
@lilypond[quote,verbatim,ragged-right,addversion]
sopranoMusic = \relative c' {
- \clef treble
+ \clef "treble"
\key c \major
\time 4/4
a4 b c d
}
celloMusic = \relative c {
- \clef bass
+ \clef "bass"
\key c \major
\time 4/4
d4 g fis8 e d4
@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
+ 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
<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
\new ChoirStaff <<
\new Staff = "sopranos" <<
\set Staff.instrumentName = #"Soprano"
- \new Voice = "sopranos" { \global \sopranoMusic }
+ \new Voice = "sopranos" {
+ \global
+ \sopranoMusic
+ }
>>
- \new Lyrics \lyricsto "sopranos" { \sopranoWords }
+ \new Lyrics \lyricsto "sopranos" {
+ \sopranoWords
+ }
\new Staff = "altos" <<
\set Staff.instrumentName = #"Alto"
- \new Voice = "altos" { \global \altoMusic }
+ \new Voice = "altos" {
+ \global
+ \altoMusic
+ }
>>
\new Lyrics \lyricsto "altos" { \altoWords }
\new Staff = "tenors" <<
\set Staff.instrumentName = #"Tenor"
- \new Voice = "tenors" { \global \tenorMusic }
+ \new Voice = "tenors" {
+ \global
+ \tenorMusic
+ }
>>
\new Lyrics \lyricsto "tenors" { \tenorWords }
\new Staff = "basses" <<
\set Staff.instrumentName = #"Bass"
- \new Voice = "basses" { \global \bassMusic }
+ \new Voice = "basses" {
+ \global
+ \bassMusic
+ }
>>
- \new Lyrics \lyricsto "basses" { \bassWords }
+ \new Lyrics \lyricsto "basses" {
+ \bassWords
+ }
>> % end ChoirStaff
-
\new PianoStaff <<
\set PianoStaff.instrumentName = #"Piano"
\new Staff = "upper" \upper
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.
+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" @{ \tenorParoless @}
- \new Staff = "basses" <<
- \set Staff.instrumentName = #"Bass"
- \new Voice = "basses" @{ \global \basseMusique @}
- >>
- \new Lyrics \lyricsto "basses" @{ \basseParoles @}
- >> % fin du ChoirStaff
+\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
<< % combine ChoirStaff et PianoStaff l'un au-dessus de l'autre
\new ChoirStaff <<
\new Staff = "sopranos" <<
- \new Voice = "sopranos" @{ \global \sopranoMusique @}
+ \new Voice = "sopranos" @{
+ \global
+ \sopranoMusique
+ @}
>>
- \new Lyrics \lyricsto "sopranos" @{ \sopranoParoless @}
+ \new Lyrics \lyricsto "sopranos" @{
+ \sopranoParoles
+ @}
\new Staff = "altos" <<
- \new Voice = "altos" @{ \global \altoMusique @}
+ \new Voice = "altos" @{
+ \global
+ \altoMusique
+ @}
>>
- \new Lyrics \lyricsto "altos" @{ \altoParoles @}
+ \new Lyrics \lyricsto "altos" @{
+ \altoParoles
+ @}
\new Staff = "tenors" <<
- \clef "G_8" % clef spécifique
- \new Voice = "tenors" @{ \global \tenorMusique @}
+ \clef "G_8" % tenor clef
+ \new Voice = "tenors" @{
+ \global
+ \tenorMusique
+ @}
>>
- \new Lyrics \lyricsto "tenors" @{ \tenorParoles @}
+ \new Lyrics \lyricsto "tenors" @{
+ \tenorParoles
+ @}
\new Staff = "basses" <<
\clef "bass"
- \new Voice = "basses" @{ \global \bassesMusique @}
+ \new Voice = "basses" @{
+ \global
+ \bassMusique
+ @}
>>
- \new Lyrics \lyricsto "basses" @{ \bassesParoles @}
+ \new Lyrics \lyricsto "basses" @{
+ \bassParoles
+ @}
>> % fin du ChoirStaff
\new PianoStaff <<
r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
}
sopranoWords = \lyricmode {
- Wor -- thy is the lamb that was slain
+ Wor -- thy | is the lamb | that was slain |
}
altoMusic = \relative a' {
\clef "treble"
\new ChoirStaff <<
\new Staff = "sopranos" <<
\set Staff.instrumentName = #"Soprano"
- \new Voice = "sopranos" { \global \sopranoMusic }
+ \new Voice = "sopranos" {
+ \global
+ \sopranoMusic
+ }
>>
- \new Lyrics \lyricsto "sopranos" { \sopranoWords }
+ \new Lyrics \lyricsto "sopranos" {
+ \sopranoWords
+ }
\new Staff = "altos" <<
\set Staff.instrumentName = #"Alto"
- \new Voice = "altos" { \global \altoMusic }
+ \new Voice = "altos" {
+ \global
+ \altoMusic
+ }
>>
- \new Lyrics \lyricsto "altos" { \altoWords }
+ \new Lyrics \lyricsto "altos" {
+ \altoWords
+ }
\new Staff = "tenors" <<
\set Staff.instrumentName = #"Tenor"
- \new Voice = "tenors" { \global \tenorMusic }
+ \new Voice = "tenors" {
+ \global
+ \tenorMusic
+ }
>>
- \new Lyrics \lyricsto "tenors" { \tenorWords }
+ \new Lyrics \lyricsto "tenors" {
+ \tenorWords
+ }
\new Staff = "basses" <<
\set Staff.instrumentName = #"Bass"
- \new Voice = "basses" { \global \bassMusic }
+ \new Voice = "basses" {
+ \global
+ \bassMusic
+ }
>>
- \new Lyrics \lyricsto "basses" { \bassWords }
+ \new Lyrics \lyricsto "basses" {
+ \bassWords
+ }
>> % end ChoirStaff
\new PianoStaff <<
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 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
title = "Jesu, meine Freude"
composer = "J S Bach"
@}
-MetriqueArmure = @{ \time 4/4 \key c \minor @}
-ManuelUnVoixUnMusique = @{s1@}
-ManuelUnVoixDeuxMusique = @{s1@}
-ManuelDeuxMusique = @{s1@}
-PedalierOrgueMusique = @{s1@}
+ArmureMetrique = @{ \key c \minor \time 4/4 @}
+ManuelUnVoixUnMusique = @{ s1 @}
+ManuelUnVoixDeuxMusique = @{ s1 @}
+ManuelDeuxMusique = @{ s1 @}
+PedalierOrgueMusique = @{ s1 @}
\score @{
@}
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
+\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
<< % Système pianistique et portée de pédalier sont synchrones
\new PianoStaff <<
\new Staff = "ManuelUn" <<
- \new Voice @{ \ManuelUnVoixUnMusique @}
- \new Voice @{ \ManuelUnVoixDeuxMusique @}
+ \new Voice @{
+ \ManuelUnVoixUnMusique
+ @}
+ \new Voice @{
+ \ManuelUnVoixDeuxMusique
+ @}
>> % fin du contexte de portée ManuelUn
\new Staff = "ManualDeux" <<
- \new Voice @{ \ManuelDeuxMusique @}
+ \new Voice @{
+ \ManuelDeuxMusique
+ @}
>> % fin du contexte de portée ManuelDeux
>> % fin du contexte PianoStaff
\new Staff = "PedalierOrgue" <<
- \new Voice @{ \PedalierOrgueMusique @}
+ \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
+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
<< % Système pianistique et portée de pédalier sont synchrones
\new PianoStaff <<
\new Staff = "ManuelUn" <<
- \TimeKey % définition de la métrique et de l'armure
+ \ArmureMetrique % définition de l'armure et de la métrique
\clef "treble"
- \new Voice @{ \voiceOne \ManuelUnVoixUnMusique @}
- \new Voice @{ \voiceTwo \ManuelUnVoixDeuxMusique @}
+ \new Voice @{
+ \voiceOne
+ \ManuelUnVoixUnMusique
+ @}
+ \new Voice @{
+ \voiceTwo
+ \ManuelUnVoixDeuxMusique
+ @}
>> % fin du contexte de la portée ManuelUn
\new Staff = "ManuelDeux" <<
- \TimeKey
+ \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 @}
+ \new Voice @{
+ \ManuelDeuxMusique
+ @}
>> % fin du contexte de la portée ManuelDeux
>> % fin du contexte PianoStaff
\new Staff = "PedalierOrgue" <<
- \TimeKey
+ \ArmureMetrique
\clef "bass"
- \new Voice @{ \PedalierOrgueMusique @}
+ \new Voice @{
+ \PedalierOrgueMusique
+ @}
>> % fin du contexte de la portée PedalOrgan
>>
@} % fin du contexte Score
title = "Jesu, meine Freude"
composer = "J S Bach"
}
-TimeKey = { \time 4/4 \key c \minor }
+keyTime = { \key c \minor \time 4/4 }
ManualOneVoiceOneMusic = \relative g' {
- g4 g f ees | d2 c2 |
+ g4 g f ees |
+ d2 c |
}
ManualOneVoiceTwoMusic = \relative c' {
ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
- c c4 b8 c8. g16 c b c d |
+ 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 |
- f ees f d g aes g f ees d e8~ ees16 f ees d |
+ 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" <<
- \TimeKey % set time signature and key
+ \keyTime % set key and time signature
\clef "treble"
- \new Voice { \voiceOne \ManualOneVoiceOneMusic }
- \new Voice { \voiceTwo \ManualOneVoiceTwoMusic }
+ \new Voice {
+ \voiceOne
+ \ManualOneVoiceOneMusic
+ }
+ \new Voice {
+ \voiceTwo
+ \ManualOneVoiceTwoMusic
+ }
>> % end ManualOne Staff context
- \new Staff = "ManualTwo" <<
- \TimeKey
+ \new Staff = "ManualTwo" \with {
+ \override VerticalAxisGroup
+ #'staff-staff-spacing #'stretchability = 5
+ } <<
+ \keyTime
\clef "bass"
- \new Voice { \ManualTwoMusic }
+ \new Voice {
+ \ManualTwoMusic
+ }
>> % end ManualTwo Staff context
>> % end PianoStaff context
\new Staff = "PedalOrgan" <<
- \TimeKey
+ \keyTime
\clef "bass"
- \new Voice { \PedalOrganMusic }
+ \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
@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
@c TODO Avoid padtext - not needed with skylining
@lilypond[quote,verbatim,ragged-right]
-dolce = \markup{ \italic \bold dolce }
+dolce = \markup { \italic \bold dolce }
+
padText = { \once \override TextScript #'padding = #5.0 }
-fthenp=_\markup{ \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p }
+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 |
c,4.\fthenp b8 c4 c-. |
}
}
+
\score {
{
\violin
}
-\layout{ragged-right=##t}
+ \layout { ragged-right = ##t }
}
@end lilypond
@example
violin = \relative c'' @{
\repeat volta 2 @{
- c4._\markup@{ \italic \bold dolce @} b8 a8 g a b |
+ 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-. |
+ 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=}.
+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
- #})
+#(define-music-function
+ (parser location padding)
+ (number?)
+ #{
+ \once \override TextScript #'padding = $padding
+ #})
\relative c''' {
- c4^"piu mosso" b a b
+ c4^"piu mosso" b a b |
\padText #1.8
- c4^"piu mosso" d e f
+ c4^"piu mosso" d e f |
\padText #2.6
- c4^"piu mosso" fis a g
+ c4^"piu mosso" fis a g |
}
@end lilypond
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
+@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 @code{.ly}.
@example
notesCor = \relative c @{
\time 2/4
- r4 f8 a cis4 f e d
+ r4 f8 a | cis4 f | e d |
@}
@end example
@noindent
-On établira alors une partie séparée en constituant un nouveau fichier@tie{}:
+On établira alors une partie séparée en constituant un nouveau
+fichier@tie{}:
@example
\include "musique-Cor.ly"
+
\header @{
instrument = "Cor en Fa"
@}
@noindent
sera substitué le contenu du fichier @code{musique-Cor.ly}, et de ce
fait la variable @code{notesCor} se trouvera définie. La commande
-@w{@code{\transpose f 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{}:
+@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
+ 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.
+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{}:
+Il faut pour cela définir la propriété @code{skipBars} à
+@qq{vrai}@tie{}:
@example
\set Score.skipBars = ##t
\transpose f c' \relative c {
\time 2/4
\set Score.skipBars = ##t
- R2*3
- r4 f8 a cis4 f e d
+ R2*3 |
+ r4 f8 a | cis4 f | e d |
}
@end lilypond
@lilypond[quote,ragged-right]
\relative c <<
\new Staff {
- \time 2/4 R2*3
- r4 f8 a cis4 f e d
+ \clef "treble"
+ \time 2/4
+ R2*3 |
+ r4 f8 a | cis4 f | e4 d |
}
\new Staff {
- \clef bass
- r4 d,8 f | gis4 c | b bes |
- a8 e f4 | g d | gis f
+ \clef "bass"
+ \time 2/4
+ r4 d,8 f | gis4 c | b4 bes |
+ a8 e f4 | g4 d | gis4 f |
}
>>
@end lilypond