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