lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Creating LilyPond Object Models


From: David Nalesnik
Subject: Re: Creating LilyPond Object Models
Date: Sun, 26 Apr 2015 12:56:22 -0500



On Sun, Apr 26, 2015 at 11:08 AM, Urs Liska <address@hidden> wrote:
 
Am 26.04.2015 um 17:16 schrieb Paul Morris:


but engravers can have both listeners and acknowledgers, and more than one of each.

You can also use an end-acknowledger to catch the end of a spanner.
 

It’s probably *very* rare that a user would ever need to create an engraver and need to know about listeners and acknowledgers.

But it's certainly helpful to know at least something so you don't have the sense that you're blindly filling in slots :)
 

For anyone wanting to go further there’s more that I don’t understand (initialize, start-translation-timestep, process-music, etc.), to quote from the doc string of the make-engraver macro at the bottom of scm/output-lib.scm:

Symbols mapping to a function would be @code{initialize},
@code{start-translation-timestep}, @code{process-music},
@code{process-acknowledged}, @code{stop-translation-timestep}, and
@code{finalize}.  Symbols mapping to another alist specified in the
same manner are @code{listeners} with the subordinate symbols being
event classes, and @code{acknowledgers} and @code{end-acknowledgers}
with the subordinate symbols being interfaces.”

There is some material about these "methods" from a C++ standpoint in the Contributor's Guide: http://lilypond.org/doc/v2.19/Documentation/contributor/engraver-tutorial 

Thanks!  This is all very useful.

David

reply via email to

[Prev in Thread] Current Thread [Next in Thread]