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