#### C.3.2 Running a function on all layout objects

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

         \applyoutput 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, with the following arguments:

- the layout object itself,
- the context where the layout object was created, and
- the context where `\applyoutput` is processed.

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)))

Read comments on this page, or add one. This page is for LilyPond-2.2.5 (stable-branch).