Hi Jeffrey, I'm copying this to the list since I myself am not sure about something here.
On Sat, Dec 8, 2012 at 5:13 AM, Jeffrey Trevino <jeffrey.trevi...@gmail.com> wrote: > Hi David, > > Thanks for revising this more for me. I really appreciate your efforts, and > I will take a look at this asap and write back. For my learning, could you > please explain what exactly you changed between versions 4 and 5 that got it > working in parallel? > Well, I must say that I was a bit mystified by this, and I don't understand why the original form wouldn't work on multiple staves. I spent a good deal of time trying to figure out the sequence of the various "methods" within the engraver--i.e., when is "process-music" called in relation to "listeners" and "acknowledgers". The order these methods appear is not necessarily the order in which they are called in a timestep, and a method may be called more than once within a single timestep--process-music, for example. You have to understand the sequence to know what information you have to work with at any given time. (For example, process-music will be called in a timestep before any grobs are "acknowledged" and afterwards as well. Trying to work with grobs that aren't there yet necessitates some sort of check, so you don't get errors.) I don't see any problem with the engraver here. I did notice something which I can't account for. You'll notice that `frameEngraver4.ly' uses a variable "event-drul". When a frame-event is heard (created by \frameStart/\frameEnd), that event is stored in this variable. I then use the contents of this variable to determine what to do: start a frame, end a frame, create a stub (for spacing) at the beginning, create a stub at the end. This doesn't work here, and I don't know why. The version of the engraver I last sent you substitutes a system of setting variables called "stop?" and "go?" to control the steps. It works. BUT... when you substitute the earlier method, it doesn't work. I've attached this simple substitution so you can see what I mean. (The "ignoring weird minimum distance" stems from the fact that a FrameStub has nothing in its 'elements array--it should contain the last grobs within the frame--this info is used for assessing its dimensions). [If anyone reading this knows how to get the event-storing method how to work, please let me know. This seems to be a better technique.] I hope this is useful... -David
frameEngraver_why_wont_this_work.ly
Description: Binary data
_______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel