lilypond-devel
[Top][All Lists]
Advanced

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

Re: Help with Scheme engraver please


From: Trevor Daniels
Subject: Re: Help with Scheme engraver please
Date: Wed, 24 Aug 2016 10:51:26 +0100

David Kastrup wrote Wednesday, August 24, 2016 7:48 AM


> "Trevor Daniels" <address@hidden> writes:
> 
>> Prompted by the recent discussion on lute tablature, I tried coding a
>> Scheme engraver to create the duration grobs but quickly ran into a
>> problem.  I need to collect information from both a Listener and an
>> Acknowledger so the obvious place to build the grob is in
>> stop-translator-timestep,
> 
> No, no, no.  stop-translator-timestep really is only for cleanup work.
> Stuff is no longer in working order then.  You want process-acknowledged
> here I think.
> 
> There will always be a call to process-acknowledged whenever grobs have
> been created, and _reading_ stuff from grobs should be delayed until
> then since other acknowledgers might _write_ stuff into a grob even
> after your personal acknowledger has been called.  So the basic workflow
> is to use the various acknowledgers to _record_ the grobs you are
> interested in and _write_ stuff into them (or do read/write stuff that
> more or less is accumulative and/or really unrelated to other
> engravers), and then use the process-acknowledged hook for processing
> (including _reading_) the grobs you had recorded.
> 
> You can create new grobs in process-acknowledged.  That will lead to a
> new cycle of acknowledger calls followed by process-acknowledged.  Only
> when all those cycles are over is stop-translator-timestep called, and
> then creating grobs is no longer an option.

Thanks David.  That's beautifully clear, and much better than the rather
terse sentence in the CG which misled me:

"If useful things are to be done to the acknowledged grobs, this should be 
deferred until all the acknowledging has finished, i.e., store the acknowledged 
grobs and process the information in a process-acknowledged () or 
stop-translation-timestep () function."

I took what appeared to be the stop-translation-timestep option.

I'll take a time-out and prepare a patch for the CG based on your mail.

Trevor

reply via email to

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