\version "2.19.45" boring = \set Staff.keepAliveInterfaces = #'() tricky = \unset Staff.keepAliveInterfaces staffC = { \boring \repeat unfold 72 c''4 \tricky 1 \boring \repeat unfold 44 c''4 R1*10 } staffD = { \boring \repeat unfold 80 c'4 \tricky 1 \boring \repeat unfold 36 c'4 R1*10 } \score { << \new Staff \with { instrumentName = "Continuous" shortInstrumentName = "c" } { \repeat unfold 200 g'4 } \new StaffGroup \with { \consists Keep_alive_together_engraver } << \new Staff \with { keepAliveInterfaces = #'() instrumentName = "With group" shortInstrumentName = "w" \override VerticalAxisGroup.remove-empty = ##t \override VerticalAxisGroup.remove-first = ##t %%% uncomment for 0001-Keep-a-staff-alive-until-it-is-alone-in-the-group.patch %\override VerticalAxisGroup.remove-orphan = ##t %%% uncomment for 0001-Keep-a-staff-alive-with-multiple-layers.patch %\override VerticalAxisGroup.remove-layer = #'(#f) % lives with A and/or B %\override VerticalAxisGroup.remove-layer = #'(1) % lives with C and/or D %\override VerticalAxisGroup.remove-layer = #'(2) % lives with C+D %\override VerticalAxisGroup.remove-layer = #'(#f 1) % lives with A, B, C or D %\override VerticalAxisGroup.remove-layer = 1,2 % lives with C, D or C+D } { \repeat unfold 200 c''4 } \new Staff \with { instrumentName = "A" shortInstrumentName = "A" \override VerticalAxisGroup.remove-empty = ##t \override VerticalAxisGroup.remove-first = ##t \override VerticalAxisGroup.remove-layer = ##f } { \repeat unfold 20 c'4 R1*20 \repeat unfold 20 c'4 R1*20 } \new Staff \with { instrumentName = "B" shortInstrumentName = "B" \override VerticalAxisGroup.remove-empty = ##t \override VerticalAxisGroup.remove-first = ##t \override VerticalAxisGroup.remove-layer = ##f } { R1*10 \repeat unfold 40 c'4 \repeat unfold 40 c'4 R1*20 } \new Staff \with { instrumentName = "C" shortInstrumentName = "C" \override VerticalAxisGroup.remove-empty = ##t \override VerticalAxisGroup.remove-first = ##t \override VerticalAxisGroup.remove-layer = 1 } \staffC \new Staff \with { instrumentName = "D" shortInstrumentName = "D" \override VerticalAxisGroup.remove-empty = ##t \override VerticalAxisGroup.remove-first = ##t \override VerticalAxisGroup.remove-layer = 1 } \staffD \new Staff \with { instrumentName = "C plus D" shortInstrumentName = "C+D" %%% TODO: how to remove this staff when both C and D are rests %\override VerticalAxisGroup.remove-empty = ##t %\override VerticalAxisGroup.remove-first = ##t \override VerticalAxisGroup.remove-layer = 2 } << \staffC \\ \staffD >> >> >> }