]> git.donarmstrong.com Git - lilypond.git/blob - init/engraver.ly
patch::: 1.1.5.jcn2: extender
[lilypond.git] / init / engraver.ly
1 %
2 % setup for Request->Element conversion. Guru-only
3 %
4
5 StaffContext=\translator {
6         \type "Line_group_engraver_group";
7         \name Staff ;
8
9 %{
10         The Hara_kiri_line_group_engraver is a Line_group_engraver 
11         that will not typeset an empty line of staff, i.e., a line 
12         of staff with only rests in it.  This is needed for orchestral
13         scores.  Comment-out Line_group_engraver_group, and uncomment 
14         Hara_kiri_line_group_engraver.
15 %}
16 %       \type "Hara_kiri_line_group_engraver";
17
18         \consists "Bar_engraver";
19         \consists "Clef_engraver";
20         \consists "Key_engraver";
21         \consists "Local_key_engraver";
22         \consists "Time_signature_engraver";
23         \consists "Staff_symbol_engraver";
24         \consists "Collision_engraver";
25         \consists "Rest_collision_engraver";
26         \consists "Tuplet_engraver";
27 %{
28         Uncomment to get bar numbers on single staff systems:
29         
30         The Bar_number_engraver puts a number over a staff created
31         at the same level of hierarchy.  This why you have to add it
32         here separately if you want to have numbers on single staff
33         systems: The Bar_number_engraver in Score_engraver will only
34         put numbers on bars that are Score ("system") wide.  Such
35         bars are only created when the toplevel system has multiple
36         children-staffs.
37
38 %}
39 %{
40         \consists "Bar_column_engraver";
41         \consists "Bar_number_engraver";
42 %}
43 %{
44         The Staff_margin_engraver puts the name of the instrument
45         (\property Staff.instrument; Staff.instr for subsequent lines)
46         to the left of a staff.
47 %}
48
49         marginBreakPriority = "-5";
50
51 %{
52         \consists "Staff_margin_engraver";
53 %}
54         \consists "Separating_line_group_engraver";
55           
56         \accepts "Voice";
57 };
58
59 \translator{\StaffContext }
60 \translator {
61         \type "Line_group_engraver_group";
62         \name ChoirStaff;
63         \consists "Vertical_align_engraver";
64         \consists "Staff_group_bar_engraver";
65         \accepts "Staff";
66         \accepts "RhythmicStaff";
67         \accepts "GrandStaff";
68         \accepts "Lyrics";
69 }
70
71
72 RhythmicStaffContext=\translator{
73         \type "Line_group_engraver_group";
74         nolines  = "1";
75         \consists "Pitch_squash_engraver";
76         \consists "Separating_line_group_engraver";     
77         \name RhythmicStaff;
78         \consists "Bar_engraver";
79         \consists "Time_signature_engraver";
80         \consists "Staff_symbol_engraver";
81         \accepts "Voice";
82 };
83 \translator{\RhythmicStaffContext}
84 VoiceContext = \translator {
85         \type "Engraver_group_engraver";
86         \consists "Dynamic_engraver";
87         \name Voice ;
88         
89         \consists "Rest_engraver";
90         \consists "Dot_column_engraver";
91         \consists "Stem_engraver";
92         \consists "Plet_engraver";
93         \consists "Beam_engraver";
94         \consists "Abbreviation_beam_engraver";
95         \consists "Multi_measure_rest_engraver";
96         \consists "Script_engraver";
97         \consists "Rhythmic_column_engraver";
98         \consists "Font_size_engraver";
99         \consists "Slur_engraver";
100         \consists "Ties_engraver";
101         \consists "Note_heads_engraver" ;       
102         \consists "Skip_req_swallow_translator";
103 };
104
105 \translator {\VoiceContext}
106
107 GrandStaffContext=\translator{
108         \type "Line_group_engraver_group";
109         \name GrandStaff;
110         \consists "Span_bar_engraver";
111         \consists "Vertical_align_engraver";
112         \consists "Piano_bar_engraver";
113         minVerticalAlign = 1.5*\staffheight;
114
115         \accepts "Staff";
116 };
117 \translator{\GrandStaffContext}
118
119 \translator {
120         \type "Line_group_engraver_group";
121 %       \type "Hara_kiri_line_group_engraver";
122         \consists "Span_bar_engraver";
123         \consists "Vertical_align_engraver";
124         \consists "Staff_group_bar_engraver";
125         \name StaffGroup;
126         \accepts "Staff";
127         \accepts "RhythmicStaff";
128         \accepts "GrandStaff";
129         \accepts "Lyrics";
130 }
131
132 \translator{
133         \type "Line_group_engraver_group";
134
135         \name LyricVoice ;
136         \consists "Separating_line_group_engraver";
137         \consists "Lyric_engraver";
138         \consists "Extender_engraver";
139         \consists "Beam_req_swallow_translator";
140         \consists "Plet_swallow_engraver";
141 }
142
143 \translator {
144         \type "Line_group_engraver_group";
145         \name Lyrics;
146         \consists "Vertical_align_engraver";
147         \accepts "LyricVoice";
148 }
149
150 ScoreContext = \translator {
151         \type Score_engraver;
152         \name Score;
153         defaultClef = treble;
154
155         \consists "Timing_engraver";
156
157         \consists "Bar_column_engraver";
158         \consists "Span_score_bar_engraver";
159         \consists "Score_priority_engraver";
160         \consists "Priority_horizontal_align_engraver";
161         \consists "Vertical_align_engraver";
162
163
164         \accepts "StaffGroup";
165         \accepts "Staff";
166         \accepts "RhythmicStaff";       
167         \accepts "Lyrics";
168         \accepts "GrandStaff";
169         \accepts "ChoirStaff";
170 };
171 \translator { \ScoreContext }
172
173 ScoreWithNumbers = \translator {
174         \type "Score_engraver";
175
176         % uncomment to bar numbers on a whole system.
177         \consists "Bar_column_engraver";
178         \consists "Bar_number_engraver";
179
180 };
181
182 StupidScore = \translator {
183         \type "Score_engraver";
184         \name Score;
185         \consists "Note_heads_engraver";
186 };
187
188
189
190 BarNumberingStaffContext = \translator {
191         \StaffContext
192         barColumnPriority = "0";
193         marginBreakPriority = "-4";
194         \consists "Mark_engraver";
195         \consists "Bar_column_engraver";
196         \consists "Bar_number_engraver";
197
198 };
199
200
201 HaraKiriStaffContext = \translator {
202         \type "Hara_kiri_line_group_engraver";
203         \name Staff;
204         barColumnPriority = "0";
205         marginBreakPriority = "-4";
206
207         \consists "Bar_engraver";
208         \consists "Clef_engraver";
209         \consists "Key_engraver";
210         \consists "Time_signature_engraver";
211         \consists "Local_key_engraver";
212         \consists "Staff_symbol_engraver";
213         \consists "Collision_engraver";
214         \consists "Rest_collision_engraver";
215         \consists "Staff_margin_engraver";
216         \consists "Separating_line_group_engraver";
217           
218         \accepts "Voice";
219 };
220
221 % huh, Score should do HaraKiri, not Part yes?
222 OrchestralPartStaffContext = \translator {
223         \HaraKiriStaffContext
224         barColumnPriority = "0";
225         marginBreakPriority = "-4";
226         \consists "Mark_engraver";
227         \consists "Bar_column_engraver";
228         \consists "Bar_number_engraver";
229 };
230
231 OrchestralScoreContext= \translator {
232         \type Score_engraver;
233         \name Score;
234         barScriptPadding = "2.0";       % dimension \pt
235         markScriptPadding = "4.0";
236         barColumnPriority = "-4";
237         markBreakPriority = "-4";
238         defaultClef = treble;
239
240         \consists "Timing_engraver";
241         \consists "Bar_column_engraver";
242         \consists "Bar_number_engraver";
243         \consists "Mark_engraver";
244         \consists "Span_score_bar_engraver";
245         \consists "Score_priority_engraver";
246         \consists "Priority_horizontal_align_engraver";
247         \consists "Vertical_align_engraver";
248
249         \accepts "ChoirStaff";
250         \accepts "StaffGroup";
251         \accepts "Staff";
252         \accepts "RhythmicStaff";       
253         \accepts "Lyrics";
254         \accepts "GrandStaff";
255 };