2018-08-07 21:42 GMT+02:00 David Kastrup <d...@gnu.org>: > Thomas Morley <thomasmorle...@gmail.com> writes: > >> 2018-08-07 20:28 GMT+02:00 David Kastrup <d...@gnu.org>: >>> Thomas Morley <thomasmorle...@gmail.com> writes: >> >>>>> Ok, let me chime in: I've basically developed some of the low-level >>>>> mechanisms for divisi staves. >>>> >>>> You mean that 'make-dead-when stuff? >>> >>> Well, that's the internal part of the low end. But it's usually driven >>> by the remove-layer property. You are not actually using it? >> >> Nope. >> I'll have a closer look at it, though. > > Maybe it's a failure. It may well have problems scaling since it > creates a single hierarchy. I know that one tenet or inspiration for > that kind of numerical hierarchy was that it was reasonably certain to > avoid creating strange loops.
I've started trying to understand 'remove-layer by reading the IR, doc-strings and playing with /input/regression/divisi-staves.ly Afaik no further documentation exists. As mentioned earlier in this thread I think divisi-Staffs should be controled from inside themselves, not from the content for the single voices. Thus I changed the regtest like below. While it works starting with single Staffs, switching to divisi and back later, from a divisiVoice It fails the other way round, i.e. single Staffs are never printed. switchOff = \set Staff.keepAliveInterfaces = #'() switchOn = \unset Staff.keepAliveInterfaces violI=\relative d' { \repeat unfold 44 d4 <d g'>2 \repeat unfold 58 d4 \bar "|." } violII=\relative g { \repeat unfold 44 g4 <g d'>2 \repeat unfold 58 g4 \bar "|." } %% start with single Staffs, switch to divisi and back later tstI = { \switchOff \repeat unfold 44 s4 \switchOn s2 \switchOff \repeat unfold 58 s4 } %% start with divisi, switch to single Staffs and back later tstII = { \switchOn \repeat unfold 44 s4 \switchOff s2 \switchOn \repeat unfold 58 s4 } divisiVoiceI = \new Voice << \tstI \violII \violI >> divisiVoiceII = \new Voice << \tstII \violII \violI >> \score { \new StaffGroup \with { \consists "Keep_alive_together_engraver" } << \new Staff \with { instrumentName = "Violin I" shortInstrumentName = "V I" \RemoveAllEmptyStaves \override VerticalAxisGroup.remove-layer = 2 } \violI \new Staff \with { instrumentName = "Violin II" shortInstrumentName = "V II" \RemoveAllEmptyStaves \override VerticalAxisGroup.remove-layer = 2 } \violII \new Staff \with { instrumentName = "Violins" shortInstrumentName = "V I&II" \override VerticalAxisGroup.remove-layer = 1 \RemoveAllEmptyStaves } %% control divisi: %\divisiVoiceI \divisiVoiceII >> \layout { short-indent = 2\cm indent = 3\cm } } Am I doing something wrong? Cheers, Harm _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user