]> git.donarmstrong.com Git - lilypond.git/blob - input/bugs/pc-direction.ly
patch::: 1.3.132.jcn1
[lilypond.git] / input / bugs / pc-direction.ly
1 % move to regtest once it works?
2
3 \header {
4 texidoc="
5 On their own staff, staffcombined voices should be stemboth (not up/down);
6 while voicecombined threads should get their direction set (up/down)";
7 }
8
9
10 End = { \skip 1*8; }
11
12 violaI = \notes\relative c'' {
13   c c e4. e8
14 }
15 violaII = \notes\relative c'' {
16   c4 b a a
17 }
18
19
20 violoncello = \notes\relative c' {
21    c8 c c c    c8 c c c\break
22    a1
23 }
24
25 contrabasso = \notes\relative c {
26    a4 a8 a   a8 a a a\break
27    a1
28 }
29
30 violeStaff =  \notes \context Staff = viole <
31  \context Voice=oneViole <
32                 \property Staff.instrument = #"Viola"
33                 \property Staff.instr = #"Vla."
34
35  \End
36  >
37  \context Voice=twoViole <
38                 \property Staff.instrument = #"Viola II"
39                 \property Staff.instr = #"Vla. II"
40  \End
41  >
42   \context Voice=oneViole \partcombine Voice
43     \context Thread=oneViole \violaI
44     \context Thread=twoViole \violaII
45 >
46
47 staffCombinePianoStaffProperties = {
48         \property PianoStaff.devNullThread = #'()
49         \property PianoStaff.soloADue = ##t
50         \property PianoStaff.soloText = #""
51         \property PianoStaff.soloIIText = #""
52         % This is non-conventional, but currently it is
53         % the only way to tell the difference.
54         \property PianoStaff.aDueText = #"\\`a2"
55         \property PianoStaff.splitInterval = #'(1 . 0)
56         \property PianoStaff.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1))
57         \property PianoStaff.noDirection = ##t
58 }
59
60
61 \score {
62   <
63   \context StaffGroup <
64    \violeStaff
65
66   \context PianoStaff = bassi_group \notes <
67     \staffCombinePianoStaffProperties
68     \context Staff=oneBassi < \clef bass;
69                 \property Staff.instrument = #'(lines
70                   "Violoncello" "    e" "Contrabasso")
71
72                 \property Staff.instr = #"Vc."
73                 \End >
74     \context Staff=twoBassi < \clef bass;
75                 \property Staff.instrument = #"Contrabasso"
76                 \property Staff.instr = #"Cb."
77
78     \End >
79   
80     \context Staff=oneBassi \partcombine Staff
81       \context Voice=oneBassi { \violoncello }
82       \context Voice=twoBassi { \contrabasso }
83  >
84 >
85  >
86   \paper {
87     % \paperSixteen
88     linewidth = 80 * \staffspace;
89     textheight = 200 * \staffspace;
90     \translator{
91       \ThreadContext
92       \consists "Rest_engraver";
93       
94       % Set value for engraver at thread level,
95       % to override the default that is set in ScoreContext
96       % for added engraver at Voice level
97       devNullThread = #'()
98     }
99     \translator{
100       \VoiceContext
101       \remove "Rest_engraver";    
102
103       % The staff combine (bassi part) needs a
104       % thread_devnull_engraver here.
105       % Instead of maintaining two separate hierarchies,
106       % we switch add it, but switch it off immideately.
107       % The staff combine parts switch it on.
108       % devNullThread = #'never
109       \consists "Thread_devnull_engraver";
110     }
111     \translator{
112       \HaraKiriStaffContext
113       \consists "Mark_engraver";
114     }
115     \translator {
116       \OrchestralScoreContext
117       skipBars = ##t
118       soloText = #"I."
119       soloIIText = #"II."
120       % By default, turn off the Thread_devnull_engraver
121       % at Voice level
122       devNullThread = #'never
123
124       % Hmm
125       currentBarNumber = #218
126       BarNumber \override #'padding = #3
127       RestCollision \override #'maximum-rest-count = #1
128       marginScriptHorizontalAlignment = #1
129       TimeSignature \override #'style = #'C
130     }
131   }
132 }
133