3.3.2 Différentes éditions à partir d’une même source
Différents mécanismes permettent de générer plusieurs versions d’une partition à partir d’une même source. Les variables – ou idendificateurs – sont sûrement le moyen le plus simple de combiner de différente manière des passages relativement longs, alors que les balises permettront de sélectionner de courts fragments selon leur utilisation. Quelle que soit la méthode utilisée, séparer la notation de la structure de la partition vous donnera plus de liberté dans l’agencement de l’ouvrage final, puisque vous ne reviendrez pas sur la musique qui le compose.
Utilisation de variables | ||
Utilisation de balises | ||
Globalisation des réglages |
Utilisation de variables
Un fragment musical identifié par une variable est réutilisable à divers endroits de la partition, comme nous l’avons vu à la rubrique Organisation du code source avec des variables. Par exemple, une partition pour chœur a cappella comporte souvent une réduction pour piano reprenant toutes les voix ; il s’agit de la même musique, et vous ne devrez donc la saisir qu’une seule fois. D’autre part, la musique issue de deux variables peut se combiner sur une seule portée, comme nous l’avons vu à la rubrique Regroupement automatique de parties. Prenons l’exemple suivant :
sopranoMusic = \relative c'' { a4 b c b8( a) } altoMusic = \relative g' { e4 e e f } tenorMusic = \relative c' { c4 b e d8( c) } bassMusic = \relative c' { a4 gis a d, } allLyrics = \lyricmode {King of glo -- ry } << \new Staff = "Soprano" \sopranoMusic \new Lyrics \allLyrics \new Staff = "Alto" \altoMusic \new Lyrics \allLyrics \new Staff = "Tenor" { \clef "treble_8" \tenorMusic } \new Lyrics \allLyrics \new Staff = "Bass" { \clef "bass" \bassMusic } \new Lyrics \allLyrics \new PianoStaff << \new Staff = "RH" { \set Staff.printPartCombineTexts = ##f \partcombine \sopranoMusic \altoMusic } \new Staff = "LH" { \set Staff.printPartCombineTexts = ##f \clef "bass" \partcombine \tenorMusic \bassMusic } >> >>
Générer une partition chorale ou la réduction pour piano ne requiert que de modifier la structure des éléments, sans aucunement toucher à la musique.
Dans le cas d’une partition relativement longue, vous pouvez isoler la définition des différentes variables dans des fichiers séparés que vous rappellerez ensuite, comme indiqué à la rubrique Insertion de fichiers LilyPond.
Utilisation de balises
La commande \tag #'partieA
affecte à une expression
musicale le nom partieA. Les expressions ainsi balisées pourront
être filtrées par la suite, à l’aide de
\keepWithTag #'nom
ou
\removeWithTag #'nom
. Ces filtres fonctionnent de la
manière suivante :
Filtre | Résultat |
---|---|
Musique balisée précédée de | Musique non balisée et musique balisée par nom seront incluses ; la musique balisée autrement est exclue. |
Musique balisée précédée de | Musique non balisée et fragments appelés autrement que nom seront inclus ; la musique balisée par nom est exclue. |
Musiqeu balisée non précédée de | Musique balisée et non balisée seront incluses. |
Les arguments des commandes \tag
, \keepWithTag
et
\removeWithTag
doivent être un symbole (tel que
#'conducteur
ou #'partie
), suivi d’une expression
musicale.
Dans l’exemple qui suit, nous obtenons deux versions du même extrait, l’une pour le conducteur, l’autre pour l’instrumentiste, et qui comportera les ornements développés.
music = \relative g' { g8. c32 d \tag #'trills { d8.\trill } \tag #'expand { \repeat unfold 3 { e32 d } } c32 d } \score { \keepWithTag #'trills \music } \score { \keepWithTag #'expand \music }
Il est parfois plus aisé d’exclure des fragments :
music = \relative g' { g8. c32 d \tag #'trills { d8.\trill } \tag #'expand {\repeat unfold 3 { e32 d } } c32 d } \score { \removeWithTag #'expand \music } \score { \removeWithTag #'trills \music }
Ce principe de filtrage peut s’appliquer aux articulations, textes, etc. Il suffit de positionner
-\tag #ma-balise
avant l’articulation ou le texte, comme ici :
c1-\tag #'doigt ^4 c1-\tag #'gaffe ^"Attention !"
Ceci définira une note avec une indication conditionnelle de doigté ou un texte.
Vous pouvez baliser différemment la même expression musicale en
saisissant plusieurs \tag
:
music = \relative c'' { \tag #'a \tag #'both { a4 a a a } \tag #'b \tag #'both { b4 b b b } } << \keepWithTag #'a \music \keepWithTag #'b \music \keepWithTag #'both \music >>
L’application concomitante de plusieurs filtres \removeWithTag
à
la même expression musicale permet d’exclure plusieurs balisages :
music = \relative c'' { \tag #'A { a4 a a a } \tag #'B { b4 b b b } \tag #'C { c4 c c c } \tag #'D { d4 d d d } } { \removeWithTag #'B \removeWithTag #'C \music }
L’application de plus d’un filtre \keepWithTag
à la même
expression musicale aboutit à l’exclusion de tous les balisages.
En effet, si le premier filtre exclut tous les autres balisages,
l’application du second exclura les effets du premier.
Voir aussi
Manuel d’initiation : Organisation du code source avec des variables.
Manuel de notation : Regroupement automatique de parties, Insertion de fichiers LilyPond.
Globalisation des réglages
Vous pouvez regrouper dans un fichier indépendant vos réglages personnels que vous incluerez au besoin :
lilypond -dinclude-settings=MES_REGLAGES.ly MA_PARTITION.ly
Vous pouvez ainsi stocker dans un fichier séparé vos réglages en matière de format de papier, de fontes utilisées ou vos définitions particulières. Selon le fichier de réglages que vous mentionnerez, vous obtiendrez facilement différentes éditions à partir d’une même source quelle qu’elle soit.
Ceete technique peut s’utiliser en combinaison avec des feuilles de styles, comme indiqué au chapitre Feuilles de style.
Voir aussi
Manuel d’initiation : Organisation du code source avec des variables, Feuilles de style.
Manuel de notation : Insertion de fichiers LilyPond.