]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
Refine check-translation error message
[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   
64   %% explicitly set instrument, so we don't get 
65   %% weird effects when doing instrument names for
66   %% piano staves
67
68   instrumentName = #'()
69   shortInstrumentName = #'()
70   
71   \defaultchild "Voice"
72   \accepts "Voice"
73   \accepts "CueVoice"
74   
75   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
76 @code{Voice} contexts."
77
78 }
79
80 \context {
81   \Staff
82   \type "Engraver_group"
83   \name "DrumStaff"
84   \alias "Staff"
85   
86   \remove "Accidental_engraver"
87   \remove "Ottava_spanner_engraver"
88   \remove "Key_engraver" 
89   \remove "Piano_pedal_engraver"
90   \remove "String_number_engraver"
91   
92   \description "Handles typesetting for percussion."
93
94   \denies "Voice"
95   \accepts "DrumVoice"
96   \defaultchild "DrumVoice"
97
98   clefGlyph = #"clefs.percussion"
99   clefPosition = #0
100   \override Script #'staff-padding = #0.75 
101 }
102
103
104 \context {
105   \type "Engraver_group"
106   \name "InnerChoirStaff"
107   \consists "System_start_delimiter_engraver"
108   systemStartDelimiter = #'SystemStartBracket
109   vocalName = #'()
110   shortVocalName = #'()
111
112   \accepts "Staff"
113   \accepts "DrumStaff"
114   \accepts "RhythmicStaff"
115   \accepts "GrandStaff"
116   \accepts "PianoStaff"
117   \accepts "Lyrics"
118   \accepts "ChordNames"
119   \defaultchild "Staff"
120 }
121
122 \context {
123   \InnerChoirStaff
124   \name ChoirStaff
125   
126   \defaultchild "Staff"
127   \accepts "InnerChoirStaff"
128   \accepts "InnerStaffGroup"
129   \description "Identical to @code{StaffGroup} except that the
130 contained staves are not connected vertically."
131
132 }
133
134 \context{
135   \type "Engraver_group"
136   
137   \override VerticalAxisGroup #'minimum-Y-extent = ##f
138   localKeySignature = #'()
139   createSpacing = ##t
140
141   squashedPosition = #0
142   \name RhythmicStaff
143   \alias "Staff"
144   
145   \override BarLine #'bar-size = #4
146   \override VoltaBracket #'staff-padding = #3
147   \override StaffSymbol #'line-count = #1       
148
149   \override Stem  #'neutral-direction = #UP
150   \override Beam  #'neutral-direction = #UP
151   
152   \consists "Output_property_engraver"
153   \consists "Font_size_engraver"
154   \consists "Separating_line_group_engraver"    
155   \consists "Dot_column_engraver"
156   \consists "Bar_engraver"
157   \consists "Staff_symbol_engraver"
158   \consists "Pitch_squash_engraver"
159   \consists "Time_signature_engraver"
160   \consists "Instrument_name_engraver"
161   \consists "Axis_group_engraver"
162   \consists "Ledger_line_engraver" 
163   
164   \accepts "Voice"
165   \accepts "CueVoice"
166   \defaultchild "Voice"
167
168   \description "A context like @code{Staff} but for printing rhythms.
169 Pitches are ignored; the notes are printed on one line."
170 }
171
172
173 \context {
174   \type "Engraver_group"
175   \name "Voice"
176
177   \description "Corresponds to a voice on a staff.  This context
178 handles the conversion of dynamic signs, stems, beams, super- and
179 subscripts, slurs, ties, and rests.
180
181 You have to instantiate this explicitly if you want to have
182 multiple voices on the same staff."
183
184   localKeySignature = #'()
185   \consists "Font_size_engraver"
186
187   \consists "Pitched_trill_engraver"
188   \consists "Output_property_engraver"  
189   \consists "Arpeggio_engraver"
190   \consists "Multi_measure_rest_engraver"
191   \consists "Text_spanner_engraver"
192   \consists "Trill_spanner_engraver"
193   \consists "Grob_pq_engraver"
194   \consists "Forbid_line_break_engraver"
195   \consists "Laissez_vibrer_engraver"
196   \consists "Repeat_tie_engraver"
197   \consists "Note_head_line_engraver"
198   \consists "Glissando_engraver"
199   \consists "Ligature_bracket_engraver"
200   \consists "Breathing_sign_engraver"
201   \consists "Note_heads_engraver"
202   \consists "Dots_engraver"
203   \consists "Rest_engraver"
204   \consists "Tweak_engraver"
205   
206   %% switch on to make stem directions interpolate for the
207   %% center line.
208   %  \consists "Melody_engraver"
209
210   \consists "Stem_engraver"
211   \consists "Beam_engraver"
212   \consists "Grace_beam_engraver"
213   \consists "Auto_beam_engraver"
214
215   %% must come before Script_column_engraver.
216   \consists "New_fingering_engraver"
217   
218   \consists "Chord_tremolo_engraver"
219   \consists "Percent_repeat_engraver"
220   \consists "Slash_repeat_engraver"
221   \consists "Part_combine_engraver"
222
223   \consists "Text_engraver"
224   \consists "Dynamic_engraver"
225   \consists "Fingering_engraver"
226   \consists "Bend_engraver"
227
228   \consists "Script_engraver"
229   \consists "Script_column_engraver"
230   \consists "Rhythmic_column_engraver"
231   \consists "Note_spacing_engraver"
232   \consists "Spanner_break_forbid_engraver"
233   \consists "Phrasing_slur_engraver"
234   \consists "Cluster_spanner_engraver"
235   \consists "Slur_engraver"
236   \consists "Tie_engraver"
237   \consists "Tuplet_engraver"
238   \consists "Grace_engraver"
239   \consists "Instrument_switch_engraver"
240   \consists "Skip_event_swallow_translator"
241 }
242
243 \context{
244   \Voice
245   
246   \name CueVoice
247   \alias Voice
248   fontSize = #-4
249   \override Stem #'length-fraction = #(magstep -4)
250   \override Beam #'length-fraction = #(magstep -4)
251 }
252
253 \context {
254   \Voice
255   \name DrumVoice
256   \alias Voice
257
258   \description "A voice on a percussion staff."
259   \remove "Arpeggio_engraver"
260   \consists "Multi_measure_rest_engraver"
261   \consists "Text_spanner_engraver"
262   \consists "Grob_pq_engraver"
263
264   \remove "Note_head_line_engraver"
265   \remove "Glissando_engraver"
266   \remove "Ligature_bracket_engraver"
267   \remove "Note_heads_engraver"
268   \consists "Drum_notes_engraver"
269   \remove "New_fingering_engraver"
270
271   \remove "Fingering_engraver"
272
273   \remove "Cluster_spanner_engraver"
274   \consists "Tuplet_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   \accepts "Staff"
294   \accepts "FiguredBass"
295 }
296
297 \context{
298   \GrandStaff
299   \name "PianoStaff"
300   \alias "GrandStaff"
301
302   \description "Just like @code{GrandStaff} but with a forced
303 distance between the staves, so cross staff beaming and slurring
304 can be used."
305
306   \override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4)
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   middleCPosition = #-6
508   firstClef = ##t
509   
510   defaultBarType = #"|"
511   barNumberVisibility = #first-bar-number-invisible
512   automaticBars = ##t
513   
514   explicitClefVisibility = #all-visible
515   explicitKeySignatureVisibility = #all-visible
516   implicitTimeSignatureVisibility = #end-of-line-invisible
517   
518   autoBeamSettings = #default-auto-beam-settings
519   autoBeaming = ##t
520   autoBeamCheck = #default-auto-beam-check
521   scriptDefinitions = #default-script-alist
522
523   pedalSustainStrings = #'("Ped." "*Ped." "*")
524   pedalSustainStyle = #'text
525   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
526   pedalUnaCordaStyle = #'text
527
528 %% These are in ordinary italic font, including the *,
529 %% but they are unlikely to be used, 
530 %% as the default pedal-style for SostenutoPedal is 'mixed':
531 %% i.e.  Sost. Ped_____________________ 
532   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") 
533   pedalSostenutoStyle = #'mixed
534
535   harmonicAccidentals = ##t 
536   fingeringOrientations = #'(up down)
537   stringNumberOrientations = #'(up down)
538   strokeFingerOrientations = #'(right)
539   
540   markFormatter = #format-mark-letters
541   rehearsalMark = #1
542   subdivideBeams = ##f
543   allowBeamBreak = ##f
544   extraNatural = ##t
545   autoAccidentals = #'(Staff (same-octave . 0))
546   autoCautionaries = #'()  
547
548   printKeyCancellation = ##t
549   keyAlterationOrder = #`(
550     (6 . ,FLAT) (2  . ,FLAT) (5 . ,FLAT ) (1  . ,FLAT) (4  . ,FLAT) (0  . ,FLAT) (3  . ,FLAT)
551     (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
552     (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
553     (3  . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
554   )
555
556   barCheckSynchronize = ##f
557   
558 %% chord names:
559   chordNameFunction = #ignatzek-chord-names
560   majorSevenSymbol = #whiteTriangleMarkup
561   chordNameSeparator = #(make-simple-markup  "/")
562   chordNameExceptions = #ignatzekExceptions
563   chordNoteNamer = #'()
564   chordRootNamer = #note-name->markup
565   chordPrefixSpacer = #0
566   chordNameExceptionsFull = #fullJazzExceptions
567   chordNameExceptionsPartial = #partialJazzExceptions
568   
569
570   bassStaffProperties = #'((assign clefGlyph "clefs.F")
571   (assign clefPosition 2)
572   (assign middleCPosition 6))
573 %% tablature:
574   stringOneTopmost = ##t
575   highStringOne = ##t
576
577 %% One may change the strings tuning as following :
578 %% The lenght of the list must be equal to the number of string
579   stringTunings = #guitar-tuning
580   tablatureFormat = #fret-number-tablature-format
581
582 %%
583   figuredBassFormatter = #format-bass-figure
584   metronomeMarkFormatter = #format-metronome-markup
585
586
587   %% See also make-voice-props-set
588   graceSettings = #`(
589     (Voice Stem direction ,UP)
590     (Voice Stem font-size -3)
591     (Voice NoteHead font-size -3)
592     (Voice Dots font-size -3)
593     (Voice Stem length-fraction 0.8)
594     (Voice Stem no-stem-extend #t)
595     (Voice Beam thickness 0.384)
596     (Voice Beam length-fraction 0.8)
597     (Voice Accidental font-size -4)
598     (Voice Slur direction ,DOWN)
599   )
600
601   keepAliveInterfaces = #'(
602     rhythmic-grob-interface
603     lyric-interface
604
605     ;; need this, as stanza numbers are items, and appear only once. 
606     stanza-number-interface
607     percent-repeat-interface)
608   quotedEventTypes = #'(
609     note-event
610     rest-event
611     tie-event
612     beam-event
613     tuplet-span-event)
614   instrumentTransposition = #(ly:make-pitch 0 0 0)
615
616   verticallySpacedContexts = #'(Staff)
617
618   hairpinToBarline = ##t 
619   
620   timing = ##t
621 }
622
623
624
625
626 \context {
627   \type "Engraver_group"
628   \name "FiguredBass"
629
630   \consists "Figured_bass_engraver"
631   \consists "Note_swallow_translator"
632   \consists "Skip_event_swallow_translator"
633   \consists "Separating_line_group_engraver"
634   \consists "Hara_kiri_engraver"
635
636   \override VerticalAxisGroup #'remove-empty = ##t
637   \override VerticalAxisGroup #'remove-first = ##t
638   \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2)
639 }
640
641 \context {
642   \name "Devnull"
643   \type "Engraver_group"
644
645 %% don't want to route anything out of here: 
646   \alias "Staff"
647   \alias "Voice"
648   \consists "Swallow_engraver"
649   \description "Silently discards all musical information given to this
650 context."
651 }
652
653 \context {
654   \Voice
655   \name "TabVoice"
656   \alias "Voice"
657   \consists "Tab_note_heads_engraver"
658   \consists "Tab_harmonic_engraver"
659   
660   \remove "Note_heads_engraver"
661   \remove "Fingering_engraver"
662   \remove "New_fingering_engraver"
663
664   \description "Context for drawing notes in a Tab staff."
665
666   %% TabStaff increase the staff-space, which in turn
667   %% increases beam thickness and spacing; beams are
668   %% too big. We have to adjust the beam settings:
669   \override Beam #'thickness = #0.32
670   \override Beam #'length-fraction = #0.62
671
672   %% No accidental in tablature !
673   \remove Accidental_engraver
674
675   \override Glissando #'extra-dy = #0.75
676   \override Glissando #'bound-details #'right = #`((attach-dir . ,LEFT)
677                                                    (padding . 0.3))
678   \override Glissando #'bound-details #'left = #`((attach-dir . ,RIGHT)
679                                                    (padding . 0.3))
680   \override Glissando #'extra-dy = #0.75
681   \override Glissando #'gap = #0.2
682 }
683
684 \context {
685   \Staff
686   \alias "Staff"
687   \name "TabStaff"
688   \denies "Voice"
689   \consists "Tab_staff_symbol_engraver"
690   
691   \description "Context for generating tablature. [DOCME]"
692
693   \accepts "TabVoice"
694   \defaultchild "TabVoice"
695   
696   %% 6 strings
697   \override StaffSymbol #'staff-space = #1.5
698
699   %% Don't draw stems over the tablature figures !
700   \override Stem #'avoid-note-head = ##t
701   
702   %% No accidental in tablature !
703   \remove "Accidental_engraver"
704   \remove "Key_engraver"
705   \remove "String_number_engraver"
706   %% Special "TAB" clef
707   clefGlyph = #"clefs.tab"
708   clefPosition = #0
709 }
710
711 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
712 %% but this does not work (is this a bug or intended behaviour?):
713 %%
714 %% If I try to do so, I get "error: unknown escaped string:
715 %% `\VaticanaStaff'" in params-init.ly.  If I also move
716 %% "\context { \Vaticana*Context }" from params-init.ly to the end
717 %% of gregorian-init.ly, then I get "error: parse error, unexpected
718 %% TRANSLATOR: \context { \VaticanaStaff }" in
719 %% gregorian-init.ly. --jr
720
721 \context {
722   \Voice
723   \name "VaticanaVoice"
724   \alias "Voice"
725   \description "Same as @code{Voice} context, except that it is
726 accommodated for typesetting Gregorian Chant in the notational style
727 of Editio Vaticana."
728
729   \remove "Slur_engraver"
730   \remove "Stem_engraver"
731   \remove "Ligature_bracket_engraver"
732   \consists "Vaticana_ligature_engraver"
733
734   %% Set default head for notes outside of \[ \].
735   \override NoteHead #'style = #'vaticana.punctum
736
737   %% Put some space before and after divisiones.
738   %% FIXME: This does not seem to show any effect.
739   \override Script #'padding = #0.5
740
741   %% There are no beams in Gregorian Chant notation.
742   autoBeaming = ##f
743
744   %% Prepare TextSpanner for \episem{Initium|Finis} use.
745   %%
746   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
747   %% always produce dashed lines, regardless of the style property.
748   %%
749   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
750   %% required to force the articulation signs being placed vertically
751   %% tightly to the correpsonding note heads.
752   %%
753   \override TextSpanner #'dash-fraction = #'()
754   \override TextSpanner #'style = #'line
755   \override TextSpanner #'padding = #-0.1
756 }
757
758 \context {
759   \Staff
760   \name "VaticanaStaff"
761   \alias "Staff"
762   \denies "Voice"
763   \accepts "VaticanaVoice"
764   \defaultchild "VaticanaVoice"
765
766   \description "Same as @code{Staff} context, except that it is
767 accommodated for typesetting Gregorian Chant in the notational style
768 of Editio Vaticana."
769
770   \remove "Time_signature_engraver"
771   \consists "Custos_engraver"
772
773   %% We can not remove Bar_engraver; otherwise clefs and custodes will
774   %% not show up any more among other line breaking issues.
775   %% Instead, we make the grob transparent.
776   \override BarLine #'transparent = ##t
777
778   \override StaffSymbol #'line-count = #4
779   \override StaffSymbol #'thickness = #0.6
780
781   %% FIXME: unit on StaffSymbol's width should be \linewidth.
782   %% \override StaffSymbol #'width = #60.0
783
784   %% Choose vaticana do clef on 3rd line as default.
785   clefGlyph = #"clefs.vaticana.do"
786   middleCPosition = #1
787   clefPosition = #1
788   clefOctavation = #0
789
790   %% Select vaticana style font.
791   \override KeySignature #'style = #'vaticana
792   \override Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
793   \override Custos #'style = #'vaticana
794   \override Custos #'neutral-position = #3
795   \override Custos #'neutral-direction = #DOWN
796   \override Dots #'style = #'vaticana
797 }
798
799 \context {
800   \Voice
801   \name "GregorianTranscriptionVoice"
802   \alias "Voice"
803   
804   %% Removing ligature bracket engraver without replacing it by some
805   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
806   %% warning for every "\[" and "\]".  Therefore, we make the grob
807   %% transparent instead.
808   \override LigatureBracket #'transparent = ##t
809
810   %% Put some space before and after divisiones.
811   %% FIXME: This does not seem to show any effect.
812   \override Script #'padding = #0.5
813
814   %% There are no beams in Gregorian Chant notation.
815   autoBeaming = ##f
816
817   %% Prepare TextSpanner for \episem{Initium|Finis} use.
818   %%
819   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
820   %% always produce dashed lines, regardless of the style property.
821   %%
822   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
823   %% required to force the articulation signs being placed vertically
824   %% tightly to the correpsonding note heads.
825   %%
826   \override TextSpanner #'dash-fraction = #'()
827   \override TextSpanner #'style = #'line
828   \override TextSpanner #'padding = #-0.1
829 }
830
831 \context {
832   \Staff
833   \name "GregorianTranscriptionStaff"
834   \alias "Staff"
835   \denies "Voice"
836   \accepts "GregorianTranscriptionVoice"
837   \defaultchild "GregorianTranscriptionVoice"
838
839   %% We can not remove Bar_engraver; otherwise clefs and custodes will
840   %% not show up any more among other line breaking issues.
841   %% Instead, we make the grob transparent.
842   \override BarLine #'transparent = ##t
843 }
844
845 \context {
846   \Voice
847   \name "MensuralVoice"
848   \alias "Voice"
849   \description "Same as @code{Voice} context, except that it is
850 accommodated for typesetting a piece in mensural style."
851
852   \remove "Slur_engraver"
853   \remove "Ligature_bracket_engraver"
854   \consists "Mensural_ligature_engraver"
855
856   %% Set default head for notes outside of \[ \].
857   \override NoteHead #'style = #'petrucci
858
859   %% There are no beams in mensural notation.
860   autoBeaming = ##f
861 }
862
863 \context {
864   \Staff
865   \name "MensuralStaff"
866   \alias "Staff"
867   \denies "Voice"
868   \defaultchild "MensuralVoice"
869   \accepts "MensuralVoice"
870   \description "Same as @code{Staff} context, except that it is
871 accommodated for typesetting a piece in mensural style."
872
873   \consists "Custos_engraver"
874
875   %% We can not remove Bar_engraver; otherwise clefs and custodes will
876   %% not show up any more among other line breaking issues.
877   %% Instead, we make the grob transparent.
878   \override BarLine #'transparent = ##t
879
880   \override StaffSymbol #'thickness = #0.6
881
882   %% FIXME: unit on StaffSymbol's width should be \linewidth.
883   %% \override StaffSymbol #'width = #60.0
884
885   %% Choose petrucci g clef on 2nd line as default.
886   clefGlyph = #"clefs.petrucci.g"
887   middleCPosition = #-6
888   clefPosition = #-2
889   clefOctavation = #0
890
891   %% Select mensural style font.
892   \override TimeSignature #'style = #'mensural
893   \override KeySignature #'style = #'mensural
894   \override Accidental #'glyph-name-alist = #alteration-mensural-glyph-name-alist
895   \override Custos #'style = #'mensural
896   \override Custos #'neutral-position = #3
897   \override Custos #'neutral-direction = #DOWN
898
899   %% Accidentals are valid only once (same as
900   %% #(set-accidental-style 'forget))
901   extraNatural = ##f
902   autoAccidentals = #'(Staff (same-octave . -1))
903   autoCautionaries = #'()  
904   printKeyCancellation = ##f
905 }
906
907
908 RemoveEmptyRhythmicStaffContext= \context {
909   \RhythmicStaff
910   \remove "Axis_group_engraver"
911   \override VerticalAxisGroup #'remove-empty = ##t
912   \consists "Hara_kiri_engraver"
913 }