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

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 :

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
}

[image of music]

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.

LilyPond — Extension des fonctionnalités v2.17.97 (branche de développement).