]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
release: 1.5.32
[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         \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
42         % explicitly set instrument, so we don't get 
43         % weird effects when doing instrument names for
44         % piano staves
45
46         instrument = ##f
47         instr = ##f
48           
49         \accepts "Voice"
50 }
51
52
53 StaffContainerContext = \translator {
54         \type Engraver_group_engraver
55         \consists "Axis_group_engraver"
56         MinimumVerticalExtent = ##f
57         ExtraVerticalExtent = ##f
58         VerticalExtent = ##f 
59         
60         \accepts Staff
61         \name StaffContainer
62 }
63
64 InnerChoirStaffContext = \translator {
65         \type "Engraver_group_engraver"
66         \name InnerChoirStaff
67         alignmentReference = #0
68         \consists "System_start_delimiter_engraver"
69         SystemStartDelimiter = #'SystemStartBracket
70
71         \accepts "Staff"
72         \accepts "RhythmicStaff"
73         \accepts "GrandStaff"
74         \accepts "PianoStaff"
75         \accepts "Lyrics"
76         \accepts "ChordNames"
77 }
78 ChoirStaffContext = \translator {
79         \InnerChoirStaffContext
80         \name ChoirStaff
81         \accepts "InnerChoirStaff"
82         \accepts "InnerStaffGroup"
83 }
84
85
86 RhythmicStaffContext=\translator{
87         \type "Engraver_group_engraver"
88         
89         \consists "Output_property_engraver"    
90
91         Generic_property_list = #generic-staff-properties
92         MinimumVerticalExtent = ##f
93         ExtraVerticalExtent = ##f
94         VerticalExtent = ##f 
95
96         \consists "Pitch_squash_engraver"
97         \consists "Separating_line_group_engraver"      
98         \name RhythmicStaff
99         \alias "Staff"
100         
101         Bar \override #'bar-size = #4
102         VoltaBracket \override #'minimum-space =  #15  % urg, in \pt
103         VoltaBracket \override #'padding =  #5  % urg, in \pt
104         StaffSymbol \override #'line-count = #1 
105
106 %       \consists "Repeat_engraver"
107         \consists "Volta_engraver"
108         \consists "Bar_engraver"
109         \consists "Time_signature_engraver"
110         \consists "Staff_symbol_engraver"
111         \consistsend "Axis_group_engraver"
112         \accepts "Voice"
113 }
114
115
116 VoiceContext = \translator {
117         \type "Engraver_group_engraver"
118         \name Voice
119
120         Generic_property_list = #generic-voice-properties
121         \consists "Font_size_engraver"
122         
123         % must come before all
124         \consists "Voice_devnull_engraver"
125         \consists "Output_property_engraver"    
126         \consists "Arpeggio_engraver"
127         \consists "Multi_measure_rest_engraver"
128         \consists "Text_spanner_engraver"
129         
130         \consists "Breathing_sign_engraver"
131         % \consists "Rest_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         \consists "Skip_req_swallow_translator"
244         phrasingPunctuation = #".,:!?\""
245         
246 }
247 NoteNamesContext = \translator {
248         \type "Engraver_group_engraver"
249         \name NoteNames
250         \consistsend "Axis_group_engraver"
251
252         MinimumVerticalExtent = ##f
253         ExtraVerticalExtent = ##f
254         VerticalExtent = ##f 
255
256         
257         \consists "Note_name_engraver"
258         \consists "Separating_line_group_engraver"
259 }
260
261 LyricsContext = \translator {
262         \type "Engraver_group_engraver"
263         \name Lyrics
264         \consists Vertical_align_engraver %need this for getting folded repeats right.
265         Generic_property_list = #generic-lyrics-properties
266
267         \consistsend "Axis_group_engraver"
268         MinimumVerticalExtent = ##f
269         ExtraVerticalExtent = ##f
270         VerticalExtent = ##f 
271         
272         \accepts "LyricsVoice"
273 }
274
275
276 ChordNamesContext = \translator {
277         \type "Engraver_group_engraver"
278         \name ChordNames
279
280         Generic_property_list = #generic-chord-staff-properties
281
282
283         \consists "Output_property_engraver"    
284         \consists "Separating_line_group_engraver"
285         \consists "Chord_name_engraver"
286         \consists "Skip_req_swallow_translator"
287         \consistsend "Axis_group_engraver"
288         MinimumVerticalExtent = ##f
289         ExtraVerticalExtent = ##f
290         VerticalExtent = ##f 
291
292         VerticalAxisGroup \override #'invisible-staff = ##t
293         }
294
295
296
297 StupidScore = \translator {
298         \type "Score_engraver"
299         \name Score
300         \consists "Note_heads_engraver"
301 }
302
303
304
305
306 HaraKiriStaffContext = \translator {
307         \StaffContext
308         \remove "Axis_group_engraver"
309         \consistsend "Hara_kiri_engraver"
310         \consists "Instrument_name_engraver"
311         \accepts "Voice"
312 }
313 %{
314   The HaraKiriStaffContexts doesn't override \name,
315   so it is still named `Staff'.
316
317   %\translator { \HaraKiriStaffContext }
318 %}
319
320
321
322
323 ScoreContext = \translator {
324         \type Score_engraver
325         \name Score
326         
327         \consists "Repeat_acknowledge_engraver"
328         \consists "Staff_collecting_engraver"
329         \consists "Timing_engraver"
330         \consists "Output_property_engraver"
331         \consists "System_start_delimiter_engraver"
332         \consists "Mark_engraver"       
333         \consists "Break_align_engraver"
334         \consists "Spacing_engraver"
335         \consists "Vertical_align_engraver"
336         \consists "Lyric_phrasing_engraver"
337         \consists "Bar_number_engraver"
338         \consists "Span_arpeggio_engraver"
339
340         \accepts "Staff"
341         \accepts "StaffContainer"
342         \accepts "StaffGroup"
343         \accepts "RhythmicStaff"        
344         \accepts "Lyrics"
345         \accepts "ChordNames"
346         \accepts "GrandStaff"
347         \accepts "ChoirStaff"
348         \accepts "PianoStaff"
349         \accepts "NoteNames"
350         \accepts "FiguredBass"  
351
352         soloText = #"Solo"
353         soloIIText = #"Solo II"
354         aDueText = #"a2"
355         soloADue = ##t
356         splitInterval = #'(0 . 1)
357         changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
358         SystemStartDelimiter =#'SystemStartBar
359         barAuto = ##t
360         voltaVisibility = ##t
361         %  name, glyph id, clef position 
362         % where is c0 in this clef?
363
364         clefGlyph = #"clefs-G"
365         clefPosition = #-2
366         centralCPosition = #-6
367         
368         automaticPhrasing = ##t
369         alignmentReference = #-1   % \down
370         defaultBarType = #"|"
371
372         explicitClefVisibility = #all-visible
373         explicitKeySignatureVisibility = #all-visible
374         autoBeamSettings = #auto-beam-settings
375
376         scriptDefinitions = #default-script-alist
377
378         verticalAlignmentChildCallback = #Align_interface::alignment_callback
379
380         pedalSustainStrings = #'("Ped." "*Ped." "*")
381         pedalUnaCordaStrings = #'("una corda" "" "tre corde")
382         pedalSostenutoStrings = #'()  % FIXME
383
384         tupletNumberFormatFunction = #denominator-tuplet-formatter
385         
386         subdivideBeams = ##f
387         extraNatural = ##t
388         autoAccidentals = #'((measure-same-octave . 0))
389         autoCautionaries = #'()  
390
391
392        keyAccidentalOrder = #'(
393          (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
394          (3  . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
395          (6 . -2) (2  . -2) (5 . -2 ) (1  . -2) (4  . -2) (0  . -2) (3 . -2)
396          (3  . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
397         )
398         breakAlignOrder = #'(
399           Instrument_name
400           Left_edge_item
401           Span_bar
402           Breathing_sign
403           Clef_item
404           Key_item
405           Staff_bar
406           Time_signature
407           Custos
408         )
409
410
411         \grobdescriptions #all-grob-descriptions
412 }
413
414 OrchestralScoreContext= \translator {
415         \ScoreContext
416 }
417 EasyNotation =  \translator {
418         \ScoreContext
419         NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
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 }