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