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