Modificación de propiedades para objetos gráficos individuales

La instrucción \applyOutput hace posible el ajuste fino de cualquier objeto de presentación, en cualquier contexto. Requiere una función de Scheme contres argumentos.

En el ejemplo de abajo, la función mc-squared se ejecuta para todos los objetos gráficos NoteHead (dentro del contexto Voice actual) en el punto temporal en curso; la función modifica el stencil o sello del objeto gráfico, usando la propiedad staff-position para sustituir ciertas alturas con elementos de marcado.

Consulte el ‘Manual de extensión del programa’ para más información.

#(define (mc-squared grob grob-origin context)
   (let ((sp (ly:grob-property grob 'staff-position)))
     (ly:grob-set-property!
      grob 'stencil
      (grob-interpret-markup grob
       #{ \markup \lower #0.5
           #(case sp
              ((-5) "m")
              ((-3) "c ")
              ((-2) #{ \markup \teeny \bold 2 #})
              (else "bla")) #}))))

\relative c' {
  <d f g b>2
  \applyOutput Voice.NoteHead #mc-squared
  <d f g b>2
}
[image of music]

LilyPond snippets v2.25.33 (development-branch).