Modification des propriétés d’objets particuliers

La commande \applyOutput permet de personnaliser n’importe quel objet de rendu. Elle requiert une fonction Scheme à trois arguments.

Dans l’exemple suivant, la fonction mc-squared est exécutée pour tous les objets NoteHead (au sein du contexte Voice en cours) à ce moment précis ; la fonction modifie le stencil de l’objet graphique à l’aide de la propriété staff-position pour remplacer certaines hauteurs par des markups.

De plus amples informations sont disponibles à la rubrique Application d’une fonction à tous les objets de mise en forme.

#(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.34 (development-branch).