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