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