summaryrefslogtreecommitdiff
path: root/input
diff options
context:
space:
mode:
authorMark Knoop <mark@opus11.net>2016-09-08 18:56:16 +0100
committerJames Lowe <pkx166h@gmail.com>2016-09-08 18:56:40 +0100
commit5944d20489bb5b8e4c4907fa3b3bcae9ec275ccb (patch)
tree6ad0b84f5685085aab33faa42d43e4f26aff3d23 /input
parent93f3d637efbc038b837cf64fae0872e873e4f039 (diff)
Keep a staff alive with multiple layers
This allows the `VerticalAxisGroup.remove-layer' property to accept a list of values. The layer will stay alive with any other member of the Keep_alive_together_engrave group with a remove-layer value in that list. The principal reason for this patch was to allow the use of MarkLine contexts in a Frenched score, where the context should stay alive with any single staff in a StaffGroup. This implementation should also allow additional flexibility with ossia and divisi staves.
Diffstat (limited to 'input')
-rw-r--r--input/regression/remove-layer-symbol.ly65
1 files changed, 65 insertions, 0 deletions
diff --git a/input/regression/remove-layer-symbol.ly b/input/regression/remove-layer-symbol.ly
new file mode 100644
index 0000000000..d6fa93dcdd
--- /dev/null
+++ b/input/regression/remove-layer-symbol.ly
@@ -0,0 +1,65 @@
+\version "2.19.48"
+
+\header {
+ texidoc = "The @code{VerticalAxisGroup.remove-layer} property
+ can be used to keep staves alive with reference to other staves
+ in the @code{Keep_alive_together_engraver} group."
+}
+
+\layout {
+ indent = 40\mm
+ short-indent = 15\mm
+}
+
+\score {
+ <<
+ \new Staff \with {
+ instrumentName = "Continuous"
+ shortInstrumentName = "cont"
+ } { \repeat unfold 104 g'4 \bar "|." }
+ \new StaffGroup \with {
+ \consists Keep_alive_together_engraver
+ } <<
+ \new Staff \with {
+ keepAliveInterfaces = #'()
+ instrumentName = \markup \center-column { "Alive with A or B" }
+ shortInstrumentName = "with A or B"
+ \override VerticalAxisGroup.remove-empty = ##t
+ \override VerticalAxisGroup.remove-first = ##t
+ \override VerticalAxisGroup.remove-layer = #'any
+ } { \repeat unfold 104 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 16 c'4
+ R1*4
+ \repeat unfold 16 c'4
+ R1*14
+ }
+ \new Staff \with {
+ keepAliveInterfaces = #'()
+ instrumentName = \markup \center-column { "Alive with A" }
+ shortInstrumentName = "with A"
+ \override VerticalAxisGroup.remove-empty = ##t
+ \override VerticalAxisGroup.remove-first = ##t
+ \override VerticalAxisGroup.remove-layer = #'above
+ } { \repeat unfold 104 c''4 }
+ \new Staff \with {
+ instrumentName = "B"
+ shortInstrumentName = "B"
+ \override VerticalAxisGroup.remove-empty = ##t
+ \override VerticalAxisGroup.remove-first = ##t
+ \override VerticalAxisGroup.remove-layer = ##f
+ } {
+ R1*8
+ \repeat unfold 16 c'4
+ R1*13
+ c'1
+ }
+ >>
+ >>
+}