]> 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         \consists "Forbid_line_break_engraver"
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 "Grace_beam_engraver"
141         \consists "Auto_beam_engraver"
142
143         \consists "Chord_tremolo_engraver"
144         \consists "Percent_repeat_engraver"
145         \consists "Melisma_engraver"
146
147 %{
148  Must come before text_engraver, but after note_column engraver.
149
150 %}
151         \consists "Text_engraver"
152         \consists "Dynamic_engraver"
153         \consists "Fingering_engraver"
154
155         \consists "Script_engraver"
156         \consists "Script_column_engraver"
157         \consists "Rhythmic_column_engraver"
158         \consists "Phrasing_slur_engraver"
159         \consists "Slur_engraver"
160         \consists "Tie_engraver"
161         \consists "Porrectus_engraver"
162         \consists "Tuplet_engraver"
163         \consists "A2_engraver"
164
165         \consists "Skip_req_swallow_translator"
166         \accepts Thread % bug if you leave out this!
167 }
168
169 ThreadContext = \translator{
170         \type Engraver_group_engraver
171         \name Thread
172         localKeySignature = #'()
173
174         \consists "Font_size_engraver"  
175         \consists "Thread_devnull_engraver"
176         \consists "Note_heads_engraver"
177         \consists "Rest_engraver"
178         \consists "Note_head_line_engraver"
179         \consists "Output_property_engraver"    
180
181 }
182
183 GrandStaffContext=\translator{
184         \type "Engraver_group_engraver"
185         \name GrandStaff
186         localKeySignature = #'()
187         \consists "Span_bar_engraver"
188         \consists "Span_arpeggio_engraver"
189         \consists "System_start_delimiter_engraver"
190         systemStartDelimiter = #'SystemStartBrace
191
192         \accepts "Staff"
193 }
194
195 PianoStaffContext = \translator{
196         \GrandStaffContext
197         \name "PianoStaff"
198         \alias "GrandStaff"
199
200         \consists "Vertical_align_engraver"
201         \consists "Instrument_name_engraver"
202         
203         instrument = #'()
204         instr = #'()
205         
206         verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
207         VerticalAlignment \override #'forced-distance = #12
208         VerticalAlignment \override #'self-alignment-Y = #0
209 %       \consistsend "Axis_group_engraver"
210 }
211
212 InnerStaffGroupContext= \translator {
213         \type "Engraver_group_engraver"
214         \name InnerStaffGroup
215         localKeySignature = #'()
216
217         \consists "Span_bar_engraver"
218         \consists "Span_arpeggio_engraver"
219         \consists "Output_property_engraver"    
220         systemStartDelimiter = #'SystemStartBracket
221
222         \consists "System_start_delimiter_engraver"
223         \accepts "Staff"
224         \accepts "RhythmicStaff"
225         \accepts "GrandStaff"
226         \accepts "PianoStaff"
227         \accepts "TabStaff"     
228         \accepts "Lyrics"
229         \accepts "ChordNames"
230 }
231 StaffGroupContext = \translator {
232         \InnerStaffGroupContext
233         \name StaffGroup
234         \accepts "InnerChoirStaff"
235         \accepts "ChoirStaff"
236         \accepts "InnerStaffGroup"
237         \accepts "FiguredBass"
238 }
239
240
241 % UGH! JUNKME
242 LyricsVoiceContext= \translator{
243         \type "Engraver_group_engraver"
244         \consistsend "Axis_group_engraver"
245         minimumVerticalExtent = #(cons -1.2 1.2)
246         extraVerticalExtent = ##f
247         verticalExtent = ##f 
248         \name LyricsVoice 
249         \consists "Separating_line_group_engraver"
250         \consists "Lyric_engraver"
251         \consists "Extender_engraver"
252         \consists "Hyphen_engraver"
253         \consists "Stanza_number_engraver"
254         \consists "Skip_req_swallow_translator"
255         phrasingPunctuation = #".,:!?\""
256         
257 }
258 NoteNamesContext = \translator {
259         \type "Engraver_group_engraver"
260         \name NoteNames
261         \consistsend "Axis_group_engraver"
262
263         minimumVerticalExtent = ##f
264         extraVerticalExtent = ##f
265         verticalExtent = ##f 
266
267         
268         \consists "Note_name_engraver"
269         \consists "Separating_line_group_engraver"
270 }
271
272 LyricsContext = \translator {
273         \type "Engraver_group_engraver"
274         \name Lyrics
275         \consists Vertical_align_engraver %need this for getting folded repeats right.
276
277
278         \consistsend "Axis_group_engraver"
279         minimumVerticalExtent = ##f
280         extraVerticalExtent = ##f
281         verticalExtent = ##f 
282         
283         \accepts "LyricsVoice"
284 }
285
286
287 ChordNamesContext = \translator {
288         \type "Engraver_group_engraver"
289         \name ChordNames
290
291
292
293
294         \consists "Output_property_engraver"    
295         \consists "Separating_line_group_engraver"
296         \consists "Chord_name_engraver"
297         \consists "Skip_req_swallow_translator"
298         \consistsend "Axis_group_engraver"
299         minimumVerticalExtent = ##f
300         extraVerticalExtent = ##f
301         verticalExtent = ##f 
302         }
303
304
305
306 StupidScore = \translator {
307         \type "Score_engraver"
308         \name Score
309         \consists "Note_heads_engraver"
310 }
311
312
313
314
315 HaraKiriStaffContext = \translator {
316         \StaffContext
317         \remove "Axis_group_engraver"
318         \consistsend "Hara_kiri_engraver"
319         \consists "Instrument_name_engraver"
320         \accepts "Voice"
321 }
322 %{
323   The HaraKiriStaffContexts doesn't override \name,
324   so it is still named `Staff'.
325
326   %\translator { \HaraKiriStaffContext }
327 %}
328
329
330
331
332 ScoreContext = \translator {
333         \type Score_engraver
334         \name Score
335         localKeySignature = #'()
336         
337         \consists "Repeat_acknowledge_engraver"
338         \consists "Staff_collecting_engraver"
339         \consists "Timing_engraver"
340         \consists "Output_property_engraver"
341         \consists "System_start_delimiter_engraver"
342         \consists "Mark_engraver"       
343         \consists "Break_align_engraver"
344         \consists "Spacing_engraver"
345         \consists "Vertical_align_engraver"
346         \consists "Lyric_phrasing_engraver"
347         \consists "Bar_number_engraver"
348         \consists "Span_arpeggio_engraver"
349
350         \accepts "Staff"
351         \accepts "TabStaff"
352         \accepts "StaffContainer"
353         \accepts "StaffGroup"
354         \accepts "RhythmicStaff"        
355         \accepts "Lyrics"
356         \accepts "ChordNames"
357         \accepts "GrandStaff"
358         \accepts "ChoirStaff"
359         \accepts "PianoStaff"
360         \accepts "NoteNames"
361         \accepts "FiguredBass"  
362
363         soloText = #"Solo"
364         soloIIText = #"Solo II"
365         aDueText = #"a2"
366         soloADue = ##t
367         splitInterval = #'(0 . 1)
368         changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
369         systemStartDelimiter =#'SystemStartBar
370
371
372         %  name, glyph id, clef position 
373         % where is c0 in this clef?
374
375         clefGlyph = #"clefs-G"
376         clefPosition = #-2
377         centralCPosition = #-6
378         
379         automaticPhrasing = ##t
380         
381         defaultBarType = #"|"
382
383         explicitClefVisibility = #all-visible
384         explicitKeySignatureVisibility = #all-visible
385         autoBeamSettings = #auto-beam-settings
386         autoBeaming = ##t
387         scriptDefinitions = #default-script-alist
388
389         verticalAlignmentChildCallback = #Align_interface::alignment_callback
390
391         pedalSustainStrings = #'("Ped." "*Ped." "*")
392         pedalUnaCordaStrings = #'("una corda" "" "tre corde")
393
394         %% these are in ordinary italic font, including the *, but they are unlikely to be used, 
395         %% as the default pedal-style for SostenutoPedal is 'mixed': i.e.  Sost. Ped_____________________ 
396         pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") 
397
398         tupletNumberFormatFunction = #denominator-tuplet-formatter
399         
400         subdivideBeams = ##f
401         extraNatural = ##t
402         autoAccidentals = #'(Staff (same-octave . 0))
403         autoCautionaries = #'()  
404
405
406        keyAccidentalOrder = #'(
407          (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
408          (3  . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
409          (6 . -2) (2  . -2) (5 . -2 ) (1  . -2) (4  . -2) (0  . -2) (3 . -2)
410          (3  . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
411         )
412         breakAlignOrder = #'(
413           instrument-name
414           left-edge
415           span-bar
416           breathing-sign
417           clef
418           key-signature
419           staff-bar
420           time-signature
421           custos
422         )
423
424
425         \grobdescriptions #all-grob-descriptions
426 }
427
428 OrchestralScoreContext= \translator {
429         \ScoreContext
430 }
431 EasyNotation =  \translator {
432         \ScoreContext
433         NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
434 }
435
436 % retain for compatibility reasons (FIXME: convert-ly)
437 GraceContext = \translator {
438         \type "Engraver_group_engraver"
439 }
440
441 FiguredBassContext = \translator {
442         \type "Engraver_group_engraver"
443         \name FiguredBass 
444         \consists "Figured_bass_engraver"       
445         \consistsend "Axis_group_engraver"
446 }
447
448 TabVoiceContext =   \translator {
449       \VoiceContext
450       \name "TabVoice"
451       \denies "Thread"
452       \consists "Tab_note_heads_engraver"
453       
454       % Draws all stems/beams out of the staff (and not in the middle of the staff !)
455       Beam \override #'damping = #100000
456       Stem \override #'up-to-staff = ##t
457       
458       % No accidental in tablature !
459       \remove Accidental_engraver
460       Accidental  = \turnOff 
461 }
462
463 TabStaffContext = \translator {
464       \StaffContext
465       \alias "Staff"
466       \name "TabStaff"
467       \denies "Voice"
468       \accepts "TabVoice"
469       
470       % 6 strings
471       StaffSymbol \override #'line-count  = #6
472       StaffSymbol \override #'staff-space = #1.5
473       
474       % One may change the strings tuning as following :
475       % The lenght of the list must be equal to the number of string
476       %TabNoteHead \override #'string-tunings = #'(10 10 10 10 10 10)
477       
478       % Special "TAB" clef
479       clefGlyph = #"clefs-tab"
480       clefPosition = #0
481       
482       % Don't draw stems over the tabature figures !
483       Stem \override #'avoid-note-head = ##t
484       
485       % No accidental in tablature !
486       \remove Accidental_engraver
487       Accidental  = \turnOff 
488       
489       stringTunings   = #'(-20 -15 -10 -5 -1 4)
490       tablatureFormat = #fret-number-tablature-format
491 }
492