]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
Merge branch 'master' of git+ssh://jneem@git.sv.gnu.org/srv/git/lilypond
[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   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 "Volta_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  "
170     A context like @code{Staff} but for printing rhythms.  Pitches are
171     ignored; the notes are printed on one line.  
172 "
173 }
174
175
176 \context {
177   \type "Engraver_group"
178   \name "Voice"
179
180   \description "
181     Corresponds to a voice on a staff.  This context handles the
182     conversion of dynamic signs, stems, beams, super- and subscripts,
183     slurs, ties, and rests.
184
185     You have to instantiate this explicitly if you want to have
186     multiple voices on the same staff."
187
188   localKeySignature = #'()
189   \consists "Font_size_engraver"
190
191   \consists "Pitched_trill_engraver"
192   \consists "Output_property_engraver"  
193   \consists "Arpeggio_engraver"
194   \consists "Multi_measure_rest_engraver"
195   \consists "Text_spanner_engraver"
196   \consists "Trill_spanner_engraver"
197   \consists "Grob_pq_engraver"
198   \consists "Forbid_line_break_engraver"
199   \consists "Laissez_vibrer_engraver"
200   \consists "Repeat_tie_engraver"
201   \consists "Note_head_line_engraver"
202   \consists "Glissando_engraver"
203   \consists "Ligature_bracket_engraver"
204   \consists "Breathing_sign_engraver"
205   \consists "Note_heads_engraver"
206   \consists "Dots_engraver"
207   \consists "Rest_engraver"
208   \consists "Tweak_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_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 VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4)
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 #'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 accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
732
733   \remove "Slur_engraver"
734   \remove "Stem_engraver"
735   \remove "Ligature_bracket_engraver"
736   \consists "Vaticana_ligature_engraver"
737
738   %% Set default head for notes outside of \[ \].
739   \override NoteHead #'style = #'vaticana.punctum
740
741   %% Put some space before and after divisiones.
742   %% FIXME: This does not seem to show any effect.
743   \override Script #'padding = #0.5
744
745   %% There are no beams in Gregorian Chant notation.
746   autoBeaming = ##f
747
748   %% Prepare TextSpanner for \episem{Initium|Finis} use.
749   %%
750   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
751   %% always produce dashed lines, regardless of the style property.
752   %%
753   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
754   %% required to force the articulation signs being placed vertically
755   %% tightly to the correpsonding note heads.
756   %%
757   \override TextSpanner #'dash-fraction = #'()
758   \override TextSpanner #'style = #'line
759   \override TextSpanner #'padding = #-0.1
760 }
761
762 \context {
763   \Staff
764   \name "VaticanaStaff"
765   \alias "Staff"
766   \denies "Voice"
767   \accepts "VaticanaVoice"
768   \defaultchild "VaticanaVoice"
769
770   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style 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   clefPosition = #1
790   clefOctavation = #0
791
792   %% Select vaticana style font.
793   \override KeySignature #'style = #'vaticana
794   \override Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
795   \override Custos #'style = #'vaticana
796   \override Custos #'neutral-position = #3
797   \override Custos #'neutral-direction = #DOWN
798   \override Dots #'style = #'vaticana
799 }
800
801 \context {
802   \Voice
803   \name "GregorianTranscriptionVoice"
804   \alias "Voice"
805   
806   %% Removing ligature bracket engraver without replacing it by some
807   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
808   %% warning for every "\[" and "\]".  Therefore, we make the grob
809   %% transparent instead.
810   \override LigatureBracket #'transparent = ##t
811
812   %% Put some space before and after divisiones.
813   %% FIXME: This does not seem to show any effect.
814   \override Script #'padding = #0.5
815
816   %% There are no beams in Gregorian Chant notation.
817   autoBeaming = ##f
818
819   %% Prepare TextSpanner for \episem{Initium|Finis} use.
820   %%
821   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
822   %% always produce dashed lines, regardless of the style property.
823   %%
824   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
825   %% required to force the articulation signs being placed vertically
826   %% tightly to the correpsonding note heads.
827   %%
828   \override TextSpanner #'dash-fraction = #'()
829   \override TextSpanner #'style = #'line
830   \override TextSpanner #'padding = #-0.1
831 }
832
833 \context {
834   \Staff
835   \name "GregorianTranscriptionStaff"
836   \alias "Staff"
837   \denies "Voice"
838   \accepts "GregorianTranscriptionVoice"
839   \defaultchild "GregorianTranscriptionVoice"
840
841   %% We can not remove Bar_engraver; otherwise clefs and custodes will
842   %% not show up any more among other line breaking issues.
843   %% Instead, we make the grob transparent.
844   \override BarLine #'transparent = ##t
845 }
846
847 \context {
848   \Voice
849   \name "MensuralVoice"
850   \alias "Voice"
851   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style."
852
853   \remove "Slur_engraver"
854   \remove "Ligature_bracket_engraver"
855   \consists "Mensural_ligature_engraver"
856
857   %% Set default head for notes outside of \[ \].
858   \override NoteHead #'style = #'petrucci
859
860   %% There are no beams in mensural notation.
861   autoBeaming = ##f
862 }
863
864 \context {
865   \Staff
866   \name "MensuralStaff"
867   \alias "Staff"
868   \denies "Voice"
869   \defaultchild "MensuralVoice"
870   \accepts "MensuralVoice"
871   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting 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 }