bug-lilypond
[Top][All Lists]
Advanced

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

Re: Missing noteheads


From: Graham Percival
Subject: Re: Missing noteheads
Date: Tue, 26 Dec 2006 08:22:51 -0800
User-agent: Thunderbird 1.5.0.9 (Macintosh/20061207)

Thanks Mats, this has (finally) been entered as
http://code.google.com/p/lilypond/issues/detail?id=197

- Graham


Mats Bengtsson wrote:
You have certainly exposed a bug/inconsistency, but probably not
the one you thought that you found. I include a copy of this email to lilypond-bug.

First of all, the note heads and other symbols should certainly work in your first example. As far as I can see from your earlier emails, you have managed to get lilypond-book to work correctly with other files and if you use exactly
the same sequence of commands this time, you should get a correct output
also in this example.

Back to the bug. Your second example contains two \score{...} sections
(even though you haven't written them out explicitly). This doesn't work
in lilypond-book and if you really want two (or more) separate scores in
one and the same example, you should add a \book{...} around the full
example (then you also need to add the \score{...} statements explicitly).

The rest of my answer is mainly intended for bug-lilypond.
What happens in tiM's second example is a collision between two
different naming conventions:

A. When there is more then a single \score{...} block in a lilypond example
 within lilypond-book, the corresponding outputs are named
 <basename>{.eps,-systems.tex,-N.eps}
 <basename>-1{.eps,-systems.tex,-N.eps}
 <basename>-2{.eps,-systems.tex,-N.eps}
 ...
where the .eps file contains the full score and all fonts whereas the -N.eps files contain single score lines and no fonts (to avoid duplicating the same
 information several times in the PS file for the full document).
This is similar to the naming scheme obtained if you call LilyPond directly
 on a .ly file that contains several \book{...} blocks.

B. The score lines for each single score of a lilypond example in lilypond-book
 are named
 <basename>-1.eps
 <basename>-2.eps
 <basename>-3.eps
 ...

Clearly, these two naming schemes collide and the same file names will
appear several times. Since the score blocks are processed in sequential order, the <basename>-1.eps file with the first score line of the first score will be
overwritten by the full score of the second score and so on.

For example, the following snippet
\begin{lilypond}
 \score{\repeat unfold 4 {c'1 \break | }}
 \score{\repeat unfold 4 {d'1 \break | }}
 \score{\repeat unfold 4 {e'1 \break | }}
 \score{\repeat unfold 4 {f'1 \break | }}
\end{lilypond}
will result in
The full second \score{...} followed by
The full third \score{...} followed by
The full fourth \score{...} followed by
The last score line of the first score.

If we changed one of these naming schemes, for example using something else
then a '-' before the number, then the output from lilypond-book would at least contain the full first score while the rest of the scores would disappear, which at least is a simple rule that easily can be documented ("only the first \score{...} block will appear in the output"). Well, at second thought the message to be conveyed in the manual should anyway be "Use only a single \score{...} block
or combine everything into a single \book{...} block".

I've actually considered adding a 'book' or 'keep-together' option to lilypond-book
snippets, which adds the \book{...} block in the generated .ly file.

  /Mats

  /Mats


tiM wrote:

Hi, i think i found a very strange bug using lilypond-book. Now i'm just new at lilypond, but the inconsistency makes me think it's not my fault, still
i'm aware that it could well be me doing something wrong.

The following code leads to an output with missing noteheads and time
signature and fingering in courier new.

\begin{lilypond}
\relative c'{
\context RhythmicStaff {
 \override Staff.TimeSignature  #'style = #'()
 \time 4/4
g4_4 g_4 a_5 a_5 g2_4 e_2 }
}
\end{lilypond}

While the exact same code placed twice leads to the output I expected from
the input above.

\begin{lilypond}
\relative c'{
\context RhythmicStaff {
 \override Staff.TimeSignature  #'style = #'()
 \time 4/4
g4_4 g_4 a_5 a_5 g2_4 e_2 }
}
\relative c'{
\context RhythmicStaff {
 \override Staff.TimeSignature  #'style = #'()
 \time 4/4
g4_4 g_4 a_5 a_5 g2_4 e_2
}
}
\end{lilypond}

How is this possible?

Tnx. tiM



_______________________________________________
lilypond-user mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/lilypond-user






reply via email to

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