]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
2002-07-31 Rune Zedeler <rune@zedeler.dk>
[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         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
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 %{
329   The HaraKiriStaffContexts doesn't override \name,
330   so it is still named `Staff'.
331
332   %\translator { \HaraKiriStaffContext }
333 %}
334
335
336
337
338 ScoreContext = \translator {
339         \type Score_engraver
340         \name Score
341         localKeySignature = #'()
342         
343         \consists "Repeat_acknowledge_engraver"
344         \consists "Staff_collecting_engraver"
345         \consists "Timing_engraver"
346         \consists "Output_property_engraver"
347         \consists "System_start_delimiter_engraver"
348         \consists "Mark_engraver"       
349         \consists "Break_align_engraver"
350         \consists "Spacing_engraver"
351         \consists "Vertical_align_engraver"
352         \consists "Lyric_phrasing_engraver"
353         \consists "Bar_number_engraver"
354         \consists "Span_arpeggio_engraver"
355
356         \accepts "Staff"
357         \accepts "TabStaff"
358         \accepts "StaffContainer"
359         \accepts "StaffGroup"
360         \accepts "RhythmicStaff"        
361         \accepts "Lyrics"
362         \accepts "ChordNames"
363         \accepts "GrandStaff"
364         \accepts "ChoirStaff"
365         \accepts "PianoStaff"
366         \accepts "NoteNames"
367         \accepts "FiguredBass"  
368
369         soloText = #"Solo"
370         soloIIText = #"Solo II"
371         aDueText = #"a2"
372         soloADue = ##t
373         splitInterval = #'(0 . 1)
374         changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
375         systemStartDelimiter =#'SystemStartBar
376
377
378         %  name, glyph id, clef position 
379         % where is c0 in this clef?
380
381         clefGlyph = #"clefs-G"
382         clefPosition = #-2
383         centralCPosition = #-6
384         
385         automaticPhrasing = ##t
386         automaticMelismata = ##t
387         
388         defaultBarType = #"|"
389
390         explicitClefVisibility = #all-visible
391         explicitKeySignatureVisibility = #all-visible
392         autoBeamSettings = #auto-beam-settings
393         autoBeaming = ##t
394         scriptDefinitions = #default-script-alist
395
396         verticalAlignmentChildCallback = #Align_interface::alignment_callback
397
398         pedalSustainStrings = #'("Ped." "*Ped." "*")
399         pedalUnaCordaStrings = #'("una corda" "" "tre corde")
400
401         %% these are in ordinary italic font, including the *, but they are unlikely to be used, 
402         %% as the default pedal-style for SostenutoPedal is 'mixed': i.e.  Sost. Ped_____________________ 
403         pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") 
404
405         tupletNumberFormatFunction = #denominator-tuplet-formatter
406         
407         subdivideBeams = ##f
408         extraNatural = ##t
409         autoAccidentals = #'(Staff (same-octave . 0))
410         autoCautionaries = #'()  
411
412
413        keyAccidentalOrder = #'(
414          (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
415          (3  . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
416          (6 . -2) (2  . -2) (5 . -2 ) (1  . -2) (4  . -2) (0  . -2) (3 . -2)
417          (3  . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
418         )
419         breakAlignOrder = #'(
420           instrument-name
421           left-edge
422           ambitus
423           span-bar
424           breathing-sign
425           clef
426           key-signature
427           staff-bar
428           time-signature
429           custos
430         )
431         barCheckSynchronize = ##t
432
433         \grobdescriptions #all-grob-descriptions
434 }
435
436 OrchestralScoreContext= \translator {
437         \ScoreContext
438 }
439 EasyNotation =  \translator {
440         \ScoreContext
441         NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
442 }
443
444 % retain for compatibility reasons (FIXME: convert-ly)
445 GraceContext = \translator {
446         \type "Engraver_group_engraver"
447 }
448
449 FiguredBassContext = \translator {
450         \type "Engraver_group_engraver"
451         \name FiguredBass 
452         \consists "Figured_bass_engraver"       
453         \consistsend "Axis_group_engraver"
454 }
455
456
457 TabVoiceContext =   \translator {
458       \VoiceContext
459       \name "TabVoice"
460       \denies "Thread"
461       \consists "Tab_note_heads_engraver"
462
463       % Draws all stems/beams out of the staff (and not in the middle of the staff !)
464       Beam \override #'damping = #100000
465       Stem \override #'up-to-staff = ##t
466
467       % No accidental in tablature !
468       \remove Accidental_engraver
469       Accidental  = \turnOff 
470 }
471
472 TabStaffContext = \translator {
473       \StaffContext
474       \alias "Staff"
475       \name "TabStaff"
476       \denies "Voice"
477       \accepts "TabVoice"
478       
479       % 6 strings
480       StaffSymbol \override #'line-count  = #6
481       StaffSymbol \override #'staff-space = #1.5
482       
483       % One may change the strings tuning as following :
484       % The lenght of the list must be equal to the number of string
485       %TabNoteHead \override #'string-tunings = #'(10 10 10 10 10 10)
486       
487       % Special "TAB" clef
488       clefGlyph = #"clefs-tab"
489       clefPosition = #0
490       
491       % Don't draw stems over the tabature figures !
492       Stem \override #'avoid-note-head = ##t
493       
494       % No accidental in tablature !
495       \remove Accidental_engraver
496       Accidental  = \turnOff 
497       
498       stringTunings   = #'(-20 -15 -10 -5 -1 4)
499       tablatureFormat = #fret-number-tablature-format
500 }
501