2.8 Code Scheme intégré
À REVOIR : depuis la rédaction de cette section, LilyPond en est arrivé à un point tel que trouver un exemple simple où l’on se retrouve obligé d’en venir à utiliser du code Scheme devient chose ardue.
En attendant un remaniement de cette section, faisons comme si nous l’ignorions.
L’inconvénient principal de la commande \tweak
est la rigidité de
sa syntaxe. Par exemple, le code suivant produit une erreur de syntaxe
(du moins, c’était le cas auparavant).
F = \tweak font-size #-3 -\flageolet \relative c'' { c4^\F c4_\F }
C’est en se servant du langage Scheme que l’on peut résoudre ce
problème. Dans cet exemple, on a recours aux méthodes décrites dans
Ajout d’articulation à des notes (exemple), en
particulier quant à l’emploi de \displayMusic
.
F = #(let ((m (make-music 'ArticulationEvent 'articulation-type "flageolet"))) (set! (ly:music-property m 'tweaks) (acons 'font-size -3 (ly:music-property m 'tweaks))) m) \relative c'' { c4^\F c4_\F }
Ici les propriétés tweak
de l’objet flageolet nommé
‘m’ (créé au moyen de make-music
) sont extraites par
ly:music-property
, une nouvelle valeur de la taille de fonte
est ajoutée à la liste de ses propriétés (grâce à la fonction Scheme
acons
), et le résultat de cette opération est renvoyé par
set!
. Le dernier élément, dans ce bloc let
, est la valeur
finale de ‘m’ lui-même.
Autres langues : English, deutsch, español.
About automatic language selection.