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
\applyOutputest 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.