lilypond-auto
[Top][All Lists]
Advanced

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

[Lilypond-auto] Issue 3014 in lilypond: Allow for non-continuing broken


From: lilypond
Subject: [Lilypond-auto] Issue 3014 in lilypond: Allow for non-continuing broken spanners
Date: Tue, 11 Dec 2012 22:38:25 +0000

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

New issue 3014 by address@hidden: 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

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