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