]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
''
[lilypond.git] / ly / engraver-init.ly
1 \version "1.5.49"
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         
12         \consists "Bar_engraver"
13  % Bar_engraver must be first so default bars aren't overwritten
14 % with empty ones.
15         \consists "Font_size_engraver"
16
17 %       \consists "Repeat_engraver"
18         \consists "Volta_engraver"
19         \consists "Separating_line_group_engraver"      
20         SeparatingGroupSpanner \override #'spacing-procedure
21           =  #Separating_group_spanner::set_spacing_rods_and_seqs
22         \consists "Dot_column_engraver"
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         \consists "Grob_pq_engraver"
34
35         \consistsend "Axis_group_engraver"
36
37
38         MinimumVerticalExtent = #'(-6 . 6)
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
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
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 "Ligature_bracket_engraver"
136         \consists "Breathing_sign_engraver"
137         % \consists "Rest_engraver"
138         \consists "Stem_engraver"
139         \consists "Beam_engraver"
140         \consists "Auto_beam_engraver"
141
142         \consists "Chord_tremolo_engraver"
143         \consists "Percent_repeat_engraver"
144         \consists "Melisma_engraver"
145
146 %{
147  Must come before text_engraver, but after note_column engraver.
148
149 %}
150         \consists "Text_engraver"
151         \consists "Dynamic_engraver"
152         \consists "Fingering_engraver"
153
154         \consists "Script_engraver"
155         \consists "Script_column_engraver"
156         \consists "Rhythmic_column_engraver"
157         \consists "Phrasing_slur_engraver"
158         \consists "Slur_engraver"
159         \consists "Tie_engraver"
160         \consists "Porrectus_engraver"
161         \consists "Tuplet_engraver"
162         \consists "A2_engraver"
163
164         \consists "Skip_req_swallow_translator"
165         \accepts Thread % bug if you leave out this!
166 }
167
168 ThreadContext = \translator{
169         \type Engraver_group_engraver
170         \name Thread
171         localKeySignature = #'()
172
173         \consists "Font_size_engraver"  
174         \consists "Thread_devnull_engraver"
175         \consists "Note_heads_engraver"
176         \consists "Rest_engraver"
177         \consists "Note_head_line_engraver"
178         \consists "Output_property_engraver"    
179
180 }
181
182 GrandStaffContext=\translator{
183         \type "Engraver_group_engraver"
184         \name GrandStaff
185         localKeySignature = #'()
186         \consists "Span_bar_engraver"
187         \consists "Span_arpeggio_engraver"
188         \consists "System_start_delimiter_engraver"
189         systemStartDelimiter = #'SystemStartBrace
190
191         \accepts "Staff"
192 }
193
194 PianoStaffContext = \translator{
195         \GrandStaffContext
196         \name "PianoStaff"
197         \alias "GrandStaff"
198
199         \consists "Vertical_align_engraver"
200         \consists "Instrument_name_engraver"
201         
202         instrument = #'()
203         instr = #'()
204         
205         verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
206         VerticalAlignment \override #'forced-distance = #12
207         VerticalAlignment \override #'self-alignment-Y = #0
208 %       \consistsend "Axis_group_engraver"
209 }
210
211 InnerStaffGroupContext= \translator {
212         \type "Engraver_group_engraver"
213         \name InnerStaffGroup
214         localKeySignature = #'()
215
216         \consists "Span_bar_engraver"
217         \consists "Span_arpeggio_engraver"
218         \consists "Output_property_engraver"    
219         systemStartDelimiter = #'SystemStartBracket
220
221         \consists "System_start_delimiter_engraver"
222         \accepts "Staff"
223         \accepts "RhythmicStaff"
224         \accepts "GrandStaff"
225         \accepts "PianoStaff"
226         
227         \accepts "Lyrics"
228         \accepts "ChordNames"
229 }
230 StaffGroupContext = \translator {
231         \InnerStaffGroupContext
232         \name StaffGroup
233         \accepts "InnerChoirStaff"
234         \accepts "ChoirStaff"
235         \accepts "InnerStaffGroup"
236         \accepts "FiguredBass"
237 }
238
239
240 % UGH! JUNKME
241 LyricsVoiceContext= \translator{
242         \type "Engraver_group_engraver"
243         \consistsend "Axis_group_engraver"
244         MinimumVerticalExtent = #(cons -1.2 1.2)
245         ExtraVerticalExtent = ##f
246         VerticalExtent = ##f 
247         \name LyricsVoice 
248         \consists "Separating_line_group_engraver"
249         \consists "Lyric_engraver"
250         \consists "Extender_engraver"
251         \consists "Hyphen_engraver"
252         \consists "Stanza_number_engraver"
253         \consists "Skip_req_swallow_translator"
254         phrasingPunctuation = #".,:!?\""
255         
256 }
257 NoteNamesContext = \translator {
258         \type "Engraver_group_engraver"
259         \name NoteNames
260         \consistsend "Axis_group_engraver"
261
262         MinimumVerticalExtent = ##f
263         ExtraVerticalExtent = ##f
264         VerticalExtent = ##f 
265
266         
267         \consists "Note_name_engraver"
268         \consists "Separating_line_group_engraver"
269 }
270
271 LyricsContext = \translator {
272         \type "Engraver_group_engraver"
273         \name Lyrics
274         \consists Vertical_align_engraver %need this for getting folded repeats right.
275
276
277         \consistsend "Axis_group_engraver"
278         MinimumVerticalExtent = ##f
279         ExtraVerticalExtent = ##f
280         VerticalExtent = ##f 
281         
282         \accepts "LyricsVoice"
283 }
284
285
286 ChordNamesContext = \translator {
287         \type "Engraver_group_engraver"
288         \name ChordNames
289
290
291
292
293         \consists "Output_property_engraver"    
294         \consists "Separating_line_group_engraver"
295         \consists "Chord_name_engraver"
296         \consists "Skip_req_swallow_translator"
297         \consistsend "Axis_group_engraver"
298         MinimumVerticalExtent = ##f
299         ExtraVerticalExtent = ##f
300         VerticalExtent = ##f 
301         }
302
303
304
305 StupidScore = \translator {
306         \type "Score_engraver"
307         \name Score
308         \consists "Note_heads_engraver"
309 }
310
311
312
313
314 HaraKiriStaffContext = \translator {
315         \StaffContext
316         \remove "Axis_group_engraver"
317         \consistsend "Hara_kiri_engraver"
318         \consists "Instrument_name_engraver"
319         \accepts "Voice"
320 }
321 %{
322   The HaraKiriStaffContexts doesn't override \name,
323   so it is still named `Staff'.
324
325   %\translator { \HaraKiriStaffContext }
326 %}
327
328
329
330
331 ScoreContext = \translator {
332         \type Score_engraver
333         \name Score
334         localKeySignature = #'()
335         
336         \consists "Repeat_acknowledge_engraver"
337         \consists "Staff_collecting_engraver"
338         \consists "Timing_engraver"
339         \consists "Output_property_engraver"
340         \consists "System_start_delimiter_engraver"
341         \consists "Mark_engraver"       
342         \consists "Break_align_engraver"
343         \consists "Spacing_engraver"
344         \consists "Vertical_align_engraver"
345         \consists "Lyric_phrasing_engraver"
346         \consists "Bar_number_engraver"
347         \consists "Span_arpeggio_engraver"
348
349         \accepts "Staff"
350         \accepts "StaffContainer"
351         \accepts "StaffGroup"
352         \accepts "RhythmicStaff"        
353         \accepts "Lyrics"
354         \accepts "ChordNames"
355         \accepts "GrandStaff"
356         \accepts "ChoirStaff"
357         \accepts "PianoStaff"
358         \accepts "NoteNames"
359         \accepts "FiguredBass"  
360
361         soloText = #"Solo"
362         soloIIText = #"Solo II"
363         aDueText = #"a2"
364         soloADue = ##t
365         splitInterval = #'(0 . 1)
366         changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
367         systemStartDelimiter =#'SystemStartBar
368
369
370         %  name, glyph id, clef position 
371         % where is c0 in this clef?
372
373         clefGlyph = #"clefs-G"
374         clefPosition = #-2
375         centralCPosition = #-6
376         
377         automaticPhrasing = ##t
378         
379         defaultBarType = #"|"
380
381         explicitClefVisibility = #all-visible
382         explicitKeySignatureVisibility = #all-visible
383         autoBeamSettings = #auto-beam-settings
384         autoBeaming = ##t
385         scriptDefinitions = #default-script-alist
386
387         verticalAlignmentChildCallback = #Align_interface::alignment_callback
388
389         pedalSustainStrings = #'("Ped." "*Ped." "*")
390         pedalUnaCordaStrings = #'("una corda" "" "tre corde")
391
392         %% these are in ordinary italic font, including the *, but they are unlikely to be used, 
393         %% as the default pedal-style for SostenutoPedal is 'mixed': i.e.  Sost. Ped_____________________ 
394         pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") 
395
396         tupletNumberFormatFunction = #denominator-tuplet-formatter
397         
398         subdivideBeams = ##f
399         extraNatural = ##t
400         autoAccidentals = #'(Staff (same-octave . 0))
401         autoCautionaries = #'()  
402
403
404        keyAccidentalOrder = #'(
405          (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
406          (3  . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
407          (6 . -2) (2  . -2) (5 . -2 ) (1  . -2) (4  . -2) (0  . -2) (3 . -2)
408          (3  . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
409         )
410         breakAlignOrder = #'(
411           instrument-name
412           left-edge
413           span-bar
414           breathing-sign
415           clef
416           key-signature
417           staff-bar
418           time-signature
419           custos
420         )
421
422
423         \grobdescriptions #all-grob-descriptions
424 }
425
426 OrchestralScoreContext= \translator {
427         \ScoreContext
428 }
429 EasyNotation =  \translator {
430         \ScoreContext
431         NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
432 }
433
434 % retain for compatibility reasons (FIXME: convert-ly)
435 GraceContext = \translator {
436         \type "Engraver_group_engraver"
437 }
438
439 FiguredBassContext = \translator {
440         \type "Engraver_group_engraver"
441         \name FiguredBass 
442         \consists "Figured_bass_engraver"       
443         \consistsend "Axis_group_engraver"
444 }