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