]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
ea16ead164d65779b8169bd471ff4d501402a985
[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 #'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 }