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