Guide, node Updating translation committishes..
@end ignore
-@c \version "2.19.22"
+@c \version "2.19.24"
@node Interfaces for programmers
@chapter Interfaces for programmers
@multitable @columnfractions .33 .66
@item @code{@var{argN}}
-@tab @var{n}th argument
+@tab @var{n}th argument.
@item @code{@var{typeN?}}
-@tab a Scheme @emph{type predicate} for which @code{@var{argN}}
+@tab A Scheme @emph{type predicate} for which @code{@var{argN}}
must return @code{#t}. There is also a special form
@code{(@emph{predicate?} @emph{default})} for specifying optional
arguments. If the actual argument is missing when the function is being
@item
When a music function (as opposed to an event function) returns an
expression of type post-event, LilyPond requires one of the named
-direction indicators (@code{-}, @code{^}, @w{and @code{_}})) in order to
+direction indicators (@code{-}, @code{^}, @w{and @code{_}}) in order to
properly integrate the post-event produced by the music function call
into the surrounding expression.
The most versatile way of tuning an object is @code{\applyOutput} which
works by inserting an event into the specified context
-(@rinternals{ApplyOutputEvent}). Its syntax is
+(@rinternals{ApplyOutputEvent}). Its syntax is either
@example
\applyOutput @var{Context} @var{proc}
@end example
+or
+@example
+\applyOutput @var{Context}.@var{Grob} @var{proc}
+@end example
@noindent
where @code{@var{proc}} is a Scheme function, taking three arguments.
When interpreted, the function @code{@var{proc}} is called for
-every layout object found in the context @code{@var{Context}} at
-the current time step, with the following arguments:
+every layout object (with grob name @var{Grob} if specified) found
+in the context @code{@var{Context}} at the current time step, with
+the following arguments:
@itemize
@item the layout object itself,
@item the context where the layout object was created, and
@lilypond[quote,verbatim,ragged-right]
#(define (blanker grob grob-origin context)
- (if (and (memq 'note-head-interface (ly:grob-interfaces grob))
- (< (abs (ly:grob-property grob 'staff-position)) 2))
+ (if (< (abs (ly:grob-property grob 'staff-position)) 2)
(set! (ly:grob-property grob 'transparent) #t)))
\relative {
- a'4 e8 <<\applyOutput #'Voice #blanker a c d>> b2
+ a'4 e8 <<\applyOutput Voice.NoteHead #blanker a c d>> b2
}
@end lilypond
level use these forms
@example
-\applyOutput #'Score #@var{function}
-\applyOutput #'Staff #@var{function}
+\applyOutput Score@dots{}
+\applyOutput Staff@dots{}
@end example
\override Stem.thickness = #2.0
@end example
-Properties can also be set to a Scheme procedure,
+Properties can also be set to a Scheme procedure:
@lilypond[fragment,verbatim,quote]
\override Stem.thickness = #(lambda (grob)