]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
8ed003ee386bab90b64eeccab8832955b3f4105c
[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 "Dynamic_engraver"
145         \consists "Fingering_engraver"
146 %       \consists "Text_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 "Timing_engraver"
328         \consists "Output_property_engraver"
329         \consists "System_start_delimiter_engraver"
330         \consists "Mark_engraver"       
331         \consists "Break_align_engraver"
332         \consists "Spacing_engraver"
333         \consists "Vertical_align_engraver"
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         autoBeamSettings = #auto-beam-settings
373
374         scriptDefinitions = #default-script-alist
375
376         verticalAlignmentChildCallback = #Align_interface::alignment_callback
377
378         pedalSustainStrings = #'("Ped." "*Ped." "*")
379         pedalUnaCordaStrings = #'("una corda" "" "tre corde")
380         pedalSostenutoStrings = #'()  % FIXME
381
382         tupletNumberFormatFunction = #denominator-tuplet-formatter
383         
384         subdivideBeams = ##f
385         extraNatural = ##t
386         autoAccidentals = #'(same-octave)
387         autoCautionaries = #'()  
388
389
390        keyAccidentalOrder = #'(
391          (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
392          (3  . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
393          (6 . -2) (2  . -2) (5 . -2 ) (1  . -2) (4  . -2) (0  . -2) (3 . -2)
394          (3  . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
395         )
396         breakAlignOrder = #'(
397           Instrument_name
398           Left_edge_item
399           Span_bar
400           Breathing_sign
401           Clef_item
402           Key_item
403           Staff_bar
404           Time_signature
405           Custos
406         )
407
408
409         \grobdescriptions #all-grob-descriptions
410 }
411
412 OrchestralScoreContext= \translator {
413         \ScoreContext
414 }
415 EasyNotation =  \translator {
416         \ScoreContext
417         NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
418         easyPlay = ##t
419 }
420
421 % retain for compatibility reasons (FIXME: convert-ly)
422 GraceContext = \translator {
423         \type "Engraver_group_engraver"
424 }
425
426 FiguredBassContext = \translator {
427         \type "Engraver_group_engraver"
428         \name FiguredBass 
429         \consists "Figured_bass_engraver"       
430         \consistsend "Axis_group_engraver"
431 }