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