]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
man fixes
[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           ambitus
418           span-bar
419           breathing-sign
420           clef
421           key-signature
422           staff-bar
423           time-signature
424           custos
425         )
426         barCheckSynchronize = ##t
427
428         \grobdescriptions #all-grob-descriptions
429 }
430
431 OrchestralScoreContext= \translator {
432         \ScoreContext
433 }
434 EasyNotation =  \translator {
435         \ScoreContext
436         NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
437 }
438
439 % retain for compatibility reasons (FIXME: convert-ly)
440 GraceContext = \translator {
441         \type "Engraver_group_engraver"
442 }
443
444 FiguredBassContext = \translator {
445         \type "Engraver_group_engraver"
446         \name FiguredBass 
447         \consists "Figured_bass_engraver"       
448         \consistsend "Axis_group_engraver"
449 }
450
451
452 TabVoiceContext =   \translator {
453       \VoiceContext
454       \name "TabVoice"
455       \denies "Thread"
456       \consists "Tab_note_heads_engraver"
457
458       % Draws all stems/beams out of the staff (and not in the middle of the staff !)
459       Beam \override #'damping = #100000
460       Stem \override #'up-to-staff = ##t
461
462       % No accidental in tablature !
463       \remove Accidental_engraver
464       Accidental  = \turnOff 
465 }
466
467 TabStaffContext = \translator {
468       \StaffContext
469       \alias "Staff"
470       \name "TabStaff"
471       \denies "Voice"
472       \accepts "TabVoice"
473       
474       % 6 strings
475       StaffSymbol \override #'line-count  = #6
476       StaffSymbol \override #'staff-space = #1.5
477       
478       % One may change the strings tuning as following :
479       % The lenght of the list must be equal to the number of string
480       %TabNoteHead \override #'string-tunings = #'(10 10 10 10 10 10)
481       
482       % Special "TAB" clef
483       clefGlyph = #"clefs-tab"
484       clefPosition = #0
485       
486       % Don't draw stems over the tabature figures !
487       Stem \override #'avoid-note-head = ##t
488       
489       % No accidental in tablature !
490       \remove Accidental_engraver
491       Accidental  = \turnOff 
492       
493       stringTunings   = #'(-20 -15 -10 -5 -1 4)
494       tablatureFormat = #fret-number-tablature-format
495 }
496