Urs Liska <li...@openlilylib.org> writes: > I'm wondering if there's any comprehensive write-up about the > components of make-engraver available anywhere. > > So far all my (rather few) engravers have been simply based on a > template provided by someone else, but I would be really glad to > become more independent about that. > > I understand that a (Scheme) engraver is a lambda function that is > passed a context, and that it (usually, always?) returns an object > created with (make-engraver). > > I further see that within make-engraver one defines a (subset of a) > number of different elements (initialize, process-music etc.) that > will then process the given context at different stages of the > compilation process. I have also read the docstring of make-engraver > in scm/output-lib.scm. > > However, it is still unclear to me what exactly the different elements > that can be defined in make-engraver are doing, in what order they are > called, which information they are passed and what the "results" of > these calls are. > > Rather than having to resort to browsing through the LSR and getting > the information by guessing from existing engravers I would really > like to see this properly explained somewhere, either in a > comprehensive tutorial or - better - in the official documentation. > > Did I just not find that or is that actually missing information?
It's not user-level documented information. Basically there is ly/event-listener.ly and input/regression/scheme-engraver.ly and input/regression/scheme-engraver-instance.ly for the Scheme level, well, examples (documentation would be a bit much to say). You'll likely find more useful information in the "Engraver tutorial" in the Contributor's guide. It's about C++ engravers but it's pretty straightforward to figure out which parts would correspond to Scheme engravers and which not (for example, ignore everything dealing with garbage collection). -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user