2.6.2 Application d’une fonction à tous les objets de mise en forme
La manière la plus souple d’affiner un objet consiste à utiliser la
commande \applyOutput
. Celle-ci va insérer un événement
(
ApplyOutputEvent) dans le contexte spécifié. Elle répond
à la syntaxe
\applyOutput Contexte procédure
où procédure
est une fonction Scheme à trois arguments.
Lors de l’interprétation de cette commande, la fonction
procédure
est appelée pout tout objet de rendu appartenant
au contexte Contexte
à cet instant précis, avec les
arguments suivants :
- l’objet de rendu en lui-même,
- le contexte au sein duquel cet objet est créé,
- et le contexte dans lequel
\applyOutput
est effectué.
De plus, ce qui est à l’origine de l’objet de rendu – l’expression
musicale ou l’objet qui l’a générée – se retrouve en tant que propriété
d’objet cause
. Il s’agit, pour une tête de note, d’un événement
NoteHead, et d’un objet
Stem pour une hampe.
Voici une fonction utilisable avec la commande
\applyOutput
: elle « blanchit » la tête des notes se
trouvant sur la ligne médiane ou bien directement à son contact.
#(define (blanker grob grob-origin context) (if (and (memq 'note-head-interface (ly:grob-interfaces grob)) (< (abs (ly:grob-property grob 'staff-position)) 2)) (set! (ly:grob-property grob 'transparent) #t))) \relative c' { a'4 e8 <<\applyOutput #'Voice #blanker a c d>> b2 }
La procédure sera interprétée au niveau Score
(partition) ou Staff
dès lors que vous utiliserez l’une des
syntaxes
\applyOutput #'Score #procédure \applyOutput #'Staff #procédure
Autres langues : English, deutsch, español.
About automatic language selection.