]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver.ly
patch::: 1.3.1.hwn1
[lilypond.git] / ly / engraver.ly
1 %
2 % setup for Request->Element conversion. Guru-only
3 %
4
5 StaffContext=\translator {
6         \type "Engraver_group_engraver";
7         \name Staff ;
8         
9         barAuto = ##t
10         voltaVisibility = ##t
11         Generic_property_list = #generic-staff-properties
12         \consists "Property_engraver";
13         
14         \consists "Multi_measure_rest_engraver";
15         \consists "Bar_engraver";
16  % Bar_engraver must be first so default bars aren't overwritten
17 % with empty ones.
18         \consists "Repeat_engraver";
19         \consists "Clef_engraver";
20         \consists "Key_engraver";
21         \consists "Time_signature_engraver";
22         \consists "Staff_symbol_engraver";
23         \consists "Collision_engraver";
24         \consists "Rest_collision_engraver";
25         \consists "Local_key_engraver";
26
27         \consistsend "Axis_group_engraver";
28
29
30
31 %{
32         The Staff_margin_engraver puts the name of the instrument
33         (\property Staff.instrument; Staff.instr for subsequent lines)
34         to the left of a staff.
35 %}
36 %{
37         \consists "Staff_margin_engraver";
38 %}
39         defaultClef = #"treble"
40
41         marginBreakPriority = #-5
42
43         \consists "Separating_line_group_engraver";
44           
45         \accepts "Voice";
46         dynamicStyle = #"dynamic"
47 };
48
49 \translator{\StaffContext }
50 \translator {
51         \type "Engraver_group_engraver";
52         \name ChoirStaff;
53         alignmentReference = \center;   
54         \consists "Staff_group_bar_engraver";
55
56
57         \accepts "Staff";
58         \accepts "RhythmicStaff";
59         \accepts "GrandStaff";
60         \accepts "PianoStaff";
61
62                 
63         \accepts "Lyrics";
64         \accepts "ChordNames";
65 }
66
67
68 RhythmicStaffContext=\translator{
69         \type "Engraver_group_engraver";
70         numberOfStaffLines  = #1
71         \consists "Property_engraver";
72         
73         Generic_property_list = #generic-staff-properties
74         
75         barSize = \staffheight;
76         \consists "Pitch_squash_engraver";
77         \consists "Separating_line_group_engraver";     
78         \name RhythmicStaff;
79
80         \consists "Repeat_engraver";
81         \consists "Bar_engraver";
82         \consists "Time_signature_engraver";
83         \consists "Staff_symbol_engraver";
84         \consistsend "Axis_group_engraver";
85         \accepts "Voice";
86 };
87 \translator{\RhythmicStaffContext}
88 VoiceContext = \translator {
89
90         \type "Engraver_group_engraver";
91         dynamicPadding = #5.0
92         Generic_property_list = #generic-voice-properties
93
94
95         \consists "Dynamic_engraver";   % must come before text_engraver.
96         \name Voice ;
97         \consists "Property_engraver";
98         
99         \consists "Breathing_sign_engraver";
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-settings.ly";
106         \consists "Chord_tremolo_engraver";
107
108         \consists "Melisma_engraver";
109         textScriptPadding = #3.0
110         \consists "Text_engraver";
111         \consists "Script_engraver";
112         \consists "Script_column_engraver";
113         \consists "Rhythmic_column_engraver";
114         \consists "Slur_engraver";
115         \consists "Tie_engraver";
116         \consists "Tuplet_engraver";
117         \consists "Grace_position_engraver";
118         \consists "Skip_req_swallow_translator";
119         \accepts Thread; % bug if you leave out this!
120         \accepts Grace;
121 };
122
123 GraceContext=\translator {
124         \type "Grace_engraver_group";
125         \name "Grace";
126
127         Generic_property_list = #generic-grace-properties
128         
129         \consists "Note_heads_engraver";
130         \consists "Local_key_engraver";
131         \consists "Stem_engraver";
132         \consists "Beam_engraver";
133         \consists "Slur_engraver";
134         
135         \consists "Auto_beam_engraver";
136         \include "auto-beam-settings.ly";
137         \consists "Align_note_column_engraver";
138
139         \consists "Rhythmic_column_engraver";
140         \consists "Dynamic_engraver";
141
142         \consists "Property_engraver";
143
144         stemStyle = #"grace" 
145         weAreGraceContext = ##t 
146         fontSize = #-1
147         
148         stemLength = #6.0
149         verticalDirection = \up ;
150         graceAccidentalSpace= 1.5 * \interline;
151 };
152
153 \translator{\GraceContext}
154 \translator {\VoiceContext}
155
156 ThreadContext = \translator{
157         \type Engraver_group_engraver;
158         \consists "Note_heads_engraver" ;
159         Generic_property_list = #generic-thread-properties
160         \consists "Property_engraver";
161         \name Thread;
162 };
163
164 \translator{\ThreadContext}
165 GrandStaffContext=\translator{
166         \type "Engraver_group_engraver";
167         \name GrandStaff;
168         \consists "Span_bar_engraver";
169         \consists "Piano_bar_engraver";
170
171         \accepts "Staff";
172 };
173 \translator{\GrandStaffContext}
174
175 PianoStaffContext = \translator{\GrandStaffContext
176         alignmentReference = \center;
177
178         \consists "Vertical_align_engraver";
179         minVerticalAlign = 3.0*\staffheight;
180         maxVerticalAlign = 3.0*\staffheight;
181
182 %       \consistsend "Axis_group_engraver";
183         \name "PianoStaff";
184         
185 };
186 \translator{\PianoStaffContext}
187 StaffGroupContext= \translator {
188         \type "Engraver_group_engraver";
189         \consists "Span_bar_engraver";
190         
191         \consists "Staff_group_bar_engraver";
192         \name StaffGroup;
193         \accepts "Staff";
194         \accepts "RhythmicStaff";
195         \accepts "GrandStaff";
196         \accepts "PianoStaff";
197         
198         \accepts "Lyrics";
199         \accepts "ChordNames";
200 };
201
202 \translator { \StaffGroupContext }
203
204 % UGH! JUNKME
205 LyricsVoiceContext= \translator{
206         \type "Engraver_group_engraver";
207         \consistsend "Axis_group_engraver";
208
209         \name LyricVoice ;
210         \consists "Separating_line_group_engraver";
211         \consists "Lyric_engraver";
212         \consists "Extender_engraver";
213         \consists "Hyphen_engraver";
214 };
215 \translator{ \LyricsVoiceContext }
216
217 LyricsContext = \translator {
218         \type "Engraver_group_engraver";
219         \name Lyrics;
220         \consists Vertical_align_engraver;%need this for getting folded repeats right.
221
222         \consistsend "Axis_group_engraver";
223         
224         \accepts "LyricVoice";
225 };
226 \translator { \LyricsContext }
227
228 \translator{
229         \type "Engraver_group_engraver";
230
231         \consistsend "Axis_group_engraver";
232         \name ChordNameVoice ;
233         \consists "Separating_line_group_engraver";
234         \consists "Chord_name_engraver";
235 }
236
237
238 ChordNameContext = \translator {
239         \type "Engraver_group_engraver";
240         \name ChordNames;
241         \accepts "ChordNameVoice";
242         \consistsend "Axis_group_engraver";
243         };
244 \translator { \ChordNameContext }
245
246
247 ScoreWithNumbers = \translator {
248         \type "Score_engraver";
249
250         % uncomment to bar numbers on a whole system.
251         \consists "Bar_number_engraver";
252 };
253
254 StupidScore = \translator {
255         \type "Score_engraver";
256         \name Score;
257         \consists "Note_heads_engraver";
258 };
259
260
261
262 BarNumberingStaffContext = \translator {
263         \StaffContext
264         barColumnPriority = #0
265         marginBreakPriority = #-4
266         \consists "Mark_engraver";
267         \consists "Bar_number_engraver";
268 };
269
270 HaraKiriStaffContext = \translator {
271         \StaffContext
272         \remove "Axis_group_engraver";
273         \consistsend "Hara_kiri_engraver";        
274         \accepts "Voice";
275 };
276
277 OrchestralPartStaffContext = \translator {
278         \StaffContext
279         barColumnPriority = #0
280         marginBreakPriority = #-4
281         \consists "Mark_engraver";
282         \consists "Bar_number_engraver";
283 };
284
285 ScoreContext = \translator {
286         \type Score_engraver;
287         \name Score;
288
289         \consists "Timing_engraver";
290
291         \consists "Span_score_bar_engraver";
292         \consists "Score_priority_engraver";
293         \consists "Spacing_engraver";
294         \consists "Vertical_align_engraver";
295         alignmentReference = \down;
296         defaultClef = #"treble"
297         defaultBarType = #"|"
298         \accepts "Staff";
299         \accepts "StaffGroup";
300         \accepts "RhythmicStaff";       
301         \accepts "Lyrics";
302         \accepts "ChordNames";
303         \accepts "GrandStaff";
304         \accepts "ChoirStaff";
305         \accepts "PianoStaff";
306
307         clefBreakPriority = #-2
308         breathingSignBreakPriority = #-4
309 };
310
311 \translator { \ScoreContext }
312
313 OrchestralScoreContext= \translator {
314         \ScoreContext
315
316         barScriptPadding = #2.0         % dimension \pt
317         markScriptPadding = #4.0
318
319         \consists "Bar_number_engraver";
320         \consists "Mark_engraver";
321
322         \accepts "HaraKiriStaff";
323 };