[ << Bases de notation musicale ] | [Top][Contents][Index] | [ Concepts fondamentaux >> ] |
[ < Dernières précisions ] | [ Up : Dernières précisions ] | [ Ajout de titres > ] |
3.4.1 Organisation du code source avec des variables
Lorsque l’on combine tous les éléments étudiés précédemment pour écrire des partitions plus longues, les expressions musicales prennent de l’ampleur et, dans le cas des pièces polyphoniques, deviennent profondément imbriquées, jusqu’au point où il devient difficile de se repérer dans le fichier source. Cet inconvénient peut être résolu par l’utilisation de variables.
En utilisant des variables, parfois appelées identificateurs ou macros, on peut scinder des expressions musicales complexes en des expressions plus simples. Une variable se définit comme suit :
musiqueToto = { … }
Le contenu de l’expression musicale musiqueToto
pourra être
utilisé plus loin en faisant précéder son nom d’un anti-slash,
c’est-à-dire \musiqueToto
, tout comme n’importe quelle commande
LilyPond. Toute variable doit être définie avant son
utilisation dans une autre expression musicale.
violin = \new Staff { \relative { a'4 b c b } } cello = \new Staff { \relative { \clef bass e2 d } } { << \violin \cello >> }
Par convention, un nom de variable ne comporte que des caractères alphabétiques non accentués, aucun nombre ni tiret. Pour de plus amples informations, voir Structure de fichier.
On peut utiliser une variable déjà définie autant de fois que l’on veut, y compris dans la définition d’une nouvelle variable ; par exemple, cela peut servir à saisir un motif qu’une seule fois, même s’il se répète un grand nombre de fois dans la pièce.
tripletA = \tuplet 3/2 { c,8 e g } barA = { \tripletA \tripletA \tripletA \tripletA } \relative c'' { \barA \barA }
Il est possible d’utiliser des variables de types variés. Par exemple,
maLargeur = 60 % un nombre transmis à une variable \paper % (unité = millimètre) monNom = "Wendy" % une chaîne transmise à un markup aCinqPapier = \paper { #(set-paper-size "a5") }
En fonction de son contenu, un identificateur peut être utilisé à différents endroits. L’exemple suivant utilise les variables définies ci-dessus.
\paper { \aFivePaper line-width = \maLargeur } { c4^\monNom }
[ << Bases de notation musicale ] | [Top][Contents][Index] | [ Concepts fondamentaux >> ] |
[ < Dernières précisions ] | [ Up : Dernières précisions ] | [ Ajout de titres > ] |