[ << Interfaces para programadores ] | [Top][Contents][Index] | [ Interfaces de Scheme de LilyPond >> ] |
[ < Evaluación de contextos ] | [ Up : Contextos para programadores ] | [ Funciones de callback > ] |
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 o bien
\applyOutput Contexto proc
o bien
\applyOutput Context.Grob 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 (con el nombre del grob Grob si se
especifica) 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 (< (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 }
Para que función se interprete en los niveles de
Score
o de Staff
utilice estas formas:
\applyOutput Score… \applyOutput Staff…
[ << Interfaces para programadores ] | [Top][Contents][Index] | [ Interfaces de Scheme de LilyPond >> ] |
[ < Evaluación de contextos ] | [ Up : Contextos para programadores ] | [ Funciones de callback > ] |