lilypond-auto
[Top][All Lists]
Advanced

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

Re: [Lilypond-auto] Issue 3518 in lilypond: Support temporary divisi sta


From: lilypond
Subject: Re: [Lilypond-auto] Issue 3518 in lilypond: Support temporary divisi staves
Date: Wed, 28 Aug 2013 02:34:59 +0000

Updates:
        Owner: address@hidden

Comment #8 on issue 3518 by address@hidden: Support temporary divisi staves
http://code.google.com/p/lilypond/issues/detail?id=3518

this can't work perfectly due to the rigid structure of our backend.

Speak for yourself; LilyPond's back end had no difficulty considering several hypothetical line-breaking possibilities, and figuring which staves would be removed in each hypothetical case.

It's probably a good idea to actually read what you are replying to. The problem is _exactly_ that LilyPond considers several hypothetical _good_ line-breaking possibilities and figuring which staves would be removed in each hypothetical case. But the best solution will often be one where the line breaks would be _bad_ (with overfull lines) before removing the unnecessary staves and respacing without the need to align to the material in the now removed staves.

So we'll generally get looser spacing than optimum.

I see that you changed the issue to "Started" without declaring yourself to be an owner of the issue. I'm working on the issue, so I'm putting myself tentatively as the owner. That does not mean that either should stop working/thinking on the issue, just that it makes sense to communicate the progress one is making.

I've stated wanting to use the \addQuote mechanism, but quotes only pick off a single voice, and the not-complex-enough-to-need-divisi-staves passages might well be complex enough to need several voices. So that part of the implementation idea seems to be too restrictive.

The comment at the head of the regression test has now grown to be
% The divisi actions are multiple.  For one thing, the unisono events
% have to be diverted into the divisi staves without affecting their
% will to die without events on their own.  For another, the divisi
% staves have to be removed if empty, and the unisono staff must only
% survive if none of the divisi staves survive.

% to work with divisi, we work with a number of parallel staves, most
% of which will get removed.  One staff is the non-divisi staff which
% will get removed whenever the divisi staves don't survive.  Another
% staffgroup consists of the "true" divisi staves used for deciding
% when there is divisi material.  This group will _always_ be removed.
% They will collect the "items-worth-living" actually used for the
% decision of keeping or removing the divisi staff.  Finally, there is
% the actually typeset divisi StaffGroup that carries the same
% material as the non-divisi staff, properly formatted for use in
% divisi staves.

Most of that can be done by juggling material around in Scheme engravers. There probably will be the need to add a limited amount of code to hara-kiri-group-spanner.cc in order to access/generate the right termination conditions.

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings



reply via email to

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