]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
release: 1.5.11
[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 = #'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
325         \consists "Repeat_acknowledge_engraver"
326         \consists "Timing_engraver"
327         \consists "Output_property_engraver"
328         \consists "System_start_delimiter_engraver"
329         \consists "Mark_engraver"       
330         \consists "Break_align_engraver"
331         \consists "Spacing_engraver"
332         \consists "Vertical_align_engraver"
333
334         \consists "Lyric_phrasing_engraver"
335         \consists "Bar_number_engraver"
336         \consists "Span_arpeggio_engraver"
337
338         \accepts "Staff"
339         \accepts "StaffContainer"
340         \accepts "StaffGroup"
341         \accepts "RhythmicStaff"        
342         \accepts "Lyrics"
343         \accepts "ChordNames"
344         \accepts "GrandStaff"
345         \accepts "ChoirStaff"
346         \accepts "PianoStaff"
347         \accepts "NoteNames"
348         \accepts "FiguredBass"  
349
350         soloText = #"Solo"
351         soloIIText = #"Solo II"
352         aDueText = #"a2"
353         soloADue = ##t
354         splitInterval = #'(0 . 1)
355         changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
356         SystemStartDelimiter =#'SystemStartBar
357         barAuto = ##t
358         voltaVisibility = ##t
359         %  name, glyph id, clef position 
360         % where is c0 in this clef?
361
362         clefGlyph = #"clefs-G"
363         clefPosition = #-2
364         centralCPosition = #-6
365         
366         automaticPhrasing = ##t
367         alignmentReference = #-1   % \down
368         defaultBarType = #"|"
369
370         explicitClefVisibility = #all-visible
371         explicitKeySignatureVisibility = #all-visible
372         
373         scriptDefinitions = #default-script-alist
374
375         verticalAlignmentChildCallback = #Align_interface::alignment_callback
376
377         pedalSustainStrings = #'("Ped." "*Ped." "*")
378         pedalUnaCordaStrings = #'("una corda" "" "tre corde")
379         pedalSostenutoStrings = #'()  % FIXME
380
381         tupletNumberFormatFunction = #denominator-tuplet-formatter
382         
383        keyAccidentalOrder = #'(
384          (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
385          (3  . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
386          (6 . -2) (2  . -2) (5 . -2 ) (1  . -2) (4  . -2) (0  . -2) (3 . -2)
387          (3  . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
388         )
389         breakAlignOrder = #'(
390           Instrument_name
391           Left_edge_item
392           Span_bar
393           Breathing_sign
394           Clef_item
395           Key_item
396           Staff_bar
397           Time_signature
398           Custos
399         )
400
401
402         \elementdescriptions #all-grob-descriptions
403 }
404
405 OrchestralScoreContext= \translator {
406         \ScoreContext
407 }
408 EasyNotation =  \translator {
409         \ScoreContext
410         NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
411         easyPlay = ##t
412 }
413
414 % retain for compatibility reasons (FIXME: convert-ly)
415 GraceContext = \translator {
416         \type "Engraver_group_engraver"
417 }
418
419 FiguredBassContext = \translator {
420         \type "Engraver_group_engraver"
421         \name FiguredBass 
422         \consists "Figured_bass_engraver"       
423         \consistsend "Axis_group_engraver"
424 }