"Keith OHara" <[email protected]> writes:
> I wasn't very clear with fragmented codereview comments below.
>
> There is one new problem, with slurs silently dropped in
> \partcombine {c''2^( d'')} {c'2( d')}
>
I used
{ \partcombine {c''2^( d'')} {c'2( d')} }
\layout {
\context {
\Voice
\consists
#(make-engraver
(listeners ((slur-event eng ev)
(format #t "~a:~a~a\n"
(ly:context-id (ly:translator-context eng))
(assoc-ref
'((-1 . "_") (1 . "^") (0 . "") (() . ""))
(ly:event-property ev 'direction))
(assoc-ref
'((-1 . "(") (1 . ")"))
(ly:event-property ev 'span-direction))))))
} }
to verify that the slurs arrive more or less as expected.
> The problem is avoided if get_property("direction") is replaced with
> get_pure_property(), but I don't like the idea of having even more
> code require understanding of "pure". Better might be to cache the
> first explicit direction on a slur-start-event this time-step.
Sounds quite like the easiest solution. A Drul array of booleans for
registering when an explicit direction has been seen. Or simply up_seen
and down_seen. Or something.
> Another solution is to do what version 2.14 did and ignore all but the
> first slur-start-event we see (but keep the new more intelligent
> filter for warnings).
That would mean that the direction of the resulting slur would depend on
the order of events, basically making it more random than desirable.
--
David Kastrup
_______________________________________________
lilypond-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-devel