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