lilypond-user
[Top][All Lists]
Advanced

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

Documentation: Software architecture overview and details?


From: Robert Kennedy
Subject: Documentation: Software architecture overview and details?
Date: Tue, 30 Jan 2007 21:55:04 -0800

I am a beginner at Lilypond, and I like it very much, but I am
struggling to understand how to use it. In this e-mail I am going to
ask for pointers to some documentation. I realize that some of it
might not exist -- I am familiar with how open source projects go,
and I understand and accept that these things are always works in
progress.

LP is a wonderful tool and I'm very happy with the output it's giving
me 99% of the time, but controlling the remaining 1% seems completely
beyond my reach because I haven't been able to find some important
pieces of documentation. I hope they already exist and I just haven't
been able to locate them.

Anyway, I don't mean to be complaining, even though it might sound
that way. I would just like to know how people (users and developers)
recommend I learn the information required to use this seemingly
excellent program.

I think most of my struggle is because I haven't found a document that
explains the flow of information through Lilypond. For example, I know
it's possible to embed TeX expressions, and I know it's possible to
embed scheme code. But nowhere have I found an explanation of the form
"First your Lilypond input file is translated into Scheme, and then
the resulting Scheme program is run to produce Tex output." I am left
to guess whether that's what happens, or if something completely
different happens. I am seeking a document that describes the overall
software architecture, first at a high level, and then with enough
detail to actually be useful.

There is lots of reference material on the individual interfaces and
objects, but I haven't found any explanation of what those things
actually are. Are they basic constructs that any scheme programmer
would instantly recognize? I am an experienced LISP programmer and an
experienced object-oriented programmer (C++, Python, Perl), so Scheme
and object orientation are not completely foreign to me. But I don't
have any clue about these aspects of Lilypond. The documentation gives
an explanation of what a CONS cell is in the "Scheme tutorial"
section, but am I then expected to jump from there to an understanding
of interfaces, grobs, properties, contexts, and objects? If we assume
someone needs an explanation of CONS cells, where is the document that
can help that person use that information to understand what the heck
is going on? Even though I already know what CONS cells are, I think
such a document would help me a great deal.

I have also not been able to find any systematic information about how
to debug Lilypond files. When I get output different from what I
expect, it seems the only thing I can do is write a message to this
list, and wait for a reply from a helpful wizard. I have been very
lucky that helpful wizards are plentiful and kind, but it would be
nice if there were a way for me to see the generated Scheme code (if
such a thing exists) so I could see, for example, why setting some
property will have no effect, and (hopefully) what different property
or object I should use instead. There must be a way better than
guessing. How can I learn about it?

Thanks in advance for any help!

        -- Robert Kennedy




reply via email to

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