bug-lilypond
[Top][All Lists]
Advanced

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

Re: Oodles of bugs


From: Reinhold Kainhofer
Subject: Re: Oodles of bugs
Date: Sun, 9 Jan 2011 00:37:03 +0100
User-agent: KMail/1.13.5 (Linux/2.6.35-24-generic; KDE/4.5.4; i686; ; )

Am Samstag, 8. Januar 2011, um 23:30:21 schrieb David Kastrup:
> Reinhold Kainhofer <address@hidden> writes:
> > Am Samstag, 8. Januar 2011, um 22:25:51 schrieb David Kastrup:
> >> So what do we get?  The part combiner messes with the beaming in a
> >> manner that does not look like an improvement (arguably by design),
> > 
> > The "problem" with beaming is that the chord (<cis e>16) on the second
> > 8th of the third beat is placed in a different voice than the previous
> > eighth and the following 16th and 32th...
> > 
> > The part-combiner uses three different voices: One for combined
> > melodies (like a2, solo, solo 2 and chords), and two for separate
> > melodies.  As lilypond lacks any way for cross-voice
> > beaming/slurin/tieing, there is no chance to get what you want without
> > forcing the two voices to be apart for basically the whole measure
> 
> Or making the partcombiner refrain from splitting beam structures.

Actually, it's the other way round: the part-combiner has some code to prevent 
combining the voices if a manual beam, slur or tie (or even a hairpin) is 
active (and the ties/slurs of the two voices do not match exactly).

However, in your example code, you didn't specify any manual beams. So the 
part-combiner (which does it's job in a music function, so it is run looooong 
before the automatic beaming comes into play) does not know that a beam is 
active and the notes should be kepts together in the same voice. Instead, it 
freely distributes the notes to the combined voice for a single chord, thus 
breaking the automatic beaming later on. The part-combiner simply does not 
have any way to determine where automatic beams will appear.

As soon as you specify manual beams (i.e. force beams) in voice one, you get 
the desired output:
vi = \relative c'' { cis16 e g4 b,8 a[ e'16 fis32 g] ~ g16[ fis8 e16] }

Cheers,
Reinhold




-- 
------------------------------------------------------------------
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



reply via email to

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