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