B.6.2 Ejecutar una función sobre todos los objetos de la presentación
La manera más versátil de realizar el ajuste fino de un objeto es
\applyOutput
, que
funciona insertando un evento dentro del contexto especificado
(
ApplyOutputEvent). Su sintaxis es
\applyOutput Contexto proc
donde proc
es una función de Scheme que toma tres argumentos.
Al interpretarse, la función proc
se llama para cada objeto de
presentación que se encuentra en el contexto Contexto
en el tiempo actual, con los siguientes argumentos:
- el propio objeto de presentación,
- el contexto en que se creó el objeto de presentación, y
- el contexto en que se procesa
\applyOutput
.
Además, la causa del objeto de presentación, es decir el objeto o
expresión musical que es responsable de haberlo creado, está en la
propiedad cause
del objeto. Por ejemplo, para la cabeza de una
nota, éste es un evento
NoteHead, y para un objeto
plica, éste es un objeto
Stem.
He aquí una función que usar para \applyOutput
; borra las
cabezas de las notas que están sobre la línea central y junto a ella:
#(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 }
Para que función se interprete en los niveles de Score
o de Staff
utilice estas formas:
\applyOutput #'Score #función \applyOutput #'Staff #función
Otros idiomas: English, deutsch, français.
Acerca de la selección automática del idioma.