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