]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
2959ce7187f1fa84f5d5d7009da020657babe211
[lilypond.git] / ly / engraver-init.ly
1 \version "2.7.39"
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 \context {
14   \type "Engraver_group"
15   \name "Staff"
16   
17   \consists "Output_property_engraver"  
18   \consists "Bar_engraver"
19   %% Bar_engraver must be first so default bars aren't overwritten
20   %% with empty ones.
21   
22   \consists "Font_size_engraver"
23   \consists "Volta_engraver"
24   \consists "Separating_line_group_engraver"    
25   \consists "Dot_column_engraver"
26
27   %% perhaps move to Voice context?
28   \consists "Ottava_spanner_engraver"
29   \consists "Clef_engraver"
30   \consists "Key_engraver"
31   \consists "Time_signature_engraver"
32   \consists "Ledger_line_engraver" 
33   \consists "Staff_symbol_engraver"
34   \consists "Collision_engraver"
35   \consists "Rest_collision_engraver"
36   \consists "Accidental_engraver"
37   \consists "Piano_pedal_engraver"
38   \consists "Instrument_name_engraver"
39   \consists "String_number_engraver"
40   \consists "Axis_group_engraver"
41   \consists "Figured_bass_engraver"
42   \consists "Figured_bass_position_engraver"
43
44   \override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4)
45   extraVerticalExtent = ##f
46   verticalExtent = ##f 
47   localKeySignature = #'()
48   createSpacing = ##t
49   ignoreFiguredBassRest = ##t 
50   
51   %% explicitly set instrument, so we don't get 
52   %% weird effects when doing instrument names for
53   %% piano staves
54
55   instrumentName = #'()
56   shortInstrumentName = #'()
57   
58   \defaultchild "Voice"
59   \accepts "Voice"
60   \accepts "CueVoice"
61   
62   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
63 @code{Voice} contexts."
64
65 }
66
67 \context {
68   \Staff
69   \type "Engraver_group"
70   \name "DrumStaff"
71   \alias "Staff"
72   
73   \remove "Accidental_engraver"
74   \remove "Ottava_spanner_engraver"
75   \remove "Key_engraver" 
76   \remove "Piano_pedal_engraver"
77   \remove "String_number_engraver"
78   
79   \description "Handles typesetting for percussion."
80
81   \denies "Voice"
82   \accepts "DrumVoice"
83   \defaultchild "DrumVoice"
84
85   clefGlyph = #"clefs.percussion"
86   clefPosition = #0
87   \override Script #'staff-padding = #0.75 
88 }
89
90
91 \context {
92   \type "Engraver_group"
93   \name "InnerChoirStaff"
94   \consists "System_start_delimiter_engraver"
95   systemStartDelimiter = #'SystemStartBracket
96   vocalName = #'()
97   shortVocalName = #'()
98
99   \accepts "Staff"
100   \accepts "DrumStaff"
101   \accepts "RhythmicStaff"
102   \accepts "GrandStaff"
103   \accepts "PianoStaff"
104   \accepts "Lyrics"
105   \accepts "ChordNames"
106   \defaultchild "Staff"
107 }
108
109 \context {
110   \InnerChoirStaff
111   \name ChoirStaff
112   
113   \defaultchild "Staff"
114   \accepts "InnerChoirStaff"
115   \accepts "InnerStaffGroup"
116   \description "Identical to @code{StaffGroup} except that the
117 contained staves are not connected vertically."
118
119 }
120
121 \context{
122   \type "Engraver_group"
123   
124   \override VerticalAxisGroup #'minimum-Y-extent = ##f
125   extraVerticalExtent = ##f
126   verticalExtent = ##f 
127   localKeySignature = #'()
128   createSpacing = ##t
129
130   squashedPosition = #0
131   \name RhythmicStaff
132   \alias "Staff"
133   
134   \override BarLine #'bar-size = #4
135   \override VoltaBracket #'staff-padding = #3
136   \override StaffSymbol #'line-count = #1       
137
138   \override Stem  #'neutral-direction = #UP
139   \override Beam  #'neutral-direction = #UP
140   
141   \consists "Output_property_engraver"
142   \consists "Font_size_engraver"
143   \consists "Volta_engraver"
144   \consists "Separating_line_group_engraver"    
145   \consists "Dot_column_engraver"
146   \consists "Bar_engraver"
147   \consists "Staff_symbol_engraver"
148   \consists "Pitch_squash_engraver"
149   \consists "Time_signature_engraver"
150   \consists "Instrument_name_engraver"
151   \consists "Axis_group_engraver"
152   \consists "Ledger_line_engraver" 
153   
154   \accepts "Voice"
155   \accepts "CueVoice"
156   \defaultchild "Voice"
157
158   \description  "
159     A context like @code{Staff} but for printing rhythms.  Pitches are
160     ignored; the notes are printed on one line.  
161 "
162 }
163
164
165 \context {
166   \type "Engraver_group"
167   \name "Voice"
168
169   \description "
170     Corresponds to a voice on a staff.  This context handles the
171     conversion of dynamic signs, stems, beams, super- and subscripts,
172     slurs, ties, and rests.
173
174     You have to instantiate this explicitly if you want to have
175     multiple voices on the same staff."
176
177   localKeySignature = #'()
178   \consists "Font_size_engraver"
179
180   \consists "Pitched_trill_engraver"
181   \consists "Output_property_engraver"  
182   \consists "Arpeggio_engraver"
183   \consists "Multi_measure_rest_engraver"
184   \consists "Text_spanner_engraver"
185   \consists "Trill_spanner_engraver"
186   \consists "Grob_pq_engraver"
187   \consists "Forbid_line_break_engraver"
188   \consists "Laissez_vibrer_engraver"
189   \consists "Repeat_tie_engraver"
190   \consists "Note_head_line_engraver"
191   \consists "Glissando_engraver"
192   \consists "Ligature_bracket_engraver"
193   \consists "Breathing_sign_engraver"
194   \consists "Note_heads_engraver"
195   \consists "Dots_engraver"
196   \consists "Rest_engraver"
197
198   %% switch on to make stem directions interpolate for the
199   %% center line.
200   %  \consists "Melody_engraver"
201
202   \consists "Stem_engraver"
203   \consists "Beam_engraver"
204   \consists "Grace_beam_engraver"
205   \consists "Auto_beam_engraver"
206
207   %% must come before Script_column_engraver.
208   \consists "New_fingering_engraver"
209   
210   \consists "Chord_tremolo_engraver"
211   \consists "Percent_repeat_engraver"
212   \consists "Slash_repeat_engraver"
213   \consists "Part_combine_engraver"
214
215   \consists "Text_engraver"
216   \consists "Dynamic_engraver"
217   \consists "Fingering_engraver"
218   \consists "Bend_after_engraver"
219
220   \consists "Script_engraver"
221   \consists "Script_column_engraver"
222   \consists "Rhythmic_column_engraver"
223   \consists "Phrasing_slur_engraver"
224   \consists "Cluster_spanner_engraver"
225   \consists "Slur_engraver"
226   \consists "Tie_engraver"
227   \consists "Tuplet_engraver"
228   \consists "Grace_engraver"
229   \consists "Instrument_switch_engraver"
230   \consists "Skip_event_swallow_translator"
231 }
232
233 \context{
234   \Voice
235   
236   \name CueVoice
237   \alias Voice
238   fontSize = #-4
239   \override Stem #'length-fraction = #(magstep -4)
240   \override Beam #'length-fraction = #(magstep -4)
241 }
242
243 \context {
244   \Voice
245   \name DrumVoice
246   \alias Voice
247
248   \description "A voice on a percussion staff."
249   \remove "Arpeggio_engraver"
250   \consists "Multi_measure_rest_engraver"
251   \consists "Text_spanner_engraver"
252   \consists "Grob_pq_engraver"
253
254   \remove "Note_head_line_engraver"
255   \remove "Glissando_engraver"
256   \remove "Ligature_bracket_engraver"
257   \remove "Note_heads_engraver"
258   \consists "Drum_notes_engraver"
259   \remove "New_fingering_engraver"
260
261   \remove "Fingering_engraver"
262
263   \remove "Cluster_spanner_engraver"
264   \consists "Tuplet_engraver"
265
266   \consists "Skip_event_swallow_translator"
267 }
268
269 \context{
270   \type "Engraver_group"
271   \name GrandStaff
272   localKeySignature = #'()
273   
274   \description " A group of staffs, with a brace on the left
275     side, grouping the staves together.  The bar lines of the
276     contained staves are connected vertically.  "
277
278   \consists "Span_bar_engraver"
279   \consists "Span_arpeggio_engraver"
280   \consists "System_start_delimiter_engraver"
281   systemStartDelimiter = #'SystemStartBrace
282
283   \accepts "Staff"
284   \accepts "FiguredBass"
285 }
286
287 \context{
288   \GrandStaff
289   \name "PianoStaff"
290   \alias "GrandStaff"
291
292   \description
293   "Just like @code{GrandStaff} but with a forced distance between
294     the staves, so cross staff beaming and slurring can be used."
295   
296   \override VerticalAlignment #'forced-distance = #12
297   \override VerticalAlignment #'self-alignment-Y = #0
298
299   \consists "Vertical_align_engraver"
300   \consists "Instrument_name_engraver"
301   
302   instrumentName = #'()
303   shortInstrumentName = #'()
304 }
305
306 \context {
307   \type "Engraver_group"
308   \name InnerStaffGroup
309
310   \consists "Span_bar_engraver"
311   \consists "Span_arpeggio_engraver"
312   \consists "Output_property_engraver"  
313   systemStartDelimiter = #'SystemStartBracket
314
315   \consists "System_start_delimiter_engraver"
316
317   \defaultchild "Staff"
318   \accepts "Staff"
319   \accepts "RhythmicStaff"
320   \accepts "DrumStaff"
321   \accepts "GrandStaff"
322   \accepts "PianoStaff"
323   \accepts "TabStaff"   
324   \accepts "Lyrics"
325   \accepts "ChordNames"
326 }
327
328 \context {
329   \InnerStaffGroup
330   \name StaffGroup
331   
332   \description
333
334   "Groups staffs while adding a bracket on the left side, grouping
335 the staves together.  The bar lines of the contained staves are
336 connected vertically.  StaffGroup only consists of a collection of
337 staffs, with a bracket in front and spanning bar lines. "
338   
339   \accepts "InnerChoirStaff"
340   \accepts "ChoirStaff"
341   \accepts "InnerStaffGroup"
342   \accepts "FiguredBass"
343 }
344
345
346 \context{
347   \type "Engraver_group"
348   \override VerticalAxisGroup #'minimum-Y-extent = #'(-1.2 . 2.4)
349   extraVerticalExtent = ##f
350   verticalExtent = ##f
351
352   \description " Corresponds to a voice with lyrics.  Handles the
353 printing of a single line of lyrics.  "
354   
355   \name "Lyrics" 
356   \consists "Lyric_engraver"
357   \consists "Extender_engraver"
358   \consists "Hyphen_engraver"
359   \consists "Stanza_number_engraver"
360   \consists "Instrument_name_engraver"
361   \consists "Skip_event_swallow_translator"
362   \consists "Font_size_engraver"
363   \consists "Hara_kiri_engraver"
364   \override VerticalAxisGroup #'remove-first = ##t
365   \override VerticalAxisGroup #'remove-empty = ##t
366   \override SeparationItem #'padding = #0.2
367   \override InstrumentName #'self-alignment-Y = ##f
368
369   %% sync with define-grobs.scm ;
370   \override InstrumentName #'font-size = #1.0
371
372   %% make sure that barlines aren't collapsed, when
373   %% Bar_engraver is there.
374   \override BarLine #'bar-size = #0.1 
375   
376 }
377
378 \context {
379   \type "Engraver_group"
380   \name NoteNames
381   \consists "Axis_group_engraver"
382
383   \override VerticalAxisGroup #'minimum-Y-extent = ##f
384   extraVerticalExtent = ##f
385   verticalExtent = ##f 
386
387   
388   \consists "Rest_swallow_translator" 
389   \consists "Skip_event_swallow_translator"
390   \consists "Tie_engraver"
391   \consists "Note_name_engraver"
392   \consists "Separating_line_group_engraver"
393 }
394
395 \context {
396   \type "Engraver_group"
397   \name ChordNames
398   \description "Typesets chord names."
399
400   \consists "Volta_engraver"
401   
402   \consists "Rest_swallow_translator" 
403   \consists "Output_property_engraver"  
404   \consists "Separating_line_group_engraver"
405   \consists "Chord_name_engraver"
406   \consists "Skip_event_swallow_translator"
407   \consists "Hara_kiri_engraver"
408   
409   voltaOnThisStaff = ##f
410   \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2.5)
411   extraVerticalExtent = ##f
412   \override SeparatingGroupSpanner #'padding = #0.8
413   \override VerticalAxisGroup #'remove-first = ##t
414   \override VerticalAxisGroup #'remove-empty = ##t
415   verticalExtent = ##f 
416 }
417
418
419 RemoveEmptyStaffContext= \context {
420   \Staff
421   \remove "Axis_group_engraver"
422   \consists "Hara_kiri_engraver"
423   \override Beam #'auto-knee-gap = #'()
424   \override VerticalAxisGroup #'remove-empty = ##t
425 }
426
427 AncientRemoveEmptyStaffContext = \context {
428 %% why not add by default?
429   
430   \RemoveEmptyStaffContext
431   \accepts "VaticanaVoice"
432   \accepts "GregorianTranscriptionVoice"
433   \accepts "MensuralVoice"
434 }
435
436 \context {
437   \type "Score_engraver"
438   \name "Score"
439   
440   \description "This is the top level notation context.  No
441     other context can contain a @code{Score} context.  This context
442     handles the administration of time signatures.  It also makes sure
443     that items such as clefs, time signatures, and key-signatures are
444     aligned across staves.
445
446     You cannot explicitly instantiate a Score context (since it is
447     not contained in any other context).  It is instantiated
448     automatically when an output definition (a @code{\score} or
449     @code{\layout} block) is processed."
450
451
452   \consists "Paper_column_engraver"
453   \consists "Vertically_spaced_contexts_engraver"
454   \consists "Repeat_acknowledge_engraver"
455   \consists "Staff_collecting_engraver"
456
457   %% move the alias along with the engraver.
458
459   \consists "Timing_translator"
460   \consists "Default_bar_line_engraver"
461   \consists "Output_property_engraver"
462   \consists "System_start_delimiter_engraver"
463   \consists "Mark_engraver"     
464   \consists "Metronome_mark_engraver"   
465   \consists "Break_align_engraver"
466   \consists "Spacing_engraver"
467   \consists "Grace_spacing_engraver"
468   \consists "Vertical_align_engraver"
469   \consists "Stanza_number_align_engraver"
470   \consists "Bar_number_engraver"
471   \consists "Tweak_engraver"
472   \consists "Parenthesis_engraver"
473   
474   \defaultchild "Staff"
475
476   \accepts "Staff"
477   \accepts "RhythmicStaff"
478   \accepts "TabStaff"
479   \accepts "VaticanaStaff"
480   \accepts "GregorianTranscriptionStaff"
481   \accepts "MensuralStaff"
482   \accepts "StaffGroup"
483   \accepts "DrumStaff"
484   \accepts "Lyrics"
485   \accepts "ChordNames"
486   \accepts "GrandStaff"
487   \accepts "ChoirStaff"
488   \accepts "PianoStaff"
489   \accepts "Devnull"
490   \accepts "NoteNames"
491   \accepts "FiguredBass"
492   
493   soloText = #"Solo"
494   soloIIText = #"Solo II"
495   aDueText = #"a2"
496   printPartCombineTexts = ##t
497   systemStartDelimiter =#'SystemStartBar
498
499   drumStyleTable = #drums-style
500   
501   melismaBusyProperties = #default-melisma-properties
502   tieWaitForNote = ##f
503   clefGlyph = #"clefs.G"
504   clefPosition = #-2
505   middleCPosition = #-6
506   firstClef = ##t
507   
508   defaultBarType = #"|"
509   barNumberVisibility = #first-bar-number-invisible
510   automaticBars = ##t
511   
512   explicitClefVisibility = #all-visible
513   explicitKeySignatureVisibility = #all-visible
514   autoBeamSettings = #default-auto-beam-settings
515   autoBeaming = ##t
516   autoBeamCheck = #default-auto-beam-check
517   scriptDefinitions = #default-script-alist
518
519   pedalSustainStrings = #'("Ped." "*Ped." "*")
520   pedalSustainStyle = #'text
521   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
522   pedalUnaCordaStyle = #'text
523
524 %% These are in ordinary italic font, including the *,
525 %% but they are unlikely to be used, 
526 %% as the default pedal-style for SostenutoPedal is 'mixed':
527 %% i.e.  Sost. Ped_____________________ 
528   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") 
529   pedalSostenutoStyle = #'mixed
530
531   harmonicAccidentals = ##t 
532   fingeringOrientations = #'(up down)
533   stringNumberOrientations = #'(up down)
534   markFormatter = #format-mark-letters
535   rehearsalMark = #1
536   subdivideBeams = ##f
537   allowBeamBreak = ##f
538   extraNatural = ##t
539   autoAccidentals = #'(Staff (same-octave . 0))
540   autoCautionaries = #'()  
541
542   printKeyCancellation = ##t
543   keyAlterationOrder = #`(
544     (6 . ,FLAT) (2  . ,FLAT) (5 . ,FLAT ) (1  . ,FLAT) (4  . ,FLAT) (0  . ,FLAT) (3  . ,FLAT)
545     (3  . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
546     (6 . ,DOUBLE-FLAT) (2  . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1  . ,DOUBLE-FLAT) (4  . ,DOUBLE-FLAT) (0  . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
547     (3  . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
548   )
549
550   barCheckSynchronize = ##f
551   
552 %% chord names:
553   chordNameFunction = #ignatzek-chord-names
554   majorSevenSymbol = #whiteTriangleMarkup
555   chordNameSeparator = #(make-simple-markup  "/")
556   chordNameExceptions = #ignatzekExceptions
557   chordNoteNamer = #'()
558   chordRootNamer = #note-name->markup
559   chordPrefixSpacer = #0
560   chordNameExceptionsFull = #fullJazzExceptions
561   chordNameExceptionsPartial = #partialJazzExceptions
562   
563
564   bassStaffProperties = #'((assign clefGlyph "clefs.F")
565   (assign clefPosition 2)
566   (assign middleCPosition 6))
567 %% tablature:
568   stringOneTopmost = ##t
569   highStringOne = ##t
570
571 %% One may change the strings tuning as following :
572 %% The lenght of the list must be equal to the number of string
573   stringTunings = #guitar-tuning
574   tablatureFormat = #fret-number-tablature-format
575
576 %%
577   figuredBassFormatter = #format-bass-figure
578   metronomeMarkFormatter = #format-metronome-markup
579   graceSettings = #`(
580     (Voice Stem direction ,UP)
581     (Voice Stem font-size -3)
582     (Voice NoteHead font-size -3)
583     (Voice Dots font-size -3)
584     (Voice Stem length-fraction 0.8)
585     (Voice Stem no-stem-extend #t)
586     (Voice Beam thickness 0.384)
587     (Voice Beam length-fraction 0.8)
588     (Voice Accidental font-size -4)
589     (Voice Slur direction ,DOWN)
590   )
591
592   keepAliveInterfaces = #'(rhythmic-grob-interface lyric-interface percent-repeat-interface)
593   quotedEventTypes = #'(note-event rest-event time-scaled-music tie-event beam-event)
594   instrumentTransposition = #(ly:make-pitch 0 0 0)
595
596   verticallySpacedContexts = #'(Staff)
597
598   hairpinToBarline = ##t 
599   
600   timing = ##t
601 }
602
603
604
605
606 \context {
607   \type "Engraver_group"
608   \name "FiguredBass"
609
610   \consists "Figured_bass_engraver"
611   \consists "Note_swallow_translator"
612   \consists "Skip_event_swallow_translator"
613   \consists "Separating_line_group_engraver"
614   \consists "Hara_kiri_engraver"
615
616   \override VerticalAxisGroup #'remove-empty = ##t
617   \override VerticalAxisGroup #'remove-first = ##t
618   \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.5 . 2.5)
619 }
620
621 \context {
622   \name "Devnull"
623   \type "Engraver_group"
624
625 %% don't want to route anything out of here: 
626   \alias "Staff"
627   \alias "Voice"
628   \consists "Swallow_engraver"
629   \description "Silently discards all musical information given to this context. "
630 }
631
632 \context {
633   \Voice
634   \name "TabVoice"
635   \alias "Voice"
636   \consists "Tab_note_heads_engraver"
637   \remove "Note_heads_engraver"
638   \remove "Fingering_engraver"
639   \remove "New_fingering_engraver"
640
641   \description "Context for drawing notes in a Tab staff. "
642
643   %% TabStaff increase the staff-space, which in turn
644   %% increases beam thickness and spacing; beams are
645   %% too big. We have to adjust the beam settings:
646   \override Beam #'thickness = #0.32
647   \override Beam #'length-fraction = #0.62
648
649   %% No accidental in tablature !
650   \remove Accidental_engraver
651 }
652
653 \context {
654   \Staff
655   \alias "Staff"
656   \name "TabStaff"
657   \denies "Voice"
658   \consists "Tab_staff_symbol_engraver"
659   
660   \description "Context for generating tablature. [DOCME]"
661
662   \accepts "TabVoice"
663   \defaultchild "TabVoice"
664   
665   %% 6 strings
666   \override StaffSymbol #'staff-space = #1.5
667
668   %% Don't draw stems over the tablature figures !
669   \override Stem #'avoid-note-head = ##t
670   
671   %% No accidental in tablature !
672   \remove "Accidental_engraver"
673   \remove "Key_engraver"
674   \remove "String_number_engraver"
675   %% Special "TAB" clef
676   clefGlyph = #"clefs.tab"
677   clefPosition = #0
678 }
679
680 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
681 %% but this does not work (is this a bug or intended behaviour?):
682 %%
683 %% If I try to do so, I get "error: unknown escaped string:
684 %% `\VaticanaStaff'" in params-init.ly.  If I also move
685 %% "\context { \Vaticana*Context }" from params-init.ly to the end
686 %% of gregorian-init.ly, then I get "error: parse error, unexpected
687 %% TRANSLATOR: \context { \VaticanaStaff }" in
688 %% gregorian-init.ly. --jr
689
690 \context {
691   \Voice
692   \name "VaticanaVoice"
693   \alias "Voice"
694   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
695
696   \remove "Slur_engraver"
697   \remove "Stem_engraver"
698   \remove "Ligature_bracket_engraver"
699   \consists "Vaticana_ligature_engraver"
700
701   %% Set default head for notes outside of \[ \].
702   \override NoteHead #'style = #'vaticana.punctum
703
704   %% Put some space before and after divisiones.
705   %% FIXME: This does not seem to show any effect.
706   \override Script #'padding = #0.5
707
708   %% There are no beams in Gregorian Chant notation.
709   autoBeaming = ##f
710
711   %% Prepare TextSpanner for \episem{Initium|Finis} use.
712   %%
713   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
714   %% always produce dashed lines, regardless of the style property.
715   %%
716   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
717   %% required to force the articulation signs being placed vertically
718   %% tightly to the correpsonding note heads.
719   %%
720   \override TextSpanner #'dash-fraction = #'()
721   \override TextSpanner #'style = #'line
722   \override TextSpanner #'edge-height = #'(0 . 0)
723   \override TextSpanner #'padding = #-0.1
724   \override TextSpanner #'enclose-bounds = #1
725   \override TextSpanner #'edge-text = #'("" . "")
726 }
727
728 %% FIXME: need something like
729 %%  \remove "Bar_number_engraver" (which lives on score level)
730 %% for vaticana and gregorian transcription staves
731
732 \context {
733   \Staff
734   \name "VaticanaStaff"
735   \alias "Staff"
736   \denies "Voice"
737   \accepts "VaticanaVoice"
738   \defaultchild "VaticanaVoice"
739
740   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
741
742   \remove "Time_signature_engraver"
743   \consists "Custos_engraver"
744
745   %% We can not remove Bar_engraver; otherwise clefs and custodes will
746   %% not show up any more among other line breaking issues.
747   %% Instead, we make the grob transparent.
748   \override BarLine #'transparent = ##t
749
750   \override StaffSymbol #'line-count = #4
751   \override StaffSymbol #'thickness = #0.6
752
753   %% FIXME: unit on StaffSymbol's width should be \linewidth.
754   %% \override StaffSymbol #'width = #60.0
755
756   %% Choose vaticana do clef on 3rd line as default.
757   clefGlyph = #"clefs.vaticana.do"
758   middleCPosition = #1
759   clefPosition = #1
760   clefOctavation = #0
761
762   %% Select vaticana style font.
763   \override KeySignature #'style = #'vaticana
764   \override Accidental #'style = #'vaticana
765   \override Custos #'style = #'vaticana
766   \override Custos #'neutral-position = #3
767   \override Custos #'neutral-direction = #DOWN
768 }
769
770 \context {
771   \Voice
772   \name "GregorianTranscriptionVoice"
773   \alias "Voice"
774
775   %% Removing ligature bracket engraver without replacing it by some
776   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
777   %% warning for every "\[" and "\]".  Therefore, we make the grob
778   %% transparent instead.
779   \override LigatureBracket #'transparent = ##t
780
781   %% Put some space before and after divisiones.
782   %% FIXME: This does not seem to show any effect.
783   \override Script #'padding = #0.5
784
785   %% There are no beams in Gregorian Chant notation.
786   autoBeaming = ##f
787
788   %% Prepare TextSpanner for \episem{Initium|Finis} use.
789   %%
790   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
791   %% always produce dashed lines, regardless of the style property.
792   %%
793   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
794   %% required to force the articulation signs being placed vertically
795   %% tightly to the correpsonding note heads.
796   %%
797   \override TextSpanner #'dash-fraction = #'()
798   \override TextSpanner #'style = #'line
799   \override TextSpanner #'edge-height = #'(0 . 0)
800   \override TextSpanner #'padding = #-0.1
801   \override TextSpanner #'enclose-bounds = #1
802   \override TextSpanner #'edge-text = #'("" . "")
803 }
804
805 \context {
806   \Staff
807   \name "GregorianTranscriptionStaff"
808   \alias "Staff"
809   \denies "Voice"
810   \accepts "GregorianTranscriptionVoice"
811   \defaultchild "GregorianTranscriptionVoice"
812
813   %% We can not remove Bar_engraver; otherwise clefs and custodes will
814   %% not show up any more among other line breaking issues.
815   %% Instead, we make the grob transparent.
816   \override BarLine #'transparent = ##t
817 }
818
819 \context {
820   \Voice
821   \name "MensuralVoice"
822   \alias "Voice"
823   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style."
824
825   \remove "Slur_engraver"
826   \remove "Ligature_bracket_engraver"
827   \consists "Mensural_ligature_engraver"
828
829   %% Set default head for notes outside of \[ \].
830   \override NoteHead #'style = #'petrucci
831
832   %% There are no beams in mensural notation.
833   autoBeaming = ##f
834 }
835
836 \context {
837   \Staff
838   \name "MensuralStaff"
839   \alias "Staff"
840   \denies "Voice"
841   \defaultchild "MensuralVoice"
842   \accepts "MensuralVoice"
843   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting a piece in mensural style."
844
845   \consists "Custos_engraver"
846
847   %% We can not remove Bar_engraver; otherwise clefs and custodes will
848   %% not show up any more among other line breaking issues.
849   %% Instead, we make the grob transparent.
850   \override BarLine #'transparent = ##t
851
852   \override StaffSymbol #'thickness = #0.6
853
854   %% FIXME: unit on StaffSymbol's width should be \linewidth.
855   %% \override StaffSymbol #'width = #60.0
856
857   %% Choose petrucci g clef on 2nd line as default.
858   clefGlyph = #"clefs.petrucci.g"
859   middleCPosition = #-6
860   clefPosition = #-2
861   clefOctavation = #0
862
863   %% Select mensural style font.
864   \override TimeSignature #'style = #'mensural
865   \override KeySignature #'style = #'mensural
866   \override Accidental #'style = #'mensural
867   \override Custos #'style = #'mensural
868   \override Custos #'neutral-position = #3
869   \override Custos #'neutral-direction = #DOWN
870 }
871
872
873 RemoveEmptyRhythmicStaffContext= \context {
874   \RhythmicStaff
875   \remove "Axis_group_engraver"
876   \override VerticalAxisGroup #'remove-empty = ##t
877   \consists "Hara_kiri_engraver"
878 }