bug-lilypond
[Top][All Lists]
Advanced

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

Re: Partcombine


From: Reinhold Kainhofer
Subject: Re: Partcombine
Date: Wed, 1 Jun 2011 13:04:08 +0200
User-agent: KMail/1.13.6 (Linux/2.6.38-8-generic; KDE/4.6.2; i686; ; )

Am Dienstag, 31. Mai 2011, 22:18:49 schrieb Nels Daily:
> > I'm not top posting.
> 
> "Partcombine" function will not show the second voice in measure 11.
> Here's the code:

That's a bug in the partcombiner (one of many...). I think a bug report is 
suitable so that it doesn't get lost. 

Attached is a stripped down example.

A short analysis of the bug:

The disappearing notes start after a multi-measure rest, which did start 
earlier than a multi-measure rest in the first voice. The part-combiner walks 
through the score as following:
1) In the first measure, only mI is playing, so it starts a solo (mII has a 
multi-measure rest) and uses only the music events from mI
2) In the second measure both voices have a multi-measure rest, the solo of mI 
has ended. As mII has a multi-measure rest already going on, the part-combiner 
needs to take the multi-measure rest from mI (the part-combiner is not able to 
split up a multi-measure rest!)
3) In the third measure, mII has a rest, so the first quarter is still detected 
as unisilence (thus the rest from mI is still used). Now, as there is already 
a whole measure rest going on, lilypond ignores the following notes.


Note that there are some other bugs in the part-combiner that can be seen with 
this example:

-) If one replaces the r4 with a b4 in measure 3, then the notes are displayed 
(marked as "Solo II", but the whole-measure rest from mI is displayed, too.
-) If one adds a measure "c1" to both voices, the "r4" in mI is wrongly 
printed as a full-measure rest (rests in unisilence are taken from the second 
voice, unless voice one had a solo ending before the rest, like in the 
original example)
-) If one adds any note after the "R1*2" in mI, then the notes are correctly 
printe.



As Xavier already mentioned, there is a workaround to force the partcombiner 
to use a particular combining strategy. (Also note that the first quarter eight 
rest in the third measure of your original example is printed as if there were 
two voices present... Also in this case you need to tell the part-combiner 
that the rest should be a solo, too. Don't worry, the "Solo" text will still 
be printed on the first note, not on the rest).

Cheers,
Reinhold

> \version "2.13.63-1"  % necessary for upgrading to future LilyPond
> versions.
> 
> hornthree = \relative c' {
> \time 2/4
>       R2*2 r8 e16 r r8 e16 r r8 cis16 r r8 e16 r
> R2*2 r8 e16 r r8 e16 r r8 d16 r r8 e16 r R2*6
> }
> 
> hornfour = \relative c' {
> \time 2/4
>       R2*10
> %% These notes don't appear!!! %%
> r8 b~ b b~ b b~ b b~ b b~ b b~ b b~ b b
> }
> 
> \score {
> 
>               << {
>                       \partcombine \hornthree \hornfour
>               } >>
> 
> }
> 
> 
> _______________________________________________
> bug-lilypond mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/bug-lilypond


-- 
------------------------------------------------------------------
Reinhold Kainhofer, address@hidden, http://reinhold.kainhofer.com/
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * LilyPond, Music typesetting, http://www.lilypond.org

Attachment: pc.pdf
Description: Adobe PDF document

Attachment: pc.ly
Description: Text Data


reply via email to

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