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