| [ << Ajustament de la sortida ] | [Part superior][Continguts][Índex][ ? ] | [ Plantilles >> ] | ||
| [ < Altres fonts d'informació ] | [ Amunt : Ajustaments addicionals ] | [ Plantilles > ] | ||
4.7.5 Ajustaments avançats amb l’Scheme
Tot i que és possible fer moltes coses amb les ordres
\override i \tweak, tenim una forma fins i tot més
poderosa de modificar el funcionament del LilyPond, a través d’una
interfície programable cap a les operacions internes del
LilyPond. Es pot incorporar codi escrit en el llenguatge de
programació Scheme, directament al mecanisme de funcionament del
LilyPond. Per suposat, per fer això calen almenys uns
coneixements bàsics de programació de l’Scheme, i donem una
instroducció al
Tutorial de l’Scheme.
Com a exemple que il·lustra una de les moltes possibilitats, enlloc de donar a una propietat un valor constant, es pot establir el resultat d’un procediment de l’Scheme que s’invoca cada cop que el LilyPond accedeix a aquesta propietat. La propietat es pot establir dinàmicament a un valor determinat pel procediment en el moment que s’invoca. En aquest exemple donem als caps de les notes un color que depèn de la seva posició dins del pentagrama.
#(define (color-notehead grob)
"Color the notehead according to its position on the staff."
(let ((mod-position (modulo (ly:grob-property grob 'staff-position)
7)))
(case mod-position
;; Return rainbow colors
((1) (x11-color 'red )) ; for C
((2) (x11-color 'orange )) ; for D
((3) (x11-color 'yellow )) ; for E
((4) (x11-color 'green )) ; for F
((5) (x11-color 'blue )) ; for G
((6) (x11-color 'purple )) ; for A
((0) (x11-color 'violet )) ; for B
)))
\relative {
% Arrange to obtain color from color-notehead procedure
\override NoteHead.color = #color-notehead
a2 b | c2 d | e2 f | g2 a |
}
Es poden trobar exemples addicionals que mostren la utilització d’aquestes interfícies programables a Funcions de callback.
| [ << Ajustament de la sortida ] | [Part superior][Continguts][Índex][ ? ] | [ Plantilles >> ] | ||
| [ < Altres fonts d'informació ] | [ Amunt : Ajustaments addicionals ] | [ Plantilles > ] | ||
Altres idiomes: English, česky, deutsch, español, français, italiano, 日本語, nederlands.
Quant a selecció automàtica de l'idioma.