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