]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
release: 1.5.9
[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 "Tuplet_engraver"
153         \consists "A2_engraver"
154
155         \consists "Skip_req_swallow_translator"
156         \accepts Thread % bug if you leave out this!
157 }
158
159 ThreadContext = \translator{
160         \type Engraver_group_engraver
161         \name Thread
162
163         \consists "Font_size_engraver"  
164         \consists "Thread_devnull_engraver"
165         \consists "Note_heads_engraver"
166         \consists "Rest_engraver"
167         \consists "Note_head_line_engraver"
168         \consists "Output_property_engraver"    
169         Generic_property_list = #generic-thread-properties
170 }
171
172 GrandStaffContext=\translator{
173         \type "Engraver_group_engraver"
174         \name GrandStaff
175         \consists "Span_bar_engraver"
176         \consists "Span_arpeggio_engraver"
177         \consists "System_start_delimiter_engraver"
178         SystemStartDelimiter \override #'glyph = #'brace
179         
180         Generic_property_list = #generic-grand-staff-properties
181         \accepts "Staff"
182 }
183
184 PianoStaffContext = \translator{
185         \GrandStaffContext
186         \name "PianoStaff"
187
188         \consists "Vertical_align_engraver"
189         \consists "Instrument_name_engraver"
190         
191         instrument = ##f
192         instr = ##f
193         
194         verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
195         VerticalAlignment \override #'forced-distance = #12
196         VerticalAlignment \override #'self-alignment-Y = #0
197 %       \consistsend "Axis_group_engraver"
198 }
199
200 InnerStaffGroupContext= \translator {
201         \type "Engraver_group_engraver"
202         \name InnerStaffGroup
203
204         \consists "Span_bar_engraver"
205         \consists "Span_arpeggio_engraver"
206         \consists "Output_property_engraver"    
207         SystemStartDelimiter \override #'glyph = #'bracket
208
209         \consists "System_start_delimiter_engraver"
210         \accepts "Staff"
211         \accepts "RhythmicStaff"
212         \accepts "GrandStaff"
213         \accepts "PianoStaff"
214         
215         \accepts "Lyrics"
216         \accepts "ChordNames"
217 }
218 StaffGroupContext = \translator {
219         \InnerStaffGroupContext
220         \name StaffGroup
221         \accepts "InnerChoirStaff"
222         \accepts "ChoirStaff"
223         \accepts "InnerStaffGroup"
224 }
225
226
227 % UGH! JUNKME
228 LyricsVoiceContext= \translator{
229         \type "Engraver_group_engraver"
230         \consistsend "Axis_group_engraver"
231         MinimumVerticalExtent = #(cons -1.2 1.2)
232         ExtraVerticalExtent = ##f
233         VerticalExtent = ##f 
234         \name LyricsVoice 
235         \consists "Separating_line_group_engraver"
236         \consists "Lyric_engraver"
237         \consists "Extender_engraver"
238         \consists "Hyphen_engraver"
239         \consists "Stanza_number_engraver"
240         phrasingPunctuation = #".,:!?\""
241         
242 }
243 NoteNamesContext = \translator {
244         \type "Engraver_group_engraver"
245         \name NoteNames
246         \consistsend "Axis_group_engraver"
247
248         MinimumVerticalExtent = ##f
249         ExtraVerticalExtent = ##f
250         VerticalExtent = ##f 
251
252         
253         \consists "Note_name_engraver"
254         \consists "Separating_line_group_engraver"
255 }
256
257 LyricsContext = \translator {
258         \type "Engraver_group_engraver"
259         \name Lyrics
260         \consists Vertical_align_engraver %need this for getting folded repeats right.
261         Generic_property_list = #generic-lyrics-properties
262
263         \consistsend "Axis_group_engraver"
264         MinimumVerticalExtent = ##f
265         ExtraVerticalExtent = ##f
266         VerticalExtent = ##f 
267         
268         \accepts "LyricsVoice"
269 }
270
271
272 ChordNamesContext = \translator {
273         \type "Engraver_group_engraver"
274         \name ChordNames
275
276         Generic_property_list = #generic-chord-staff-properties
277
278
279         \consists "Output_property_engraver"    
280         \consists "Separating_line_group_engraver"
281         \consists "Chord_name_engraver"
282         \consists "Skip_req_swallow_translator"
283         \consistsend "Axis_group_engraver"
284         MinimumVerticalExtent = ##f
285         ExtraVerticalExtent = ##f
286         VerticalExtent = ##f 
287
288         VerticalAxisGroup \override #'invisible-staff = ##t
289         }
290
291
292
293 StupidScore = \translator {
294         \type "Score_engraver"
295         \name Score
296         \consists "Note_heads_engraver"
297 }
298
299
300
301
302 HaraKiriStaffContext = \translator {
303         \StaffContext
304         \remove "Axis_group_engraver"
305         \consistsend "Hara_kiri_engraver"
306         \consists "Instrument_name_engraver"
307         \accepts "Voice"
308 }
309 %{
310   The HaraKiriStaffContexts doesn't override \name,
311   so it is still named `Staff'.
312
313   %\translator { \HaraKiriStaffContext }
314 %}
315
316
317
318
319 ScoreContext = \translator {
320         \type Score_engraver
321         \name Score
322         
323
324         \consists "Repeat_acknowledge_engraver"
325         \consists "Timing_engraver"
326         \consists "Output_property_engraver"
327         \consists "System_start_delimiter_engraver"
328         \consists "Mark_engraver"       
329         \consists "Break_align_engraver"
330         \consists "Spacing_engraver"
331         \consists "Vertical_align_engraver"
332
333         \consists "Lyric_phrasing_engraver"
334         \consists "Bar_number_engraver"
335         \consists "Span_arpeggio_engraver"
336
337         \accepts "Staff"
338         \accepts "StaffContainer"
339         \accepts "StaffGroup"
340         \accepts "RhythmicStaff"        
341         \accepts "Lyrics"
342         \accepts "ChordNames"
343         \accepts "GrandStaff"
344         \accepts "ChoirStaff"
345         \accepts "PianoStaff"
346         \accepts "NoteNames"
347
348         soloText = #"Solo"
349         soloIIText = #"Solo II"
350         aDueText = #"a2"
351         soloADue = ##t
352         splitInterval = #'(0 . 1)
353         changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
354
355         barAuto = ##t
356         voltaVisibility = ##t
357         %  name, glyph id, clef position 
358         % where is c0 in this clef?
359
360         clefGlyph = #"clefs-G"
361         clefPosition = #-2
362         centralCPosition = #-6
363         
364         automaticPhrasing = ##t
365         alignmentReference = #-1   % \down
366         defaultBarType = #"|"
367
368         explicitClefVisibility = #all-visible
369         explicitKeySignatureVisibility = #all-visible
370         
371         scriptDefinitions = #default-script-alist
372
373         verticalAlignmentChildCallback = #Align_interface::alignment_callback
374
375         pedalSustainStrings = #'("Ped." "*Ped." "*")
376         pedalUnaCordaStrings = #'("una corda" "" "tre corde")
377         pedalSostenutoStrings = #'()  % FIXME
378
379         tupletNumberFormatFunction = #denominator-tuplet-formatter
380         
381        keyAccidentalOrder = #'(
382          (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
383          (3  . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
384          (6 . -2) (2  . -2) (5 . -2 ) (1  . -2) (4  . -2) (0  . -2) (3 . -2)
385          (3  . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
386         )
387         breakAlignOrder = #'(
388           Instrument_name
389           Left_edge_item
390           Span_bar
391           Breathing_sign
392           Clef_item
393           Key_item
394           Staff_bar
395           Time_signature
396           Custos
397         )
398
399
400         \elementdescriptions #all-grob-descriptions
401 }
402
403 OrchestralScoreContext= \translator {
404         \ScoreContext
405 }
406 EasyNotation =  \translator {
407         \ScoreContext
408         NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
409         easyPlay = ##t
410 }
411
412 % retain for compatibility reasons (FIXME: convert-ly)
413 GraceContext = \translator {
414         \type "Engraver_group_engraver"
415 }