]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
patch::: 1.5.16.jcn1
[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 "Accidental_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 = #'SystemStartBracket
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 = #'SystemStartBrace
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 = #'SystemStartBracket
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         \accepts "FiguredBass"
225 }
226
227
228 % UGH! JUNKME
229 LyricsVoiceContext= \translator{
230         \type "Engraver_group_engraver"
231         \consistsend "Axis_group_engraver"
232         MinimumVerticalExtent = #(cons -1.2 1.2)
233         ExtraVerticalExtent = ##f
234         VerticalExtent = ##f 
235         \name LyricsVoice 
236         \consists "Separating_line_group_engraver"
237         \consists "Lyric_engraver"
238         \consists "Extender_engraver"
239         \consists "Hyphen_engraver"
240         \consists "Stanza_number_engraver"
241         phrasingPunctuation = #".,:!?\""
242         
243 }
244 NoteNamesContext = \translator {
245         \type "Engraver_group_engraver"
246         \name NoteNames
247         \consistsend "Axis_group_engraver"
248
249         MinimumVerticalExtent = ##f
250         ExtraVerticalExtent = ##f
251         VerticalExtent = ##f 
252
253         
254         \consists "Note_name_engraver"
255         \consists "Separating_line_group_engraver"
256 }
257
258 LyricsContext = \translator {
259         \type "Engraver_group_engraver"
260         \name Lyrics
261         \consists Vertical_align_engraver %need this for getting folded repeats right.
262         Generic_property_list = #generic-lyrics-properties
263
264         \consistsend "Axis_group_engraver"
265         MinimumVerticalExtent = ##f
266         ExtraVerticalExtent = ##f
267         VerticalExtent = ##f 
268         
269         \accepts "LyricsVoice"
270 }
271
272
273 ChordNamesContext = \translator {
274         \type "Engraver_group_engraver"
275         \name ChordNames
276
277         Generic_property_list = #generic-chord-staff-properties
278
279
280         \consists "Output_property_engraver"    
281         \consists "Separating_line_group_engraver"
282         \consists "Chord_name_engraver"
283         \consists "Skip_req_swallow_translator"
284         \consistsend "Axis_group_engraver"
285         MinimumVerticalExtent = ##f
286         ExtraVerticalExtent = ##f
287         VerticalExtent = ##f 
288
289         VerticalAxisGroup \override #'invisible-staff = ##t
290         }
291
292
293
294 StupidScore = \translator {
295         \type "Score_engraver"
296         \name Score
297         \consists "Note_heads_engraver"
298 }
299
300
301
302
303 HaraKiriStaffContext = \translator {
304         \StaffContext
305         \remove "Axis_group_engraver"
306         \consistsend "Hara_kiri_engraver"
307         \consists "Instrument_name_engraver"
308         \accepts "Voice"
309 }
310 %{
311   The HaraKiriStaffContexts doesn't override \name,
312   so it is still named `Staff'.
313
314   %\translator { \HaraKiriStaffContext }
315 %}
316
317
318
319
320 ScoreContext = \translator {
321         \type Score_engraver
322         \name Score
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         \consists "Lyric_phrasing_engraver"
333         \consists "Bar_number_engraver"
334         \consists "Span_arpeggio_engraver"
335
336         \accepts "Staff"
337         \accepts "StaffContainer"
338         \accepts "StaffGroup"
339         \accepts "RhythmicStaff"        
340         \accepts "Lyrics"
341         \accepts "ChordNames"
342         \accepts "GrandStaff"
343         \accepts "ChoirStaff"
344         \accepts "PianoStaff"
345         \accepts "NoteNames"
346         \accepts "FiguredBass"  
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         SystemStartDelimiter =#'SystemStartBar
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         autoBeamSettings = #auto-beam-settings
371
372         scriptDefinitions = #default-script-alist
373
374         verticalAlignmentChildCallback = #Align_interface::alignment_callback
375
376         pedalSustainStrings = #'("Ped." "*Ped." "*")
377         pedalUnaCordaStrings = #'("una corda" "" "tre corde")
378         pedalSostenutoStrings = #'()  % FIXME
379
380         tupletNumberFormatFunction = #denominator-tuplet-formatter
381         
382         subdivideBeams = ##f
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         \grobdescriptions #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 }