[Top][All Lists]

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


From: Bastiaan Zapf
Subject: Documentation?
Date: Sun, 06 Feb 2005 17:35:58 +0100
User-agent: Mozilla Thunderbird 0.9 (X11/20041124)

Dear Lilypond developers,

although being a novice to lilypond (but not to programming at all), I tried to typeset some rather stupid Music examples (In fact it was about notes being composited sequentially or in parallel) in LP (version 2.2.6 - because this was default for my installation)

First I noted that Lilypond seemed to always extend a line to the whole paper width, no matter how few notes there were on it. While maybe common in the engraver scene, this striked me as bizarre, but i got rid of that with something like:

   \paper { linewidth = 21.\mm }

Of course I did NOT find that command inside the documentation, the only thing which comes close was:

               #(set-paper-size "a4")

which has a different (but nevertheless bizarre syntax). Linewidth is mentioned in the "Page Layout" paragraph too, but I did not find a link to where "linewidth = 21.\mm" (or any assignment of any variable) would be allowed, or why I would need to put a period and a backslash between "21" and "mm". I still don't know. I have assumptions, but I'm scared about conjuring evil spirits when writing them down.

Now my lines were short and pretty. At some point the following thought crossed my mind: "Why dont you just leave out the clef and time indications?" because these were pretty large and taking up about 3/4 of the line (yes i did also want to typeset a single note). While i did recognize that this request might be unusual, I did not in my wildest dreams imagine that it might be THAT unusual.

After about 2 hours of guessing, cursing, trying again, googling, I came up with:

   \paper { linewidth = 21.\mm
        \context {
            \remove Time_signature_engraver
            \remove Clef_engraver
            \remove Bar_engraver
        \context {
            \remove Bar_number_engraver

which does the job. But:


\context is in the documentation index. It is linked to:
where it is not mentioned.


StaffContext and ScoreContext are not mentioned at all. I had to find these Identifiers through psychic means.


While Time_signature_engraver is mentioned somewhere ( It is not mentioned that it can be "remove"d. Again, it is not mentioned where or inside what command that would be deemed appropriate. To this instant, I do not know why one should \remove something that one could assign a "null" value to (not that i knew the name of the null value in LP, or how to assign anything to an engraver)


While the documentation explains in detail the different sorts of clefs (and similar glyphs), it does not mention how NOT to print a clef (or similar glyphs). While greatly appreciating adhering to musical standards, as a programmer i do not know why there is not an easy way to switch off a certain feature.

I would have greatly appreciated a documentation that would have hinted me at certain features, and especially at the syntax demands of LP, which seem to be a issue for itself. For example, questions that came to my mind were:

1. what variables are there?
2. how can i influence them?
2b. what is the exact (the EXACT) syntax of variable names, assignment commands, values (numbers, numbers with units, strings, null values, enumerations,....)
3. where are those commands allowed?
4. why is there not a "none" setting for things that can be printed in different ways? 5. there are various scheme snippets in the documentation. Where would I be allowed to talk scheme, and where not? Can i just abandon all the wacky .ly file syntax and write scheme?

And, just about any error in the source code (like 2b errors - very annoying) seems to be reported as invalid bracing as in:

/home/basti/tmr/ Warnung: Klammern passen nicht zueinander:
    e {

upon writing \ScoreContet instead of \ScoreContext

(the error is translated, meaning: Warning: Braces don't fit)

Of course the real error is mentioned further up, but i dont know if reporting a missing brace everytimes (while maybe true from a parser standpoint) is helpful.

Anyways, at least i worked it out now. And, Lilypond prints beautiful score. Good job done on that part! < this is where i found a source that did what i wanted. You should include this Manipulation in your documentation.

    Bastiaan Zapf

reply via email to

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