Previous: Context evaluation, Up: Contexts for programmers



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:

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.6 (stable-branch).

Report errors to <bug-lilypond@gnu.org>.