]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
65094f01c5b84c157369ca07559a4d8539056797
[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   instrumentName = #'()
369   shortInstrumentName = #'()
370   
371   \consists "Lyric_engraver"
372   \consists "Extender_engraver"
373   \consists "Hyphen_engraver"
374   \consists "Stanza_number_engraver"
375   \consists "Instrument_name_engraver"
376   \consists "Skip_event_swallow_translator"
377   \consists "Font_size_engraver"
378   \consists "Hara_kiri_engraver"
379   \override VerticalAxisGroup #'remove-first = ##t
380   \override VerticalAxisGroup #'remove-empty = ##t
381   \override SeparationItem #'padding = #0.2
382   \override InstrumentName #'self-alignment-Y = ##f
383
384   %% sync with define-grobs.scm ;
385   \override InstrumentName #'font-size = #1.0
386
387   %% make sure that barlines aren't collapsed, when
388   %% Bar_engraver is there.
389   \override BarLine #'bar-size = #0.1 
390   
391 }
392
393 \context {
394   \type "Engraver_group"
395   \name NoteNames
396   \consists "Axis_group_engraver"
397
398   \override VerticalAxisGroup #'minimum-Y-extent = ##f
399
400   
401   \consists "Rest_swallow_translator" 
402   \consists "Skip_event_swallow_translator"
403   \consists "Tie_engraver"
404   \consists "Note_name_engraver"
405   \consists "Separating_line_group_engraver"
406 }
407
408 \context {
409   \type "Engraver_group"
410   \name ChordNames
411   \description "Typesets chord names."
412
413   \consists "Volta_engraver"
414   
415   \consists "Rest_swallow_translator" 
416   \consists "Output_property_engraver"  
417   \consists "Separating_line_group_engraver"
418   \consists "Chord_name_engraver"
419   \consists "Skip_event_swallow_translator"
420   \consists "Hara_kiri_engraver"
421 %  \consists "Note_spacing_engraver"
422   voltaOnThisStaff = ##f
423   \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2)
424   \override SeparatingGroupSpanner #'padding = #0.8
425   \override VerticalAxisGroup #'remove-first = ##t
426   \override VerticalAxisGroup #'remove-empty = ##t
427 }
428
429
430 RemoveEmptyStaffContext= \context {
431   \Staff
432   \remove "Axis_group_engraver"
433   \consists "Hara_kiri_engraver"
434   \override Beam #'auto-knee-gap = #'()
435   \override VerticalAxisGroup #'remove-empty = ##t
436 }
437
438 AncientRemoveEmptyStaffContext = \context {
439 %% why not add by default?
440   
441   \RemoveEmptyStaffContext
442   \accepts "VaticanaVoice"
443   \accepts "GregorianTranscriptionVoice"
444   \accepts "MensuralVoice"
445 }
446
447 \context {
448   \type "Score_engraver"
449   \name "Score"
450   
451   \description "This is the top level notation context.  No
452     other context can contain a @code{Score} context.  This context
453     handles the administration of time signatures.  It also makes sure
454     that items such as clefs, time signatures, and key-signatures are
455     aligned across staves.
456
457     You cannot explicitly instantiate a Score context (since it is
458     not contained in any other context).  It is instantiated
459     automatically when an output definition (a @code{\score} or
460     @code{\layout} block) is processed."
461
462
463   \consists "Paper_column_engraver"
464   \consists "Vertically_spaced_contexts_engraver"
465   \consists "Repeat_acknowledge_engraver"
466   \consists "Staff_collecting_engraver"
467
468   %% move the alias along with the engraver.
469
470   \consists "Timing_translator"
471   \consists "Default_bar_line_engraver"
472   \consists "Output_property_engraver"
473   \consists "System_start_delimiter_engraver"
474   \consists "Mark_engraver"     
475   \consists "Metronome_mark_engraver"   
476   \consists "Break_align_engraver"
477   \consists "Spacing_engraver"
478   \consists "Grace_spacing_engraver"
479   \consists "Vertical_align_engraver"
480   \consists "Stanza_number_align_engraver"
481   \consists "Bar_number_engraver"
482   \consists "Tweak_engraver"
483   \consists "Parenthesis_engraver"
484   
485   \defaultchild "Staff"
486
487   \accepts "FretBoards"
488   \accepts "Staff"
489   \accepts "RhythmicStaff"
490   \accepts "TabStaff"
491   \accepts "VaticanaStaff"
492   \accepts "GregorianTranscriptionStaff"
493   \accepts "MensuralStaff"
494   \accepts "StaffGroup"
495   \accepts "DrumStaff"
496   \accepts "Lyrics"
497   \accepts "ChordNames"
498   \accepts "GrandStaff"
499   \accepts "ChoirStaff"
500   \accepts "PianoStaff"
501   \accepts "Devnull"
502   \accepts "NoteNames"
503   \accepts "FiguredBass"
504
505
506   noteToFretFunction = #determine-frets
507   soloText = #"Solo"
508   soloIIText = #"Solo II"
509   aDueText = #"a2"
510   printPartCombineTexts = ##t
511   systemStartDelimiter =#'SystemStartBar
512
513   drumStyleTable = #drums-style
514   
515   melismaBusyProperties = #default-melisma-properties
516   tieWaitForNote = ##f
517   clefGlyph = #"clefs.G"
518   clefPosition = #-2
519   middleCPosition = #-6
520   firstClef = ##t
521   
522   defaultBarType = #"|"
523   barNumberVisibility = #first-bar-number-invisible
524   automaticBars = ##t
525   
526   explicitClefVisibility = #all-visible
527   explicitKeySignatureVisibility = #all-visible
528   implicitTimeSignatureVisibility = #end-of-line-invisible
529   
530   autoBeamSettings = #default-auto-beam-settings
531   autoBeaming = ##t
532   autoBeamCheck = #default-auto-beam-check
533   scriptDefinitions = #default-script-alist
534
535   pedalSustainStrings = #'("Ped." "*Ped." "*")
536   pedalSustainStyle = #'text
537   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
538   pedalUnaCordaStyle = #'text
539
540 %% These are in ordinary italic font, including the *,
541 %% but they are unlikely to be used, 
542 %% as the default pedal-style for SostenutoPedal is 'mixed':
543 %% i.e.  Sost. Ped_____________________ 
544   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") 
545   pedalSostenutoStyle = #'mixed
546
547   harmonicAccidentals = ##t 
548   fingeringOrientations = #'(up down)
549   stringNumberOrientations = #'(up down)
550   strokeFingerOrientations = #'(right)
551   
552   markFormatter = #format-mark-letters
553   rehearsalMark = #1
554   subdivideBeams = ##f
555   allowBeamBreak = ##f
556   extraNatural = ##t
557   autoAccidentals = #'(Staff (same-octave . 0))
558   autoCautionaries = #'()  
559
560   printKeyCancellation = ##t
561   keyAlterationOrder = #`(
562     (6 . ,FLAT) (2  . ,FLAT) (5 . ,FLAT ) (1  . ,FLAT) (4  . ,FLAT) (0  . ,FLAT) (3  . ,FLAT)
563     (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
564     (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
565     (3  . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
566   )
567
568   barCheckSynchronize = ##f
569   
570 %% chord names:
571   chordNameFunction = #ignatzek-chord-names
572   majorSevenSymbol = #whiteTriangleMarkup
573   chordNameSeparator = #(make-simple-markup  "/")
574   chordNameExceptions = #ignatzekExceptions
575   chordNoteNamer = #'()
576   chordRootNamer = #note-name->markup
577   chordPrefixSpacer = #0
578   chordNameExceptionsFull = #fullJazzExceptions
579   chordNameExceptionsPartial = #partialJazzExceptions
580   
581
582   bassStaffProperties = #'((assign clefGlyph "clefs.F")
583   (assign clefPosition 2)
584   (assign middleCPosition 6))
585 %% tablature:
586   stringOneTopmost = ##t
587   highStringOne = ##t
588
589 %% One may change the strings tuning as following :
590 %% The lenght of the list must be equal to the number of string
591   stringTunings = #guitar-tuning
592   tablatureFormat = #fret-number-tablature-format
593
594 %%
595   figuredBassFormatter = #format-bass-figure
596   metronomeMarkFormatter = #format-metronome-markup
597   graceSettings = #`(
598     (Voice Stem direction ,UP)
599     (Voice Stem font-size -3)
600     (Voice NoteHead font-size -3)
601     (Voice Dots font-size -3)
602     (Voice Stem length-fraction 0.8)
603     (Voice Stem no-stem-extend #t)
604     (Voice Beam thickness 0.384)
605     (Voice Beam length-fraction 0.8)
606     (Voice Accidental font-size -4)
607     (Voice Slur direction ,DOWN)
608   )
609
610   keepAliveInterfaces = #'(
611     rhythmic-grob-interface
612     lyric-interface
613     percent-repeat-interface)
614   quotedEventTypes = #'(
615     note-event
616     rest-event
617     tie-event
618     beam-event
619     tuplet-span-event)
620   instrumentTransposition = #(ly:make-pitch 0 0 0)
621
622   verticallySpacedContexts = #'(Staff)
623
624   hairpinToBarline = ##t 
625   
626   timing = ##t
627 }
628
629
630
631
632 \context {
633   \type "Engraver_group"
634   \name "FiguredBass"
635
636   \consists "Figured_bass_engraver"
637   \consists "Note_swallow_translator"
638   \consists "Skip_event_swallow_translator"
639   \consists "Separating_line_group_engraver"
640   \consists "Hara_kiri_engraver"
641
642   \override VerticalAxisGroup #'remove-empty = ##t
643   \override VerticalAxisGroup #'remove-first = ##t
644   \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2)
645 }
646
647 \context {
648   \name "Devnull"
649   \type "Engraver_group"
650
651 %% don't want to route anything out of here: 
652   \alias "Staff"
653   \alias "Voice"
654   \consists "Swallow_engraver"
655   \description "Silently discards all musical information given to this context. "
656 }
657
658 \context {
659   \Voice
660   \name "TabVoice"
661   \alias "Voice"
662   \consists "Tab_note_heads_engraver"
663   \consists "Tab_harmonic_engraver"
664   
665   \remove "Note_heads_engraver"
666   \remove "Fingering_engraver"
667   \remove "New_fingering_engraver"
668
669   \description "Context for drawing notes in a Tab staff. "
670
671   %% TabStaff increase the staff-space, which in turn
672   %% increases beam thickness and spacing; beams are
673   %% too big. We have to adjust the beam settings:
674   \override Beam #'thickness = #0.32
675   \override Beam #'length-fraction = #0.62
676
677   %% No accidental in tablature !
678   \remove Accidental_engraver
679
680   \override Glissando #'extra-dy = #0.75
681   \override Glissando #'gap = #0.2
682 }
683
684 \context {
685   \Staff
686   \alias "Staff"
687   \name "TabStaff"
688   \denies "Voice"
689   \consists "Tab_staff_symbol_engraver"
690   
691   \description "Context for generating tablature. [DOCME]"
692
693   \accepts "TabVoice"
694   \defaultchild "TabVoice"
695   
696   %% 6 strings
697   \override StaffSymbol #'staff-space = #1.5
698
699   %% Don't draw stems over the tablature figures !
700   \override Stem #'avoid-note-head = ##t
701   
702   %% No accidental in tablature !
703   \remove "Accidental_engraver"
704   \remove "Key_engraver"
705   \remove "String_number_engraver"
706   %% Special "TAB" clef
707   clefGlyph = #"clefs.tab"
708   clefPosition = #0
709 }
710
711 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
712 %% but this does not work (is this a bug or intended behaviour?):
713 %%
714 %% If I try to do so, I get "error: unknown escaped string:
715 %% `\VaticanaStaff'" in params-init.ly.  If I also move
716 %% "\context { \Vaticana*Context }" from params-init.ly to the end
717 %% of gregorian-init.ly, then I get "error: parse error, unexpected
718 %% TRANSLATOR: \context { \VaticanaStaff }" in
719 %% gregorian-init.ly. --jr
720
721 \context {
722   \Voice
723   \name "VaticanaVoice"
724   \alias "Voice"
725   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
726
727   \remove "Slur_engraver"
728   \remove "Stem_engraver"
729   \remove "Ligature_bracket_engraver"
730   \consists "Vaticana_ligature_engraver"
731
732   %% Set default head for notes outside of \[ \].
733   \override NoteHead #'style = #'vaticana.punctum
734
735   %% Put some space before and after divisiones.
736   %% FIXME: This does not seem to show any effect.
737   \override Script #'padding = #0.5
738
739   %% There are no beams in Gregorian Chant notation.
740   autoBeaming = ##f
741
742   %% Prepare TextSpanner for \episem{Initium|Finis} use.
743   %%
744   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
745   %% always produce dashed lines, regardless of the style property.
746   %%
747   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
748   %% required to force the articulation signs being placed vertically
749   %% tightly to the correpsonding note heads.
750   %%
751   \override TextSpanner #'dash-fraction = #'()
752   \override TextSpanner #'style = #'line
753   \override TextSpanner #'edge-height = #'(0 . 0)
754   \override TextSpanner #'padding = #-0.1
755   \override TextSpanner #'enclose-bounds = #1
756   \override TextSpanner #'edge-text = #'("" . "")
757 }
758
759 \context {
760   \Staff
761   \name "VaticanaStaff"
762   \alias "Staff"
763   \denies "Voice"
764   \accepts "VaticanaVoice"
765   \defaultchild "VaticanaVoice"
766
767   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
768
769   \remove "Time_signature_engraver"
770   \consists "Custos_engraver"
771
772   %% We can not remove Bar_engraver; otherwise clefs and custodes will
773   %% not show up any more among other line breaking issues.
774   %% Instead, we make the grob transparent.
775   \override BarLine #'transparent = ##t
776
777   \override StaffSymbol #'line-count = #4
778   \override StaffSymbol #'thickness = #0.6
779
780   %% FIXME: unit on StaffSymbol's width should be \linewidth.
781   %% \override StaffSymbol #'width = #60.0
782
783   %% Choose vaticana do clef on 3rd line as default.
784   clefGlyph = #"clefs.vaticana.do"
785   middleCPosition = #1
786   clefPosition = #1
787   clefOctavation = #0
788
789   %% Select vaticana style font.
790   \override KeySignature #'style = #'vaticana
791   \override Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
792   \override Custos #'style = #'vaticana
793   \override Custos #'neutral-position = #3
794   \override Custos #'neutral-direction = #DOWN
795   \override Dots #'style = #'vaticana
796 }
797
798 \context {
799   \Voice
800   \name "GregorianTranscriptionVoice"
801   \alias "Voice"
802   
803   %% Removing ligature bracket engraver without replacing it by some
804   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
805   %% warning for every "\[" and "\]".  Therefore, we make the grob
806   %% transparent instead.
807   \override LigatureBracket #'transparent = ##t
808
809   %% Put some space before and after divisiones.
810   %% FIXME: This does not seem to show any effect.
811   \override Script #'padding = #0.5
812
813   %% There are no beams in Gregorian Chant notation.
814   autoBeaming = ##f
815
816   %% Prepare TextSpanner for \episem{Initium|Finis} use.
817   %%
818   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
819   %% always produce dashed lines, regardless of the style property.
820   %%
821   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
822   %% required to force the articulation signs being placed vertically
823   %% tightly to the correpsonding note heads.
824   %%
825   \override TextSpanner #'dash-fraction = #'()
826   \override TextSpanner #'style = #'line
827   \override TextSpanner #'edge-height = #'(0 . 0)
828   \override TextSpanner #'padding = #-0.1
829   \override TextSpanner #'enclose-bounds = #1
830   \override TextSpanner #'edge-text = #'("" . "")
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 }