I mean (sorry for the typo): if a spanner stops at the start of a new
partCombine mode.
Rutger
On 8/6/20 10:11 PM, Rutger Hofman wrote:
I think you have stumbled into one of the (many) limitations of
partCombine; it routinely messes up if a spanner stops at the end of a
new partCombine mode. The problem is that these mode changes
(partCombine "Chords" mode to partCombine "Apart" mode at bar 3, and
back to partCombine "Chords" mode at bar 4) are implicit, and I haven't
found a way to insert an extra explicit spanner end token (like \! for
hairpins, or \stopTrillSpan for trills, etc. etc.).
However, in this case, it happens to be easy to fix by surrounding the
second line of instOne with \partCombineApart .... \partCombineAutomatic:
instOne = \relative {
a'1 | a | a |
\partCombineApart a1 \startTrillSpan | a1 \stopTrillSpan |
\partCombineAutomatic a | a | a | a | a | a | a |
}
If such a fix doesn't exist, one can revert to PMPChords and PMPApart as
in my tutorial. These do allow insertion of an explicit spanner end token.
Rutger
P.S. When you wrote 'Vaughan', did you actually mean 'Rutger'?
On 8/6/20 7:11 PM, David Sumbler wrote:
\version "2.21.2"
instOne = \relative {
a'1 | a | a |
a1 \startTrillSpan | a1 \stopTrillSpan |
a | a | a | a | a | a | a |
}
instTwo = \relative {
f'1 | f | f |
f2 \startTrillSpan f2 \startTrillSpan | f1 \stopTrillSpan |
f | f | f | f | f | f | f |
}
targetStaff = #(define-scheme-function (ctx) (string?)
#{
\set Staff.keepAliveInterfaces = #'()
\context Staff = #ctx { \unset Staff.keepAliveInterfaces }
#})
instScorePlan = {
\targetStaff clarinetI s1*4
\targetStaff bothClarinets s1*3
\break s1*5 \break s1*5
}
\score {
\new StaffGroup \with {
\consists "Keep_alive_together_engraver" }
<<
\new Staff = bothClarinets \with {
\RemoveAllEmptyStaves
\override VerticalAxisGroup.remove-layer = 40 }
<< \partCombine \instOne \instTwo \instScorePlan >>
%% Clarinets on 2 staves:
\new Staff = clarinetI \with {
\RemoveAllEmptyStaves
\override VerticalAxisGroup.remove-layer = 20 }
<< \instOne \instScorePlan >>
\new Staff = clarinetII \with {
\RemoveAllEmptyStaves
\override VerticalAxisGroup.remove-layer = 20 }
<< \instTwo \instScorePlan >>
>>
}