lilypond-devel
[Top][All Lists]
Advanced

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

Scheme engraver structure questions


From: Eric Knapp
Subject: Scheme engraver structure questions
Date: Wed, 3 Feb 2010 20:50:31 -0600

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




reply via email to

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