[Top][All Lists]
[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)
- [Lilypond-auto] Issue 3014 in lilypond: Allow for non-continuing broken spanners,
lilypond <=