Status: Accepted
Owner: ----
Labels: Type-Enhancement

New issue 3014 by [email protected]: Allow for non-continuing broken spanners
http://code.google.com/p/lilypond/issues/detail?id=3014

Ben Rudiak-Gould requested a feature here:
http://lists.gnu.org/archive/html/bug-lilypond/2012-12/msg00023.html

From Ben's post:

(quote)

I'd like to set rounds/catches in a part-parallel format, as seen
here, for example:

    http://hdl.handle.net/2027/wu.89008759938?urlappend=%3Bseq=81

This format is standard in books of rounds/catches at least back to
the 1800s, and it has obvious advantages (essentially the same as the
advantages of publishing anything in this format) so I think it's
worth adding support to LilyPond.

The difficulty is that sometimes slurs and other spanners extend
across part boundaries. There's no way to tell LilyPond that a spanner
started in one voice ends in another (and at an earlier time).

(unquote)

In response to Ben's request for advice Mike Solomon contributed some design ideas here:

http://lists.gnu.org/archive/html/bug-lilypond/2012-12/msg00030.html

(quote)

What would be awesome is to find a generic way to implement this for all =
spanners.  The idea may go as such :

1) Create an engraver "Broken_spanner_engraver".
2) The engraver will read a context property breakSpannerAtColumn which =
will have LEFT, RIGHT, or #f. LEFT means that the spanner ends at the =
note, RIGHT means it begins there, and #f means that it is just a normal =
spanner. If set to LEFT or RIGHT, the grob property "break-at-column" =
will be set to either LEFT or RIGHT and the correct =
NonMusicalPaperColumn will be assigned as the bound.
3) When NonMusicalPaperColumns are broken, we'll have to make sure that =
the correct broken version is chosen (if making a custom engraver, this =
is the only part that'd need to be done outside of the engraver and in a =
property callback).
4) After this, everything should be automatic - every spanner that I =
know of can treat a NonMusicalPaperColumn as a bound.

This can be done either as an advanced hack or a feature.  As it'd add a =
grob property, probably better to do it as a feature.  I'll be able to =
work on it in 2026 - if someone wants it done before then, I can give =
pointers!

Cheers,
MS=
(unquote)




Reply via email to