Previous: Context evaluation, Up: Contexts for programmers


12.5.2 Running a function on all layout objects

The most versatile way of tuning an object is \applyOutput. Its syntax is

\applyOutput context proc

where proc is a Scheme function, taking three arguments.

When interpreted, the function proc is called for every layout object found in the context context, with the following arguments:

In addition, the cause of the layout object, i.e., the music expression or object that was responsible for creating it, is in the object property cause. For example, for a note head, this is a NoteHead event, and for a Stem object, this is a NoteHead object.

Here is a function to use for \applyOutput; it blanks note-heads on the center-line:

(define (blanker grob grob-origin context)
 (if (and (memq (ly:grob-property grob 'interfaces)
                note-head-interface)
          (eq? (ly:grob-property grob 'staff-position) 0))
     (set! (ly:grob-property grob 'transparent) #t)))


Previous: Context evaluation, Up: Contexts for programmers

This page is for LilyPond-2.10.33 (stable-branch).

Report errors to http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.