Suivant : Feuilles de style, Précédent : Suggestions de saisie des fichiers LilyPond, Haut : Travailler sur des projets LilyPond
Jusqu'à maintenant, vous avez vu ce type de code :
hornNotes = \relative c'' { c4 b dis c } \score { { \hornNotes } }
Vous comprendrez combien cela peut être utile pour écrire de la musique minimaliste :
fragA = \relative c'' { a4 a8. b16 } fragB = \relative c'' { a8. gis16 ees4 } violin = \new Staff { \fragA \fragA \fragB \fragA } \score { { \violin } }
Cependant, vous pouvez aussi utiliser ces identificateurs — aussi connus sous le nom de variables, macros, ou commandes (définies par l'utilisateur) — pour des retouches :
dolce = \markup{ \italic \bold dolce } padText = { \once \override TextScript #'padding = #5.0 } 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 | \padText c4.^"hi there!" d8 e' f g d | c,4.\fthenp b8 c4 c-. | } } \score { { \violin } \layout{ragged-right=##t} }
Ces identificateurs sont évidemment utiles pour économiser de la frappe. Mais ils peuvent l'être même si vous ne les utilisez qu'une seule fois : ils réduisent la complexité. Regardons l'exemple précédent sans aucun identificateur. C'est beaucoup plus laborieux à lire, et particulièrement la dernière ligne.
violin = \relative c'' { \repeat volta 2 { 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-. | } }
Jusqu'ici nous avons vu des substitutions statiques : quand LilyPond
rencontre \padText
, il le remplace par le contenu que nous lui
avons défini — c'est-à-dire le contenu à droite de padText=
).
LilyPond gère également des substitutions non-statiques — vous pouvez les voir comme des fonctions.
padText = #(define-music-function (parser location padding) (number?) #{ \once \override TextScript #'padding = #$padding #}) \relative c''' { c4^"piu mosso" b a b \padText #1.8 c4^"piu mosso" d e f \padText #2.6 c4^"piu mosso" fis a g }
Utiliser les identificateurs est aussi un bon moyen pour vous épargner
du travail si la syntaxe de LilyPond change un jour — voir
Mettre à jour des anciens fichiers. Si vous avez une seule définition, par
exemple \dolce
, pour tous vos fichiers (voir Feuilles de style), et que la syntaxe change, alors vous n'aurez qu'à mettre à
jour votre seule définition \dolce
, au lieu de devoir modifier
chaque fichier .ly
.
Suivant : Feuilles de style, Précédent : Suggestions de saisie des fichiers LilyPond, Haut : Travailler sur des projets LilyPond
This page is for LilyPond-2.10.33 (stable-branch).
Other languages: English.