]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
e46bf7f89c03d85bd2ad6f7fd4bf119c439d1618
[lilypond.git] / ly / engraver-init.ly
1 \version "2.7.39"
2
3 \context {
4   \name "Global"
5
6   \accepts "Score"
7
8   \defaultchild "Score"
9   \description "Hard coded entry point for LilyPond. Cannot be tuned."
10   \grobdescriptions #all-grob-descriptions
11 }
12
13 \context {
14   \type "Engraver_group"
15   \name "Staff"
16   
17   \consists "Output_property_engraver"  
18   \consists "Bar_engraver"
19   %% Bar_engraver must be first so default bars aren't overwritten
20   %% with empty ones.
21   
22   \consists "Font_size_engraver"
23   \consists "Volta_engraver"
24   \consists "Separating_line_group_engraver"    
25   \consists "Dot_column_engraver"
26
27   %% perhaps move to Voice context?
28   \consists "Ottava_spanner_engraver"
29   \consists "Clef_engraver"
30   \consists "Key_engraver"
31   \consists "Time_signature_engraver"
32   \consists "Ledger_line_engraver" 
33   \consists "Staff_symbol_engraver"
34   \consists "Collision_engraver"
35   \consists "Rest_collision_engraver"
36   \consists "Accidental_engraver"
37   \consists "Piano_pedal_engraver"
38   \consists "Instrument_name_engraver"
39   \consists "String_number_engraver"
40   \consists "Axis_group_engraver"
41   \consists "Figured_bass_engraver"
42   \consists "Figured_bass_position_engraver"
43
44   \override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4)
45   extraVerticalExtent = ##f
46   verticalExtent = ##f 
47   localKeySignature = #'()
48   createSpacing = ##t
49   ignoreFiguredBassRest = ##t 
50   
51   %% explicitly set instrument, so we don't get 
52   %% weird effects when doing instrument names for
53   %% piano staves
54
55   instrumentName = #'()
56   shortInstrumentName = #'()
57   
58   \defaultchild "Voice"
59   \accepts "Voice"
60   \accepts "CueVoice"
61   
62   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
63 @code{Voice} contexts."
64
65 }
66
67 \context {
68   \Staff
69   \type "Engraver_group"
70   \name "DrumStaff"
71   \alias "Staff"
72   
73   \remove "Accidental_engraver"
74   \remove "Ottava_spanner_engraver"
75   \remove "Key_engraver" 
76   \remove "Piano_pedal_engraver"
77   \remove "String_number_engraver"
78   
79   \description "Handles typesetting for percussion."
80
81   \denies "Voice"
82   \accepts "DrumVoice"
83   \defaultchild "DrumVoice"
84
85   clefGlyph = #"clefs.percussion"
86   clefPosition = #0
87   \override Script #'staff-padding = #0.75 
88 }
89
90
91 \context {
92   \type "Engraver_group"
93   \name "InnerChoirStaff"
94   \consists "System_start_delimiter_engraver"
95   systemStartDelimiter = #'SystemStartBracket
96   vocalName = #'()
97   shortVocalName = #'()
98
99   \accepts "Staff"
100   \accepts "DrumStaff"
101   \accepts "RhythmicStaff"
102   \accepts "GrandStaff"
103   \accepts "PianoStaff"
104   \accepts "Lyrics"
105   \accepts "ChordNames"
106   \defaultchild "Staff"
107 }
108
109 \context {
110   \InnerChoirStaff
111   \name ChoirStaff
112   
113   \defaultchild "Staff"
114   \accepts "InnerChoirStaff"
115   \accepts "InnerStaffGroup"
116   \description "Identical to @code{StaffGroup} except that the
117 contained staves are not connected vertically."
118
119 }
120
121 \context{
122   \type "Engraver_group"
123   
124   \override VerticalAxisGroup #'minimum-Y-extent = ##f
125   extraVerticalExtent = ##f
126   verticalExtent = ##f 
127   localKeySignature = #'()
128   createSpacing = ##t
129
130   squashedPosition = #0
131   \name RhythmicStaff
132   \alias "Staff"
133   
134   \override BarLine #'bar-size = #4
135   \override VoltaBracket #'staff-padding = #3
136   \override StaffSymbol #'line-count = #1       
137
138   \override Stem  #'neutral-direction = #UP
139   \override Beam  #'neutral-direction = #UP
140   
141   \consists "Output_property_engraver"
142   \consists "Font_size_engraver"
143   \consists "Volta_engraver"
144   \consists "Separating_line_group_engraver"    
145   \consists "Dot_column_engraver"
146   \consists "Bar_engraver"
147   \consists "Staff_symbol_engraver"
148   \consists "Pitch_squash_engraver"
149   \consists "Time_signature_engraver"
150   \consists "Instrument_name_engraver"
151   \consists "Axis_group_engraver"
152   \consists "Ledger_line_engraver" 
153   
154   \accepts "Voice"
155   \accepts "CueVoice"
156   \defaultchild "Voice"
157
158   \description  "
159     A context like @code{Staff} but for printing rhythms.  Pitches are
160     ignored; the notes are printed on one line.  
161 "
162 }
163
164
165 \context {
166   \type "Engraver_group"
167   \name "Voice"
168
169   \description "
170     Corresponds to a voice on a staff.  This context handles the
171     conversion of dynamic signs, stems, beams, super- and subscripts,
172     slurs, ties, and rests.
173
174     You have to instantiate this explicitly if you want to have
175     multiple voices on the same staff."
176
177   localKeySignature = #'()
178   \consists "Font_size_engraver"
179
180   \consists "Pitched_trill_engraver"
181   \consists "Output_property_engraver"  
182   \consists "Arpeggio_engraver"
183   \consists "Multi_measure_rest_engraver"
184   \consists "Text_spanner_engraver"
185   \consists "Trill_spanner_engraver"
186   \consists "Grob_pq_engraver"
187   \consists "Forbid_line_break_engraver"
188   \consists "Laissez_vibrer_engraver"
189   \consists "Repeat_tie_engraver"
190   \consists "Note_head_line_engraver"
191   \consists "Glissando_engraver"
192   \consists "Ligature_bracket_engraver"
193   \consists "Breathing_sign_engraver"
194   \consists "Note_heads_engraver"
195   \consists "Dots_engraver"
196   \consists "Rest_engraver"
197
198   %% switch on to make stem directions interpolate for the
199   %% center line.
200   %  \consists "Melody_engraver"
201
202   \consists "Stem_engraver"
203   \consists "Beam_engraver"
204   \consists "Grace_beam_engraver"
205   \consists "Auto_beam_engraver"
206
207   %% must come before Script_column_engraver.
208   \consists "New_fingering_engraver"
209   
210   \consists "Chord_tremolo_engraver"
211   \consists "Percent_repeat_engraver"
212   \consists "Slash_repeat_engraver"
213   \consists "Part_combine_engraver"
214
215   \consists "Text_engraver"
216   \consists "Dynamic_engraver"
217   \consists "Fingering_engraver"
218   \consists "Bend_after_engraver"
219
220   \consists "Script_engraver"
221   \consists "Script_column_engraver"
222   \consists "Script_row_engraver"
223   \consists "Rhythmic_column_engraver"
224   \consists "Phrasing_slur_engraver"
225   \consists "Cluster_spanner_engraver"
226   \consists "Slur_engraver"
227   \consists "Tie_engraver"
228   \consists "Tuplet_engraver"
229   \consists "Grace_engraver"
230   \consists "Instrument_switch_engraver"
231   \consists "Skip_event_swallow_translator"
232 }
233
234 \context{
235   \Voice
236   
237   \name CueVoice
238   \alias Voice
239   fontSize = #-4
240   \override Stem #'length-fraction = #(magstep -4)
241   \override Beam #'length-fraction = #(magstep -4)
242 }
243
244 \context {
245   \Voice
246   \name DrumVoice
247   \alias Voice
248
249   \description "A voice on a percussion staff."
250   \remove "Arpeggio_engraver"
251   \consists "Multi_measure_rest_engraver"
252   \consists "Text_spanner_engraver"
253   \consists "Grob_pq_engraver"
254
255   \remove "Note_head_line_engraver"
256   \remove "Glissando_engraver"
257   \remove "Ligature_bracket_engraver"
258   \remove "Note_heads_engraver"
259   \consists "Drum_notes_engraver"
260   \remove "New_fingering_engraver"
261
262   \remove "Fingering_engraver"
263
264   \remove "Cluster_spanner_engraver"
265   \consists "Tuplet_engraver"
266
267   \consists "Skip_event_swallow_translator"
268 }
269
270 \context{
271   \type "Engraver_group"
272   \name GrandStaff
273   localKeySignature = #'()
274   
275   \description " A group of staffs, with a brace on the left
276     side, grouping the staves together.  The bar lines of the
277     contained staves are connected vertically.  "
278
279   \consists "Span_bar_engraver"
280   \consists "Span_arpeggio_engraver"
281   \consists "System_start_delimiter_engraver"
282   systemStartDelimiter = #'SystemStartBrace
283
284   \accepts "Staff"
285   \accepts "FiguredBass"
286 }
287
288 \context{
289   \GrandStaff
290   \name "PianoStaff"
291   \alias "GrandStaff"
292
293   \description
294   "Just like @code{GrandStaff} but with a forced distance between
295     the staves, so cross staff beaming and slurring can be used."
296   
297   \override VerticalAlignment #'forced-distance = #12
298   \override VerticalAlignment #'self-alignment-Y = #0
299
300   \consists "Vertical_align_engraver"
301   \consists "Instrument_name_engraver"
302   
303   instrumentName = #'()
304   shortInstrumentName = #'()
305 }
306
307 \context {
308   \type "Engraver_group"
309   \name InnerStaffGroup
310
311   \consists "Span_bar_engraver"
312   \consists "Span_arpeggio_engraver"
313   \consists "Output_property_engraver"  
314   systemStartDelimiter = #'SystemStartBracket
315
316   \consists "System_start_delimiter_engraver"
317
318   \defaultchild "Staff"
319   \accepts "Staff"
320   \accepts "RhythmicStaff"
321   \accepts "DrumStaff"
322   \accepts "GrandStaff"
323   \accepts "PianoStaff"
324   \accepts "TabStaff"   
325   \accepts "Lyrics"
326   \accepts "ChordNames"
327 }
328
329 \context {
330   \InnerStaffGroup
331   \name StaffGroup
332   
333   \description
334
335   "Groups staffs while adding a bracket on the left side, grouping
336 the staves together.  The bar lines of the contained staves are
337 connected vertically.  StaffGroup only consists of a collection of
338 staffs, with a bracket in front and spanning bar lines. "
339   
340   \accepts "InnerChoirStaff"
341   \accepts "ChoirStaff"
342   \accepts "InnerStaffGroup"
343   \accepts "FiguredBass"
344 }
345
346
347 \context{
348   \type "Engraver_group"
349   \override VerticalAxisGroup #'minimum-Y-extent = #'(-1.2 . 2.4)
350   extraVerticalExtent = ##f
351   verticalExtent = ##f
352
353   \description " Corresponds to a voice with lyrics.  Handles the
354 printing of a single line of lyrics.  "
355   
356   \name "Lyrics" 
357   \consists "Lyric_engraver"
358   \consists "Extender_engraver"
359   \consists "Hyphen_engraver"
360   \consists "Stanza_number_engraver"
361   \consists "Instrument_name_engraver"
362   \consists "Skip_event_swallow_translator"
363   \consists "Font_size_engraver"
364   \consists "Hara_kiri_engraver"
365   \override VerticalAxisGroup #'remove-first = ##t
366   \override VerticalAxisGroup #'remove-empty = ##t
367   \override SeparationItem #'padding = #0.2
368   \override InstrumentName #'self-alignment-Y = ##f
369
370   %% sync with define-grobs.scm ;
371   \override InstrumentName #'font-size = #1.0
372
373   %% make sure that barlines aren't collapsed, when
374   %% Bar_engraver is there.
375   \override BarLine #'bar-size = #0.1 
376   
377 }
378
379 \context {
380   \type "Engraver_group"
381   \name NoteNames
382   \consists "Axis_group_engraver"
383
384   \override VerticalAxisGroup #'minimum-Y-extent = ##f
385   extraVerticalExtent = ##f
386   verticalExtent = ##f 
387
388   
389   \consists "Rest_swallow_translator" 
390   \consists "Skip_event_swallow_translator"
391   \consists "Tie_engraver"
392   \consists "Note_name_engraver"
393   \consists "Separating_line_group_engraver"
394 }
395
396 \context {
397   \type "Engraver_group"
398   \name ChordNames
399   \description "Typesets chord names."
400
401   \consists "Volta_engraver"
402   
403   \consists "Rest_swallow_translator" 
404   \consists "Output_property_engraver"  
405   \consists "Separating_line_group_engraver"
406   \consists "Chord_name_engraver"
407   \consists "Skip_event_swallow_translator"
408   \consists "Hara_kiri_engraver"
409   
410   voltaOnThisStaff = ##f
411   \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2.5)
412   extraVerticalExtent = ##f
413   \override SeparatingGroupSpanner #'padding = #0.8
414   \override VerticalAxisGroup #'remove-first = ##t
415   \override VerticalAxisGroup #'remove-empty = ##t
416   verticalExtent = ##f 
417 }
418
419
420 RemoveEmptyStaffContext= \context {
421   \Staff
422   \remove "Axis_group_engraver"
423   \consists "Hara_kiri_engraver"
424   \override Beam #'auto-knee-gap = #'()
425   \override VerticalAxisGroup #'remove-empty = ##t
426 }
427
428 AncientRemoveEmptyStaffContext = \context {
429 %% why not add by default?
430   
431   \RemoveEmptyStaffContext
432   \accepts "VaticanaVoice"
433   \accepts "GregorianTranscriptionVoice"
434   \accepts "MensuralVoice"
435 }
436
437 \context {
438   \type "Score_engraver"
439   \name "Score"
440   
441   \description "This is the top level notation context.  No
442     other context can contain a @code{Score} context.  This context
443     handles the administration of time signatures.  It also makes sure
444     that items such as clefs, time signatures, and key-signatures are
445     aligned across staves.
446
447     You cannot explicitly instantiate a Score context (since it is
448     not contained in any other context).  It is instantiated
449     automatically when an output definition (a @code{\score} or
450     @code{\layout} block) is processed."
451
452
453   \consists "Paper_column_engraver"
454   \consists "Vertically_spaced_contexts_engraver"
455   \consists "Repeat_acknowledge_engraver"
456   \consists "Staff_collecting_engraver"
457
458   %% move the alias along with the engraver.
459
460   \consists "Timing_translator"
461   \consists "Default_bar_line_engraver"
462   \consists "Output_property_engraver"
463   \consists "System_start_delimiter_engraver"
464   \consists "Mark_engraver"     
465   \consists "Metronome_mark_engraver"   
466   \consists "Break_align_engraver"
467   \consists "Spacing_engraver"
468   \consists "Grace_spacing_engraver"
469   \consists "Vertical_align_engraver"
470   \consists "Stanza_number_align_engraver"
471   \consists "Bar_number_engraver"
472   \consists "Tweak_engraver"
473   \consists "Parenthesis_engraver"
474   
475   \defaultchild "Staff"
476
477   \accepts "Staff"
478   \accepts "RhythmicStaff"
479   \accepts "TabStaff"
480   \accepts "VaticanaStaff"
481   \accepts "GregorianTranscriptionStaff"
482   \accepts "MensuralStaff"
483   \accepts "StaffGroup"
484   \accepts "DrumStaff"
485   \accepts "Lyrics"
486   \accepts "ChordNames"
487   \accepts "GrandStaff"
488   \accepts "ChoirStaff"
489   \accepts "PianoStaff"
490   \accepts "Devnull"
491   \accepts "NoteNames"
492   \accepts "FiguredBass"
493   
494   soloText = #"Solo"
495   soloIIText = #"Solo II"
496   aDueText = #"a2"
497   printPartCombineTexts = ##t
498   systemStartDelimiter =#'SystemStartBar
499
500   drumStyleTable = #drums-style
501   
502   melismaBusyProperties = #default-melisma-properties
503   tieWaitForNote = ##f
504   clefGlyph = #"clefs.G"
505   clefPosition = #-2
506   middleCPosition = #-6
507   firstClef = ##t
508   
509   defaultBarType = #"|"
510   barNumberVisibility = #first-bar-number-invisible
511   automaticBars = ##t
512   
513   explicitClefVisibility = #all-visible
514   explicitKeySignatureVisibility = #all-visible
515   autoBeamSettings = #default-auto-beam-settings
516   autoBeaming = ##t
517   autoBeamCheck = #default-auto-beam-check
518   scriptDefinitions = #default-script-alist
519
520   pedalSustainStrings = #'("Ped." "*Ped." "*")
521   pedalSustainStyle = #'text
522   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
523   pedalUnaCordaStyle = #'text
524
525 %% These are in ordinary italic font, including the *,
526 %% but they are unlikely to be used, 
527 %% as the default pedal-style for SostenutoPedal is 'mixed':
528 %% i.e.  Sost. Ped_____________________ 
529   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") 
530   pedalSostenutoStyle = #'mixed
531
532   harmonicAccidentals = ##t 
533   fingeringOrientations = #'(up down)
534   stringNumberOrientations = #'(up down)
535   stringFingerOrientations = #'(right)
536   
537   markFormatter = #format-mark-letters
538   rehearsalMark = #1
539   subdivideBeams = ##f
540   allowBeamBreak = ##f
541   extraNatural = ##t
542   autoAccidentals = #'(Staff (same-octave . 0))
543   autoCautionaries = #'()  
544
545   printKeyCancellation = ##t
546   keyAlterationOrder = #`(
547     (6 . ,FLAT) (2  . ,FLAT) (5 . ,FLAT ) (1  . ,FLAT) (4  . ,FLAT) (0  . ,FLAT) (3  . ,FLAT)
548     (3  . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
549     (6 . ,DOUBLE-FLAT) (2  . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1  . ,DOUBLE-FLAT) (4  . ,DOUBLE-FLAT) (0  . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
550     (3  . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
551   )
552
553   barCheckSynchronize = ##f
554   
555 %% chord names:
556   chordNameFunction = #ignatzek-chord-names
557   majorSevenSymbol = #whiteTriangleMarkup
558   chordNameSeparator = #(make-simple-markup  "/")
559   chordNameExceptions = #ignatzekExceptions
560   chordNoteNamer = #'()
561   chordRootNamer = #note-name->markup
562   chordPrefixSpacer = #0
563   chordNameExceptionsFull = #fullJazzExceptions
564   chordNameExceptionsPartial = #partialJazzExceptions
565   
566
567   bassStaffProperties = #'((assign clefGlyph "clefs.F")
568   (assign clefPosition 2)
569   (assign middleCPosition 6))
570 %% tablature:
571   stringOneTopmost = ##t
572   highStringOne = ##t
573
574 %% One may change the strings tuning as following :
575 %% The lenght of the list must be equal to the number of string
576   stringTunings = #guitar-tuning
577   tablatureFormat = #fret-number-tablature-format
578
579 %%
580   figuredBassFormatter = #format-bass-figure
581   metronomeMarkFormatter = #format-metronome-markup
582   graceSettings = #`(
583     (Voice Stem direction ,UP)
584     (Voice Stem font-size -3)
585     (Voice NoteHead font-size -3)
586     (Voice Dots font-size -3)
587     (Voice Stem length-fraction 0.8)
588     (Voice Stem no-stem-extend #t)
589     (Voice Beam thickness 0.384)
590     (Voice Beam length-fraction 0.8)
591     (Voice Accidental font-size -4)
592     (Voice Slur direction ,DOWN)
593   )
594
595   keepAliveInterfaces = #'(rhythmic-grob-interface lyric-interface percent-repeat-interface)
596   quotedEventTypes = #'(note-event rest-event time-scaled-music tie-event beam-event)
597   instrumentTransposition = #(ly:make-pitch 0 0 0)
598
599   verticallySpacedContexts = #'(Staff)
600
601   hairpinToBarline = ##t 
602   
603   timing = ##t
604 }
605
606
607
608
609 \context {
610   \type "Engraver_group"
611   \name "FiguredBass"
612
613   \consists "Figured_bass_engraver"
614   \consists "Note_swallow_translator"
615   \consists "Skip_event_swallow_translator"
616   \consists "Separating_line_group_engraver"
617   \consists "Hara_kiri_engraver"
618
619   \override VerticalAxisGroup #'remove-empty = ##t
620   \override VerticalAxisGroup #'remove-first = ##t
621   \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.5 . 2.5)
622 }
623
624 \context {
625   \name "Devnull"
626   \type "Engraver_group"
627
628 %% don't want to route anything out of here: 
629   \alias "Staff"
630   \alias "Voice"
631   \consists "Swallow_engraver"
632   \description "Silently discards all musical information given to this context. "
633 }
634
635 \context {
636   \Voice
637   \name "TabVoice"
638   \alias "Voice"
639   \consists "Tab_note_heads_engraver"
640   \remove "Note_heads_engraver"
641   \remove "Fingering_engraver"
642   \remove "New_fingering_engraver"
643
644   \description "Context for drawing notes in a Tab staff. "
645
646   %% TabStaff increase the staff-space, which in turn
647   %% increases beam thickness and spacing; beams are
648   %% too big. We have to adjust the beam settings:
649   \override Beam #'thickness = #0.32
650   \override Beam #'length-fraction = #0.62
651
652   %% No accidental in tablature !
653   \remove Accidental_engraver
654 }
655
656 \context {
657   \Staff
658   \alias "Staff"
659   \name "TabStaff"
660   \denies "Voice"
661   \consists "Tab_staff_symbol_engraver"
662   
663   \description "Context for generating tablature. [DOCME]"
664
665   \accepts "TabVoice"
666   \defaultchild "TabVoice"
667   
668   %% 6 strings
669   \override StaffSymbol #'staff-space = #1.5
670
671   %% Don't draw stems over the tablature figures !
672   \override Stem #'avoid-note-head = ##t
673   
674   %% No accidental in tablature !
675   \remove "Accidental_engraver"
676   \remove "Key_engraver"
677   \remove "String_number_engraver"
678   %% Special "TAB" clef
679   clefGlyph = #"clefs.tab"
680   clefPosition = #0
681 }
682
683 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
684 %% but this does not work (is this a bug or intended behaviour?):
685 %%
686 %% If I try to do so, I get "error: unknown escaped string:
687 %% `\VaticanaStaff'" in params-init.ly.  If I also move
688 %% "\context { \Vaticana*Context }" from params-init.ly to the end
689 %% of gregorian-init.ly, then I get "error: parse error, unexpected
690 %% TRANSLATOR: \context { \VaticanaStaff }" in
691 %% gregorian-init.ly. --jr
692
693 \context {
694   \Voice
695   \name "VaticanaVoice"
696   \alias "Voice"
697   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
698
699   \remove "Slur_engraver"
700   \remove "Stem_engraver"
701   \remove "Ligature_bracket_engraver"
702   \consists "Vaticana_ligature_engraver"
703
704   %% Set default head for notes outside of \[ \].
705   \override NoteHead #'style = #'vaticana.punctum
706
707   %% Put some space before and after divisiones.
708   %% FIXME: This does not seem to show any effect.
709   \override Script #'padding = #0.5
710
711   %% There are no beams in Gregorian Chant notation.
712   autoBeaming = ##f
713
714   %% Prepare TextSpanner for \episem{Initium|Finis} use.
715   %%
716   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
717   %% always produce dashed lines, regardless of the style property.
718   %%
719   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
720   %% required to force the articulation signs being placed vertically
721   %% tightly to the correpsonding note heads.
722   %%
723   \override TextSpanner #'dash-fraction = #'()
724   \override TextSpanner #'style = #'line
725   \override TextSpanner #'edge-height = #'(0 . 0)
726   \override TextSpanner #'padding = #-0.1
727   \override TextSpanner #'enclose-bounds = #1
728   \override TextSpanner #'edge-text = #'("" . "")
729 }
730
731 \context {
732   \Staff
733   \name "VaticanaStaff"
734   \alias "Staff"
735   \denies "Voice"
736   \accepts "VaticanaVoice"
737   \defaultchild "VaticanaVoice"
738
739   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
740
741   \remove "Time_signature_engraver"
742   \consists "Custos_engraver"
743
744   %% We can not remove Bar_engraver; otherwise clefs and custodes will
745   %% not show up any more among other line breaking issues.
746   %% Instead, we make the grob transparent.
747   \override BarLine #'transparent = ##t
748
749   \override StaffSymbol #'line-count = #4
750   \override StaffSymbol #'thickness = #0.6
751
752   %% FIXME: unit on StaffSymbol's width should be \linewidth.
753   %% \override StaffSymbol #'width = #60.0
754
755   %% Choose vaticana do clef on 3rd line as default.
756   clefGlyph = #"clefs.vaticana.do"
757   middleCPosition = #1
758   clefPosition = #1
759   clefOctavation = #0
760
761   %% Select vaticana style font.
762   \override KeySignature #'style = #'vaticana
763   \override Accidental #'style = #'vaticana
764   \override Custos #'style = #'vaticana
765   \override Custos #'neutral-position = #3
766   \override Custos #'neutral-direction = #DOWN
767   \override Dots #'style = #'vaticana
768 }
769
770 \context {
771   \Voice
772   \name "GregorianTranscriptionVoice"
773   \alias "Voice"
774
775   %% Removing ligature bracket engraver without replacing it by some
776   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
777   %% warning for every "\[" and "\]".  Therefore, we make the grob
778   %% transparent instead.
779   \override LigatureBracket #'transparent = ##t
780
781   %% Put some space before and after divisiones.
782   %% FIXME: This does not seem to show any effect.
783   \override Script #'padding = #0.5
784
785   %% There are no beams in Gregorian Chant notation.
786   autoBeaming = ##f
787
788   %% Prepare TextSpanner for \episem{Initium|Finis} use.
789   %%
790   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
791   %% always produce dashed lines, regardless of the style property.
792   %%
793   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
794   %% required to force the articulation signs being placed vertically
795   %% tightly to the correpsonding note heads.
796   %%
797   \override TextSpanner #'dash-fraction = #'()
798   \override TextSpanner #'style = #'line
799   \override TextSpanner #'edge-height = #'(0 . 0)
800   \override TextSpanner #'padding = #-0.1
801   \override TextSpanner #'enclose-bounds = #1
802   \override TextSpanner #'edge-text = #'("" . "")
803 }
804
805 \context {
806   \Staff
807   \name "GregorianTranscriptionStaff"
808   \alias "Staff"
809   \denies "Voice"
810   \accepts "GregorianTranscriptionVoice"
811   \defaultchild "GregorianTranscriptionVoice"
812
813   %% We can not remove Bar_engraver; otherwise clefs and custodes will
814   %% not show up any more among other line breaking issues.
815   %% Instead, we make the grob transparent.
816   \override BarLine #'transparent = ##t
817 }
818
819 \context {
820   \Voice
821   \name "MensuralVoice"
822   \alias "Voice"
823   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style."
824
825   \remove "Slur_engraver"
826   \remove "Ligature_bracket_engraver"
827   \consists "Mensural_ligature_engraver"
828
829   %% Set default head for notes outside of \[ \].
830   \override NoteHead #'style = #'petrucci
831
832   %% There are no beams in mensural notation.
833   autoBeaming = ##f
834 }
835
836 \context {
837   \Staff
838   \name "MensuralStaff"
839   \alias "Staff"
840   \denies "Voice"
841   \defaultchild "MensuralVoice"
842   \accepts "MensuralVoice"
843   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting a piece in mensural style."
844
845   \consists "Custos_engraver"
846
847   %% We can not remove Bar_engraver; otherwise clefs and custodes will
848   %% not show up any more among other line breaking issues.
849   %% Instead, we make the grob transparent.
850   \override BarLine #'transparent = ##t
851
852   \override StaffSymbol #'thickness = #0.6
853
854   %% FIXME: unit on StaffSymbol's width should be \linewidth.
855   %% \override StaffSymbol #'width = #60.0
856
857   %% Choose petrucci g clef on 2nd line as default.
858   clefGlyph = #"clefs.petrucci.g"
859   middleCPosition = #-6
860   clefPosition = #-2
861   clefOctavation = #0
862
863   %% Select mensural style font.
864   \override TimeSignature #'style = #'mensural
865   \override KeySignature #'style = #'mensural
866   \override Accidental #'style = #'mensural
867   \override Custos #'style = #'mensural
868   \override Custos #'neutral-position = #3
869   \override Custos #'neutral-direction = #DOWN
870
871   %% Accidentals are valid only once (same as
872   %% #(set-accidental-style 'forget))
873   extraNatural = ##f
874   autoAccidentals = #'(Staff (same-octave . -1))
875   autoCautionaries = #'()  
876   printKeyCancellation = ##f
877 }
878
879
880 RemoveEmptyRhythmicStaffContext= \context {
881   \RhythmicStaff
882   \remove "Axis_group_engraver"
883   \override VerticalAxisGroup #'remove-empty = ##t
884   \consists "Hara_kiri_engraver"
885 }