]> git.donarmstrong.com Git - lilypond.git/blobdiff - input/bugs/dynamic-collide.ly
patch::: 1.3.131.jcn1
[lilypond.git] / input / bugs / dynamic-collide.ly
index 84d3cdcdc873f15b9c51c453078df633e2fdd9b8..789e0813907279aca7b9dfdb20590b4ffc45e569 100644 (file)
-
 % dynamics should not collide with staff
 % dynamics (of two voices) should not collide with eachother
+% strange stem through beam bug in bar 8 on viola staff
+% 1-staff-high brace should collapse
 
 \header {
 texidoc="Template for part-combining orchestral scores";
 }
 
 
-End = { \skip 1; }
-violoncello = \notes\relative c'' {
-  c1\ff 
+End = { \skip 1*8; }
+
+violaI = \notes\relative c'' {
+  c1 \break c c c c\break
+       g4\p\< r r r8 g(|
+       )c,4 r r r8 c|
+       [\!f8\sf(\>as f as][f g d)\!g]|
+               r [es'\p(c)es] r [d(bes)d]|
+
+
 }
+violaII = \notes\relative c'' {
+  c1 c c c c
+       g4\p\< r r r8 g(|
+       )c,4 r r r8 c|
+       [\!f8\sf(\>as f as][f g d)\!g]|
+       r [c\p(g)c] r [bes(g)bes]|
+}
+
 
-contrabasso = \notes\relative c'' {
-  c1\pp 
+violoncello = \notes\relative c {
+  c4\< c c c 
+  \!c1\pp c c c
+       \property Voice.crescendoText = #"cresc."
+       \property Voice.crescendoSpanner = #'dashed-line
+  [g8\p\<(bes' g bes][d bes g)d~]|
+  [d8(a' fis a][d a fis)d]|
+  [\!f!8\sf\>(as f as][f g d)g]|
+  %75
+  \!c,4\p r d r|
 }
 
-flautiStaff =  \notes \context Staff = flauti <
- \context Voice=oneBassi \End
- \context Voice=twoBassi \End
-  \context Voice=Flauti \partcombine Voice
-    \context Thread=oneFlauti \violoncello
-    \context Thread=twoFlauti \contrabasso
+contrabasso = \notes\relative c {
+  d8\< d d d  d d d d 
+  \!c1\ff c c c
+       \property Voice.crescendoText = #"cresc."
+       \property Voice.crescendoSpanner = #'dashed-line
+  g4\p\< r r r8 g(|
+  )c4 r r r8 c(|
+  \!)b1\sf|
+  c4\p r d r|
+}
+
+violeStaff =  \notes \context Staff = viole <
+ \context Voice=oneViole <
+               \property Staff.instrument = #"Viola"
+               \property Staff.instr = #"Vla."
+
+ \End
+ >
+ \context Voice=twoViole <
+               \property Staff.instrument = #"Viola II"
+               \property Staff.instr = #"Vla. II"
+ \End
+ >
+  \context Voice=oneViole \partcombine Voice
+    \context Thread=oneViole \violaI
+    \context Thread=twoViole \violaII
 >
 
-staffCombineProperties = {
-       \property Voice.devNullThread = #'unisolo
-       \property Voice.soloADue = ##t
-       \property Voice.soloText = #""
-       \property Voice.soloIIText = #""
+staffCombinePianoStaffProperties = {
+       \property PianoStaff.devNullThread = #'()
+       \property PianoStaff.soloADue = ##t
+       \property PianoStaff.soloText = #""
+       \property PianoStaff.soloIIText = #""
        % This is non-conventional, but currently it is
        % the only way to tell the difference.
-       \property Voice.aDueText = #"\\`a2"
-       \property Voice.splitInterval = #'(1 . 0)
-       \property Voice.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1))
+       \property PianoStaff.aDueText = #"\\`a2"
+       \property PianoStaff.splitInterval = #'(1 . 0)
+       \property PianoStaff.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1))
 }
 
+
 \score {
   <
-  \flautiStaff
- >
+  \context StaffGroup <
+  \violeStaff
 
+  \context PianoStaff = bassi_group \notes <
+    \staffCombinePianoStaffProperties
+    \context Staff=oneBassi < \clef bass;
+               \property Staff.instrument = #'(lines
+                 "Violoncello" "    e" "Contrabasso")
 
+               \property Staff.instr = #"Vc."
+               \End >
+    \context Staff=twoBassi < \clef bass;
+               \property Staff.instrument = #"Contrabasso"
+               \property Staff.instr = #"Cb."
+
+    \End >
+  
+    \context Staff=oneBassi \partcombine Staff
+      \context Voice=oneBassi { \violoncello }
+      \context Voice=twoBassi { \contrabasso }
+ >
+>
+ >
   \paper {
     % \paperSixteen
     linewidth = 80 * \staffspace;
@@ -54,17 +118,32 @@ staffCombineProperties = {
       \VoiceContext
       \remove "Rest_engraver";    
 
-      devNullThread = #'never
+      % The staff combine (bassi part) needs a
+      % thread_devnull_engraver here.
+      % Instead of maintaining two separate hierarchies,
+      % we switch add it, but switch it off immideately.
+      % The staff combine parts switch it on.
+      % devNullThread = #'never
       \consists "Thread_devnull_engraver";
-
-      soloText = #"I."
-      soloIIText = #"II."
-      soloADue = ##f
     }
     \translator{
       \HaraKiriStaffContext
       \consists "Mark_engraver";
     }
+    \translator {
+      \OrchestralScoreContext
+      skipBars = ##t
+      devNullThread = #'never
+      soloText = #"I."
+      soloIIText = #"II."
+
+      % Hmm
+      currentBarNumber = #218
+      BarNumber \override #'padding = #3
+      RestCollision \override #'maximum-rest-count = #1
+      marginScriptHorizontalAlignment = #1
+      TimeSignature \override #'style = #'C
+    }
   }
 }