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