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