]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
release: 1.5.17
[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 "Text_engraver"
146
147         \consists "Script_engraver"
148         \consists "Script_column_engraver"
149         \consists "Rhythmic_column_engraver"
150         \consists "Phrasing_slur_engraver"
151         \consists "Slur_engraver"
152         \consists "Tie_engraver"
153         \consists "Porrectus_engraver"
154         \consists "Tuplet_engraver"
155         \consists "A2_engraver"
156
157         \consists "Skip_req_swallow_translator"
158         \accepts Thread % bug if you leave out this!
159 }
160
161 ThreadContext = \translator{
162         \type Engraver_group_engraver
163         \name Thread
164
165         \consists "Font_size_engraver"  
166         \consists "Thread_devnull_engraver"
167         \consists "Note_heads_engraver"
168         \consists "Rest_engraver"
169         \consists "Note_head_line_engraver"
170         \consists "Output_property_engraver"    
171         Generic_property_list = #generic-thread-properties
172 }
173
174 GrandStaffContext=\translator{
175         \type "Engraver_group_engraver"
176         \name GrandStaff
177         \consists "Span_bar_engraver"
178         \consists "Span_arpeggio_engraver"
179         \consists "System_start_delimiter_engraver"
180         SystemStartDelimiter = #'SystemStartBrace
181         Generic_property_list = #generic-grand-staff-properties
182         \accepts "Staff"
183 }
184
185 PianoStaffContext = \translator{
186         \GrandStaffContext
187         \name "PianoStaff"
188
189         \consists "Vertical_align_engraver"
190         \consists "Instrument_name_engraver"
191         
192         instrument = ##f
193         instr = ##f
194         
195         verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
196         VerticalAlignment \override #'forced-distance = #12
197         VerticalAlignment \override #'self-alignment-Y = #0
198 %       \consistsend "Axis_group_engraver"
199 }
200
201 InnerStaffGroupContext= \translator {
202         \type "Engraver_group_engraver"
203         \name InnerStaffGroup
204
205         \consists "Span_bar_engraver"
206         \consists "Span_arpeggio_engraver"
207         \consists "Output_property_engraver"    
208         SystemStartDelimiter = #'SystemStartBracket
209
210         \consists "System_start_delimiter_engraver"
211         \accepts "Staff"
212         \accepts "RhythmicStaff"
213         \accepts "GrandStaff"
214         \accepts "PianoStaff"
215         
216         \accepts "Lyrics"
217         \accepts "ChordNames"
218 }
219 StaffGroupContext = \translator {
220         \InnerStaffGroupContext
221         \name StaffGroup
222         \accepts "InnerChoirStaff"
223         \accepts "ChoirStaff"
224         \accepts "InnerStaffGroup"
225         \accepts "FiguredBass"
226 }
227
228
229 % UGH! JUNKME
230 LyricsVoiceContext= \translator{
231         \type "Engraver_group_engraver"
232         \consistsend "Axis_group_engraver"
233         MinimumVerticalExtent = #(cons -1.2 1.2)
234         ExtraVerticalExtent = ##f
235         VerticalExtent = ##f 
236         \name LyricsVoice 
237         \consists "Separating_line_group_engraver"
238         \consists "Lyric_engraver"
239         \consists "Extender_engraver"
240         \consists "Hyphen_engraver"
241         \consists "Stanza_number_engraver"
242         phrasingPunctuation = #".,:!?\""
243         
244 }
245 NoteNamesContext = \translator {
246         \type "Engraver_group_engraver"
247         \name NoteNames
248         \consistsend "Axis_group_engraver"
249
250         MinimumVerticalExtent = ##f
251         ExtraVerticalExtent = ##f
252         VerticalExtent = ##f 
253
254         
255         \consists "Note_name_engraver"
256         \consists "Separating_line_group_engraver"
257 }
258
259 LyricsContext = \translator {
260         \type "Engraver_group_engraver"
261         \name Lyrics
262         \consists Vertical_align_engraver %need this for getting folded repeats right.
263         Generic_property_list = #generic-lyrics-properties
264
265         \consistsend "Axis_group_engraver"
266         MinimumVerticalExtent = ##f
267         ExtraVerticalExtent = ##f
268         VerticalExtent = ##f 
269         
270         \accepts "LyricsVoice"
271 }
272
273
274 ChordNamesContext = \translator {
275         \type "Engraver_group_engraver"
276         \name ChordNames
277
278         Generic_property_list = #generic-chord-staff-properties
279
280
281         \consists "Output_property_engraver"    
282         \consists "Separating_line_group_engraver"
283         \consists "Chord_name_engraver"
284         \consists "Skip_req_swallow_translator"
285         \consistsend "Axis_group_engraver"
286         MinimumVerticalExtent = ##f
287         ExtraVerticalExtent = ##f
288         VerticalExtent = ##f 
289
290         VerticalAxisGroup \override #'invisible-staff = ##t
291         }
292
293
294
295 StupidScore = \translator {
296         \type "Score_engraver"
297         \name Score
298         \consists "Note_heads_engraver"
299 }
300
301
302
303
304 HaraKiriStaffContext = \translator {
305         \StaffContext
306         \remove "Axis_group_engraver"
307         \consistsend "Hara_kiri_engraver"
308         \consists "Instrument_name_engraver"
309         \accepts "Voice"
310 }
311 %{
312   The HaraKiriStaffContexts doesn't override \name,
313   so it is still named `Staff'.
314
315   %\translator { \HaraKiriStaffContext }
316 %}
317
318
319
320
321 ScoreContext = \translator {
322         \type Score_engraver
323         \name Score
324         
325         \consists "Repeat_acknowledge_engraver"
326         \consists "Timing_engraver"
327         \consists "Output_property_engraver"
328         \consists "System_start_delimiter_engraver"
329         \consists "Mark_engraver"       
330         \consists "Break_align_engraver"
331         \consists "Spacing_engraver"
332         \consists "Vertical_align_engraver"
333         \consists "Lyric_phrasing_engraver"
334         \consists "Bar_number_engraver"
335         \consists "Span_arpeggio_engraver"
336
337         \accepts "Staff"
338         \accepts "StaffContainer"
339         \accepts "StaffGroup"
340         \accepts "RhythmicStaff"        
341         \accepts "Lyrics"
342         \accepts "ChordNames"
343         \accepts "GrandStaff"
344         \accepts "ChoirStaff"
345         \accepts "PianoStaff"
346         \accepts "NoteNames"
347         \accepts "FiguredBass"  
348
349         soloText = #"Solo"
350         soloIIText = #"Solo II"
351         aDueText = #"a2"
352         soloADue = ##t
353         splitInterval = #'(0 . 1)
354         changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
355         SystemStartDelimiter =#'SystemStartBar
356         barAuto = ##t
357         voltaVisibility = ##t
358         %  name, glyph id, clef position 
359         % where is c0 in this clef?
360
361         clefGlyph = #"clefs-G"
362         clefPosition = #-2
363         centralCPosition = #-6
364         
365         automaticPhrasing = ##t
366         alignmentReference = #-1   % \down
367         defaultBarType = #"|"
368
369         explicitClefVisibility = #all-visible
370         explicitKeySignatureVisibility = #all-visible
371         autoBeamSettings = #auto-beam-settings
372
373         scriptDefinitions = #default-script-alist
374
375         verticalAlignmentChildCallback = #Align_interface::alignment_callback
376
377         pedalSustainStrings = #'("Ped." "*Ped." "*")
378         pedalUnaCordaStrings = #'("una corda" "" "tre corde")
379         pedalSostenutoStrings = #'()  % FIXME
380
381         tupletNumberFormatFunction = #denominator-tuplet-formatter
382         
383         subdivideBeams = ##f
384
385        keyAccidentalOrder = #'(
386          (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
387          (3  . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
388          (6 . -2) (2  . -2) (5 . -2 ) (1  . -2) (4  . -2) (0  . -2) (3 . -2)
389          (3  . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
390         )
391         breakAlignOrder = #'(
392           Instrument_name
393           Left_edge_item
394           Span_bar
395           Breathing_sign
396           Clef_item
397           Key_item
398           Staff_bar
399           Time_signature
400           Custos
401         )
402
403
404         \grobdescriptions #all-grob-descriptions
405 }
406
407 OrchestralScoreContext= \translator {
408         \ScoreContext
409 }
410 EasyNotation =  \translator {
411         \ScoreContext
412         NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
413         easyPlay = ##t
414 }
415
416 % retain for compatibility reasons (FIXME: convert-ly)
417 GraceContext = \translator {
418         \type "Engraver_group_engraver"
419 }
420
421 FiguredBassContext = \translator {
422         \type "Engraver_group_engraver"
423         \name FiguredBass 
424         \consists "Figured_bass_engraver"       
425         \consistsend "Axis_group_engraver"
426 }