summaryrefslogtreecommitdiff
path: root/ly
diff options
context:
space:
mode:
authorTrevor Daniels <t.daniels@treda.co.uk>2015-03-15 14:04:52 +0000
committerTrevor Daniels <t.daniels@treda.co.uk>2015-03-22 19:48:35 +0000
commitaf709b0a29faa38843c480d03a1d490b2a03c20e (patch)
tree2f4860e56e1667712685b680d54be01cb16a7934 /ly
parentdc612d0a8ce95d5de2afca4632d71e9f85057590 (diff)
Doc: Issue 4323: Ensure all contexts in satb.ly template stay alive
Following the fix to Issue 2010, some contexts in deeply nested parallel constructs may be terminated prematurely, at least this is the likely explanation for the failure of the satb.ly template in Release 2.19.16, although blaming Issue 2010 is conjecture. As an alternative fix to Issue 2010 seems far away, this is a hackish workaround enable the satb.ly template to work in releases after 2.19.15 by ensuring all contexts remain alive for the duration of the longest of them. It corrects all the examples in the LM.
Diffstat (limited to 'ly')
-rw-r--r--ly/satb.ly32
1 files changed, 32 insertions, 0 deletions
diff --git a/ly/satb.ly b/ly/satb.ly
index eed79d1cbb..a8ae1347ac 100644
--- a/ly/satb.ly
+++ b/ly/satb.ly
@@ -106,6 +106,7 @@ PartInstrumentName or its default."
#(satb-defaulting Key)
\clef #,clef
\new Voice = #,name <<
+ \satb-spacers
#(satb-defaulting Time)
\dynamicUp
#(satb-defaulting ,(satb-sym name "Music"))
@@ -133,12 +134,14 @@ PartInstrumentName or its default."
#(satb-defaulting Key)
\clef #,clef
\new Voice = #,v1name <<
+ \satb-spacers
#(satb-defaulting Time)
\voiceOne
\dynamicUp
#(satb-defaulting ,(satb-sym v1name "Music"))
>>
\new Voice = #,v2name <<
+ \satb-spacers
#(satb-defaulting Time)
\voiceTwo
#(satb-defaulting ,(satb-sym v2name "Music"))
@@ -154,6 +157,33 @@ PartInstrumentName or its default."
#(satb-lyrics-if-defined ,(satb-sym v2name "LyricsThree") ,v2name)
>> #})
+satb-define-if-unused =
+#(define-void-function (parser location syms) (symbol-list?)
+ (for-each
+ (lambda (sym)
+ (if (null? (ly:parser-lookup parser sym))
+ (ly:parser-define! parser sym *unspecified*)))
+ syms))
+
+\satb-define-if-unused
+ #'(
+ DescantMusic
+ SopranoMusic
+ AltoMusic
+ TenorMusic
+ BassMusic
+ )
+
+satb-AllChoirMusic = <<
+ \DescantMusic
+ \SopranoMusic
+ \AltoMusic
+ \TenorMusic
+ \BassMusic
+>>
+
+#(define satb-spacers (skip-of-length satb-AllChoirMusic))
+
SATB = <<
\new ChoirStaff
\with {
@@ -197,6 +227,7 @@ SATB = <<
\clef "treble"
#(satb-defaulting Key)
\new Voice <<
+ \satb-spacers
#(satb-defaulting Time)
#(satb-defaulting PianoRHMusic)
>>
@@ -208,6 +239,7 @@ SATB = <<
\clef "bass"
#(satb-defaulting Key)
\new Voice <<
+ \satb-spacers
#(satb-defaulting Time)
#(satb-defaulting PianoLHMusic)
>>