B.6.2 Execució d’una funció sobre tots els objectes de la presentació

La manera més versàtil de realitzar l’ajust fi d’un objecte és \applyOutput, que funciona inserint un esdeveniment del context especificat (ApplyOutputEvent). La seva sintaxi és o bé

\applyOutput Contexto proc

o bé

\applyOutput Context.Grob proc

donde proc és una funció de l’Scheme que agafa tres arguments.

En interpretar-se, la funció proc es crida per a cada objecte de presentació (amb el nom de grob Grob si s’especifica) que est troba al context Context al temps actual, amb els següents arguments:

A més, la causa de l’objecte de presentació, és a dir l’objecte o expressió musical que és responsable d’haver-ho creat, està a la propietat cause de l’objecte. Per exemple, per al cap d’una nota, aquest és un esdeveniment NoteHead, y per a un objecte plica, aquest és un objecte Stem.

Vet aquí una funció a usar per a \applyOutput; esborra els caps de les notes que estan sobre la línia central i junt a ella:

#(define (blanker grob grob-origin context)
   (if (< (abs (ly:grob-property grob 'staff-position)) 2)
       (set! (ly:grob-property grob 'transparent) #t)))

\relative {
  a'4 e8 <<\applyOutput Voice.NoteHead #blanker a c d>> b2
}
[image of music]

Perquè funció s’interpreti en els nivells de Score o de Staff utilitzeu aquestes formes:

\applyOutput Score…
\applyOutput Staff…

Extender LilyPond v2.25.28 (development-branch).