lilypond-devel
[Top][All Lists]
Advanced

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

Re: transition between full-length and shortened stems - please discuss


From: Han-Wen Nienhuys
Subject: Re: transition between full-length and shortened stems - please discuss
Date: Sun, 20 Feb 2011 23:07:27 -0300

2011/2/13 Janek Warchoł <address@hidden>:
> This is the first part of a series of changes to the stems and flags.
> The suggested change is small, but in my opinion important.
> Look at the attached "transition testing.pdf" - it illustrates the problem:
> the 'b' stem is definately too short (it should not end at the same level as
> the stem of the 'a' note), similarly the d stem is too short, and overall
> impression is "uneven" (the ends of the stems do not flow with the melody).
> Actually, the problem was already noticed and mentioned in our Essay:
>
> http://lilypond.org/doc/v2.13/Documentation/essay/automated-engraving#getting-things-right
> reads
>   "LilyPond (...) appears a bit too aggressive in shortening some of the
> stems"
> This is very easily fixed. We only have to discuss what output we want.
> I've prepared two possible solutions.
> Please download this archive: http://www.sendspace.com/file/ckg6md (300KB)
> and compare pdfs inside.
> The archive contains a very simple proof-sheet and two real-life examples,
> both from our essay. I've also included Baerenreiter engravings (also from
> our essay) for reference.
> Which option do you prefer?

This change is default over current lily, so let's put it in. I can't
discern any difference between your two options, and the beam-quanting
is likely to round away any differences.  Either way is fine for me,
but see below.

> First one has the advantage of being very simple, while the second may be
> more smooth to the eye (but the difference isn't really that big).
> I attach appropriate patches (they are really straightforward so i didn't
> upload them for review).

Can you make your code be less hardcoded?  I propose something like:

 factor = (1+abs(hp[dir])) / (2*staff_radius + 1)
 shorten *= min(factor, 1.0)

this way, it will work with other types of staves too. If you want to
be extra fancy, you could do

  factor = pow(factor, shorten_concavity)

for some number != 1 to tune shape of the transition.

-- 
Han-Wen Nienhuys - address@hidden - http://www.xs4all.nl/~hanwen



reply via email to

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