]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
01e05e9bcfe7ef8b6893dfaab3144dc05a793262
[lilypond.git] / ly / engraver-init.ly
1 \version "1.3.146"
2
3 %
4 % setup for Request->Element conversion. Guru-only
5 %
6
7 StaffContext=\translator {
8         \type "Engraver_group_engraver"
9         \name Staff 
10         \consists "Output_property_engraver"    
11         Generic_property_list = #generic-staff-properties
12         
13         \consists "Bar_engraver"
14  % Bar_engraver must be first so default bars aren't overwritten
15 % with empty ones.
16         \consists "Font_size_engraver"
17
18 %       \consists "Repeat_engraver"
19         \consists "Volta_engraver"
20         \consists "Separating_line_group_engraver"      
21
22
23
24         \consists "Clef_engraver"
25         \consists "Key_engraver"
26         \consists "Time_signature_engraver"
27         \consists "Staff_symbol_engraver"
28         \consists "Collision_engraver"
29         \consists "Rest_collision_engraver"
30         \consists "Local_key_engraver"
31         \consists "Piano_pedal_engraver"
32         \consists "Instrument_name_engraver"
33
34         \consistsend "Axis_group_engraver"
35         
36         MinimumVerticalExtent = #'(-4 . 4)
37         ExtraVerticalExtent = ##f
38         VerticalExtent = ##f 
39
40         % explicitly set instrument, so we don't get 
41         % weird effects when doing instrument names for
42         % piano staves
43
44         instrument = ##f
45         instr = ##f
46           
47         \accepts "Voice"
48 }
49
50
51 StaffContainerContext = \translator {
52         \type Engraver_group_engraver
53         \consists "Axis_group_engraver"
54         MinimumVerticalExtent = ##f
55         ExtraVerticalExtent = ##f
56         VerticalExtent = ##f 
57         
58         \accepts Staff
59         \name StaffContainer
60 }
61
62 InnerChoirStaffContext = \translator {
63         \type "Engraver_group_engraver"
64         \name InnerChoirStaff
65         alignmentReference = #0
66         \consists "System_start_delimiter_engraver"
67         SystemStartDelimiter \override #'glyph = #'bracket
68
69         \accepts "Staff"
70         \accepts "RhythmicStaff"
71         \accepts "GrandStaff"
72         \accepts "PianoStaff"
73         \accepts "Lyrics"
74         \accepts "ChordNames"
75 }
76 ChoirStaffContext = \translator {
77         \InnerChoirStaffContext
78         \name ChoirStaff
79         \accepts "InnerChoirStaff"
80         \accepts "InnerStaffGroup"
81 }
82
83
84 RhythmicStaffContext=\translator{
85         \type "Engraver_group_engraver"
86         
87         \consists "Output_property_engraver"    
88
89         Generic_property_list = #generic-staff-properties
90         MinimumVerticalExtent = ##f
91         ExtraVerticalExtent = ##f
92         VerticalExtent = ##f 
93
94         \consists "Pitch_squash_engraver"
95         \consists "Separating_line_group_engraver"      
96         \name RhythmicStaff
97         \alias "Staff"
98         
99         Bar \override #'bar-size = #4
100         VoltaBracket \override #'minimum-space =  #15  % urg, in \pt
101         VoltaBracket \override #'padding =  #5  % urg, in \pt
102         StaffSymbol \override #'line-count = #1 
103
104 %       \consists "Repeat_engraver"
105         \consists "Volta_engraver"
106         \consists "Bar_engraver"
107         \consists "Time_signature_engraver"
108         \consists "Staff_symbol_engraver"
109         \consistsend "Axis_group_engraver"
110         \accepts "Voice"
111 }
112
113
114 VoiceContext = \translator {
115         \type "Engraver_group_engraver"
116         \name Voice
117
118         Generic_property_list = #generic-voice-properties
119         \consists "Font_size_engraver"
120         
121         % must come before all
122         \consists "Voice_devnull_engraver"
123         \consists "Output_property_engraver"    
124         \consists "Arpeggio_engraver"
125         \consists "Multi_measure_rest_engraver"
126         \consists "Text_spanner_engraver"
127         
128         \consists "Breathing_sign_engraver"
129         % \consists "Rest_engraver"
130         \consists "Dot_column_engraver"
131         \consists "Stem_engraver"
132         \consists "Beam_engraver"
133         \consists "Auto_beam_engraver"
134
135         \consists "Chord_tremolo_engraver"
136         \consists "Percent_repeat_engraver"
137         \consists "Melisma_engraver"
138
139 %{
140  Must come before text_engraver, but after note_column engraver.
141
142 %}
143         \consists "Dynamic_engraver"
144         \consists "Text_engraver"
145
146         \consists "Script_engraver"
147         \consists "Script_column_engraver"
148         \consists "Rhythmic_column_engraver"
149         \consists "Phrasing_slur_engraver"
150         \consists "Slur_engraver"
151         \consists "Tie_engraver"
152         \consists "Porrectus_engraver"
153         \consists "Tuplet_engraver"
154         \consists "A2_engraver"
155
156         \consists "Skip_req_swallow_translator"
157         \accepts Thread % bug if you leave out this!
158 }
159
160 ThreadContext = \translator{
161         \type Engraver_group_engraver
162         \name Thread
163
164         \consists "Font_size_engraver"  
165         \consists "Thread_devnull_engraver"
166         \consists "Note_heads_engraver"
167         \consists "Rest_engraver"
168         \consists "Note_head_line_engraver"
169         \consists "Output_property_engraver"    
170         Generic_property_list = #generic-thread-properties
171 }
172
173 GrandStaffContext=\translator{
174         \type "Engraver_group_engraver"
175         \name GrandStaff
176         \consists "Span_bar_engraver"
177         \consists "Span_arpeggio_engraver"
178         \consists "System_start_delimiter_engraver"
179         SystemStartDelimiter \override #'glyph = #'brace
180         
181         Generic_property_list = #generic-grand-staff-properties
182         \accepts "Staff"
183 }
184
185 PianoStaffContext = \translator{
186         \GrandStaffContext
187         \name "PianoStaff"
188
189         \consists "Vertical_align_engraver"
190         \consists "Instrument_name_engraver"
191         
192         instrument = ##f
193         instr = ##f
194         
195         verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
196         VerticalAlignment \override #'forced-distance = #12
197         VerticalAlignment \override #'self-alignment-Y = #0
198 %       \consistsend "Axis_group_engraver"
199 }
200
201 InnerStaffGroupContext= \translator {
202         \type "Engraver_group_engraver"
203         \name InnerStaffGroup
204
205         \consists "Span_bar_engraver"
206         \consists "Span_arpeggio_engraver"
207         \consists "Output_property_engraver"    
208         SystemStartDelimiter \override #'glyph = #'bracket
209
210         \consists "System_start_delimiter_engraver"
211         \accepts "Staff"
212         \accepts "RhythmicStaff"
213         \accepts "GrandStaff"
214         \accepts "PianoStaff"
215         
216         \accepts "Lyrics"
217         \accepts "ChordNames"
218 }
219 StaffGroupContext = \translator {
220         \InnerStaffGroupContext
221         \name StaffGroup
222         \accepts "InnerChoirStaff"
223         \accepts "ChoirStaff"
224         \accepts "InnerStaffGroup"
225         \accepts "FiguredBass"
226 }
227
228
229 % UGH! JUNKME
230 LyricsVoiceContext= \translator{
231         \type "Engraver_group_engraver"
232         \consistsend "Axis_group_engraver"
233         MinimumVerticalExtent = #(cons -1.2 1.2)
234         ExtraVerticalExtent = ##f
235         VerticalExtent = ##f 
236         \name LyricsVoice 
237         \consists "Separating_line_group_engraver"
238         \consists "Lyric_engraver"
239         \consists "Extender_engraver"
240         \consists "Hyphen_engraver"
241         \consists "Stanza_number_engraver"
242         phrasingPunctuation = #".,:!?\""
243         
244 }
245 NoteNamesContext = \translator {
246         \type "Engraver_group_engraver"
247         \name NoteNames
248         \consistsend "Axis_group_engraver"
249
250         MinimumVerticalExtent = ##f
251         ExtraVerticalExtent = ##f
252         VerticalExtent = ##f 
253
254         
255         \consists "Note_name_engraver"
256         \consists "Separating_line_group_engraver"
257 }
258
259 LyricsContext = \translator {
260         \type "Engraver_group_engraver"
261         \name Lyrics
262         \consists Vertical_align_engraver %need this for getting folded repeats right.
263         Generic_property_list = #generic-lyrics-properties
264
265         \consistsend "Axis_group_engraver"
266         MinimumVerticalExtent = ##f
267         ExtraVerticalExtent = ##f
268         VerticalExtent = ##f 
269         
270         \accepts "LyricsVoice"
271 }
272
273
274 ChordNamesContext = \translator {
275         \type "Engraver_group_engraver"
276         \name ChordNames
277
278         Generic_property_list = #generic-chord-staff-properties
279
280
281         \consists "Output_property_engraver"    
282         \consists "Separating_line_group_engraver"
283         \consists "Chord_name_engraver"
284         \consists "Skip_req_swallow_translator"
285         \consistsend "Axis_group_engraver"
286         MinimumVerticalExtent = ##f
287         ExtraVerticalExtent = ##f
288         VerticalExtent = ##f 
289
290         VerticalAxisGroup \override #'invisible-staff = ##t
291         }
292
293
294
295 StupidScore = \translator {
296         \type "Score_engraver"
297         \name Score
298         \consists "Note_heads_engraver"
299 }
300
301
302
303
304 HaraKiriStaffContext = \translator {
305         \StaffContext
306         \remove "Axis_group_engraver"
307         \consistsend "Hara_kiri_engraver"
308         \consists "Instrument_name_engraver"
309         \accepts "Voice"
310 }
311 %{
312   The HaraKiriStaffContexts doesn't override \name,
313   so it is still named `Staff'.
314
315   %\translator { \HaraKiriStaffContext }
316 %}
317
318
319
320
321 ScoreContext = \translator {
322         \type Score_engraver
323         \name Score
324         
325
326         \consists "Repeat_acknowledge_engraver"
327         \consists "Timing_engraver"
328         \consists "Output_property_engraver"
329         \consists "System_start_delimiter_engraver"
330         \consists "Mark_engraver"       
331         \consists "Break_align_engraver"
332         \consists "Spacing_engraver"
333         \consists "Vertical_align_engraver"
334
335         \consists "Lyric_phrasing_engraver"
336         \consists "Bar_number_engraver"
337         \consists "Span_arpeggio_engraver"
338
339         \accepts "Staff"
340         \accepts "StaffContainer"
341         \accepts "StaffGroup"
342         \accepts "RhythmicStaff"        
343         \accepts "Lyrics"
344         \accepts "ChordNames"
345         \accepts "GrandStaff"
346         \accepts "ChoirStaff"
347         \accepts "PianoStaff"
348         \accepts "NoteNames"
349         \accepts "FiguredBass"  
350
351         soloText = #"Solo"
352         soloIIText = #"Solo II"
353         aDueText = #"a2"
354         soloADue = ##t
355         splitInterval = #'(0 . 1)
356         changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
357
358         barAuto = ##t
359         voltaVisibility = ##t
360         %  name, glyph id, clef position 
361         % where is c0 in this clef?
362
363         clefGlyph = #"clefs-G"
364         clefPosition = #-2
365         centralCPosition = #-6
366         
367         automaticPhrasing = ##t
368         alignmentReference = #-1   % \down
369         defaultBarType = #"|"
370
371         explicitClefVisibility = #all-visible
372         explicitKeySignatureVisibility = #all-visible
373         
374         scriptDefinitions = #default-script-alist
375
376         verticalAlignmentChildCallback = #Align_interface::alignment_callback
377
378         pedalSustainStrings = #'("Ped." "*Ped." "*")
379         pedalUnaCordaStrings = #'("una corda" "" "tre corde")
380         pedalSostenutoStrings = #'()  % FIXME
381
382         tupletNumberFormatFunction = #denominator-tuplet-formatter
383         
384        keyAccidentalOrder = #'(
385          (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
386          (3  . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
387          (6 . -2) (2  . -2) (5 . -2 ) (1  . -2) (4  . -2) (0  . -2) (3 . -2)
388          (3  . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
389         )
390         breakAlignOrder = #'(
391           Instrument_name
392           Left_edge_item
393           Span_bar
394           Breathing_sign
395           Clef_item
396           Key_item
397           Staff_bar
398           Time_signature
399           Custos
400         )
401
402
403         \elementdescriptions #all-grob-descriptions
404 }
405
406 OrchestralScoreContext= \translator {
407         \ScoreContext
408 }
409 EasyNotation =  \translator {
410         \ScoreContext
411         NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
412         easyPlay = ##t
413 }
414
415 % retain for compatibility reasons (FIXME: convert-ly)
416 GraceContext = \translator {
417         \type "Engraver_group_engraver"
418 }
419
420 FiguredBassContext = \translator {
421         \type "Engraver_group_engraver"
422         \name FiguredBass 
423         \consists "Figured_bass_engraver"       
424         \consistsend "Axis_group_engraver"
425 }