lilypond-devel
[Top][All Lists]
Advanced

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

Re: proposed enhancement to vertical stretching logic


From: Joe Neeman
Subject: Re: proposed enhancement to vertical stretching logic
Date: Wed, 25 Jun 2008 10:48:22 +0200

On Wed, Jun 25, 2008 at 7:03 AM, Andrew Hawryluk <address@hidden> wrote:
Reinhold started a recent thread on -user about some problems with the
current vertical spacing behaviour, particularly when stretching large
systems to fill a page:
http://lists.gnu.org/archive/html/lilypond-user/2008-06/msg00309.html

To summarize, vertical stretching should be smart enough to add extra
space where it is needed most rather than equally distributing it
between all the staves.

After giving it some thought, I believe that the desired behaviour can
be achieved by a system of 'pre-stretched' springs. Since I'm not
fluent enough in LP internals to send it as C++, it's in English &
pseudocode. It's too big for the email attachment limit, so I have
posted it here:
http://www.musicbyandrew.ca/springs.pdf

Thanks for the detailed description. I have had a short look and will have a longer one once I have access to a printer (I hate trying to read things like this on-screen). However, I think that LilyPond´s spring algorithms are already close to the ones you are describing. Have a look in simple-spacer.cc -- it is reasonably self-contained. Unfortunately, these spring algorithms aren´t used in the vertical stretching step, which is completely naive; they are only used in horizontal and vertical spacing (ie. between systems, not within them). Also, our springs have an ideal length as well as parallel (and even overlapping) rods. This allows us to express the fact that the "best" spacing (ie. the one with the least force) is not necessarily the closest spacing.

Joe



reply via email to

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