Running a function on all layout objects - GNU LilyPond
Description: GNU LilyPond

Previous: Context evaluation, Up: Contexts for programmers

#### 11.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)))

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

Other languages: English.
Using automatic language selection.