Hello, I'm learning more Scheme. (I think I'll be learning Scheme for a while.) I'm looking at the sample file scheme-engraver.ly and I have a few questions. I think I'm understanding the structure of the Scheme, it appears to be a list of Scheme pairs. Each pair (cons) has a symbol that starts with an apostrophe and a lambda function or a list of more pairs of lambda functions. I'm familiar with symbols in Ruby and I'm assuming they are similar in Scheme. The pairs correspond to a method or macro in a C++ engraver class. Examples would be:
C++: virtual void initialize () Scheme: (cons 'initialize (lambda (trans)...)) C++: IMPLEMENT_TRANSLATOR_LISTENER (Engraver_name, event_name) Scheme: (cons 'listeners (list (cons 'rest-event ...))) C++: DECLARE_ACKNOWLEDGER (note_head) Scheme: (cons 'acknowledgers (list (cons 'note-head-interface ...))) Am I on the right track up to this point? Next, we have many event points where we have different objects available and where we can do work. The question I have is where do I do what I want to do? Where can I get some documentation about what is the appropriate for each section? I also have the example for the ez-numbers-engraver where numbers are put in notehead. All that code is being done in the "(cons 'acknowledgers...)" section. I'm trying that and first task is the custom noteheads. I'm getting this to work, but I'm having trouble with the next piece of my puzzle. Here are some more basic questions. How do I detect the direction of the stem? Is it up or down? How do I get the string number? How do I get the duration of the note? Thanks for all the help. -Eric _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel