]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
* scm/output-lib.scm (string-finger::calc-text): new function
[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   stringFingerOrientations = #'(up down)
535   
536   markFormatter = #format-mark-letters
537   rehearsalMark = #1
538   subdivideBeams = ##f
539   allowBeamBreak = ##f
540   extraNatural = ##t
541   autoAccidentals = #'(Staff (same-octave . 0))
542   autoCautionaries = #'()  
543
544   printKeyCancellation = ##t
545   keyAlterationOrder = #`(
546     (6 . ,FLAT) (2  . ,FLAT) (5 . ,FLAT ) (1  . ,FLAT) (4  . ,FLAT) (0  . ,FLAT) (3  . ,FLAT)
547     (3  . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
548     (6 . ,DOUBLE-FLAT) (2  . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1  . ,DOUBLE-FLAT) (4  . ,DOUBLE-FLAT) (0  . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
549     (3  . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
550   )
551
552   barCheckSynchronize = ##f
553   
554 %% chord names:
555   chordNameFunction = #ignatzek-chord-names
556   majorSevenSymbol = #whiteTriangleMarkup
557   chordNameSeparator = #(make-simple-markup  "/")
558   chordNameExceptions = #ignatzekExceptions
559   chordNoteNamer = #'()
560   chordRootNamer = #note-name->markup
561   chordPrefixSpacer = #0
562   chordNameExceptionsFull = #fullJazzExceptions
563   chordNameExceptionsPartial = #partialJazzExceptions
564   
565
566   bassStaffProperties = #'((assign clefGlyph "clefs.F")
567   (assign clefPosition 2)
568   (assign middleCPosition 6))
569 %% tablature:
570   stringOneTopmost = ##t
571   highStringOne = ##t
572
573 %% One may change the strings tuning as following :
574 %% The lenght of the list must be equal to the number of string
575   stringTunings = #guitar-tuning
576   tablatureFormat = #fret-number-tablature-format
577
578 %%
579   figuredBassFormatter = #format-bass-figure
580   metronomeMarkFormatter = #format-metronome-markup
581   graceSettings = #`(
582     (Voice Stem direction ,UP)
583     (Voice Stem font-size -3)
584     (Voice NoteHead font-size -3)
585     (Voice Dots font-size -3)
586     (Voice Stem length-fraction 0.8)
587     (Voice Stem no-stem-extend #t)
588     (Voice Beam thickness 0.384)
589     (Voice Beam length-fraction 0.8)
590     (Voice Accidental font-size -4)
591     (Voice Slur direction ,DOWN)
592   )
593
594   keepAliveInterfaces = #'(rhythmic-grob-interface lyric-interface percent-repeat-interface)
595   quotedEventTypes = #'(note-event rest-event time-scaled-music tie-event beam-event)
596   instrumentTransposition = #(ly:make-pitch 0 0 0)
597
598   verticallySpacedContexts = #'(Staff)
599
600   hairpinToBarline = ##t 
601   
602   timing = ##t
603 }
604
605
606
607
608 \context {
609   \type "Engraver_group"
610   \name "FiguredBass"
611
612   \consists "Figured_bass_engraver"
613   \consists "Note_swallow_translator"
614   \consists "Skip_event_swallow_translator"
615   \consists "Separating_line_group_engraver"
616   \consists "Hara_kiri_engraver"
617
618   \override VerticalAxisGroup #'remove-empty = ##t
619   \override VerticalAxisGroup #'remove-first = ##t
620   \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.5 . 2.5)
621 }
622
623 \context {
624   \name "Devnull"
625   \type "Engraver_group"
626
627 %% don't want to route anything out of here: 
628   \alias "Staff"
629   \alias "Voice"
630   \consists "Swallow_engraver"
631   \description "Silently discards all musical information given to this context. "
632 }
633
634 \context {
635   \Voice
636   \name "TabVoice"
637   \alias "Voice"
638   \consists "Tab_note_heads_engraver"
639   \remove "Note_heads_engraver"
640   \remove "Fingering_engraver"
641   \remove "New_fingering_engraver"
642
643   \description "Context for drawing notes in a Tab staff. "
644
645   %% TabStaff increase the staff-space, which in turn
646   %% increases beam thickness and spacing; beams are
647   %% too big. We have to adjust the beam settings:
648   \override Beam #'thickness = #0.32
649   \override Beam #'length-fraction = #0.62
650
651   %% No accidental in tablature !
652   \remove Accidental_engraver
653 }
654
655 \context {
656   \Staff
657   \alias "Staff"
658   \name "TabStaff"
659   \denies "Voice"
660   \consists "Tab_staff_symbol_engraver"
661   
662   \description "Context for generating tablature. [DOCME]"
663
664   \accepts "TabVoice"
665   \defaultchild "TabVoice"
666   
667   %% 6 strings
668   \override StaffSymbol #'staff-space = #1.5
669
670   %% Don't draw stems over the tablature figures !
671   \override Stem #'avoid-note-head = ##t
672   
673   %% No accidental in tablature !
674   \remove "Accidental_engraver"
675   \remove "Key_engraver"
676   \remove "String_number_engraver"
677   %% Special "TAB" clef
678   clefGlyph = #"clefs.tab"
679   clefPosition = #0
680 }
681
682 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
683 %% but this does not work (is this a bug or intended behaviour?):
684 %%
685 %% If I try to do so, I get "error: unknown escaped string:
686 %% `\VaticanaStaff'" in params-init.ly.  If I also move
687 %% "\context { \Vaticana*Context }" from params-init.ly to the end
688 %% of gregorian-init.ly, then I get "error: parse error, unexpected
689 %% TRANSLATOR: \context { \VaticanaStaff }" in
690 %% gregorian-init.ly. --jr
691
692 \context {
693   \Voice
694   \name "VaticanaVoice"
695   \alias "Voice"
696   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
697
698   \remove "Slur_engraver"
699   \remove "Stem_engraver"
700   \remove "Ligature_bracket_engraver"
701   \consists "Vaticana_ligature_engraver"
702
703   %% Set default head for notes outside of \[ \].
704   \override NoteHead #'style = #'vaticana.punctum
705
706   %% Put some space before and after divisiones.
707   %% FIXME: This does not seem to show any effect.
708   \override Script #'padding = #0.5
709
710   %% There are no beams in Gregorian Chant notation.
711   autoBeaming = ##f
712
713   %% Prepare TextSpanner for \episem{Initium|Finis} use.
714   %%
715   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
716   %% always produce dashed lines, regardless of the style property.
717   %%
718   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
719   %% required to force the articulation signs being placed vertically
720   %% tightly to the correpsonding note heads.
721   %%
722   \override TextSpanner #'dash-fraction = #'()
723   \override TextSpanner #'style = #'line
724   \override TextSpanner #'edge-height = #'(0 . 0)
725   \override TextSpanner #'padding = #-0.1
726   \override TextSpanner #'enclose-bounds = #1
727   \override TextSpanner #'edge-text = #'("" . "")
728 }
729
730 %% FIXME: need something like
731 %%  \remove "Bar_number_engraver" (which lives on score level)
732 %% for vaticana and gregorian transcription staves
733
734 \context {
735   \Staff
736   \name "VaticanaStaff"
737   \alias "Staff"
738   \denies "Voice"
739   \accepts "VaticanaVoice"
740   \defaultchild "VaticanaVoice"
741
742   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
743
744   \remove "Time_signature_engraver"
745   \consists "Custos_engraver"
746
747   %% We can not remove Bar_engraver; otherwise clefs and custodes will
748   %% not show up any more among other line breaking issues.
749   %% Instead, we make the grob transparent.
750   \override BarLine #'transparent = ##t
751
752   \override StaffSymbol #'line-count = #4
753   \override StaffSymbol #'thickness = #0.6
754
755   %% FIXME: unit on StaffSymbol's width should be \linewidth.
756   %% \override StaffSymbol #'width = #60.0
757
758   %% Choose vaticana do clef on 3rd line as default.
759   clefGlyph = #"clefs.vaticana.do"
760   middleCPosition = #1
761   clefPosition = #1
762   clefOctavation = #0
763
764   %% Select vaticana style font.
765   \override KeySignature #'style = #'vaticana
766   \override Accidental #'style = #'vaticana
767   \override Custos #'style = #'vaticana
768   \override Custos #'neutral-position = #3
769   \override Custos #'neutral-direction = #DOWN
770   \override Dots #'style = #'vaticana
771 }
772
773 \context {
774   \Voice
775   \name "GregorianTranscriptionVoice"
776   \alias "Voice"
777
778   %% Removing ligature bracket engraver without replacing it by some
779   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
780   %% warning for every "\[" and "\]".  Therefore, we make the grob
781   %% transparent instead.
782   \override LigatureBracket #'transparent = ##t
783
784   %% Put some space before and after divisiones.
785   %% FIXME: This does not seem to show any effect.
786   \override Script #'padding = #0.5
787
788   %% There are no beams in Gregorian Chant notation.
789   autoBeaming = ##f
790
791   %% Prepare TextSpanner for \episem{Initium|Finis} use.
792   %%
793   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
794   %% always produce dashed lines, regardless of the style property.
795   %%
796   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
797   %% required to force the articulation signs being placed vertically
798   %% tightly to the correpsonding note heads.
799   %%
800   \override TextSpanner #'dash-fraction = #'()
801   \override TextSpanner #'style = #'line
802   \override TextSpanner #'edge-height = #'(0 . 0)
803   \override TextSpanner #'padding = #-0.1
804   \override TextSpanner #'enclose-bounds = #1
805   \override TextSpanner #'edge-text = #'("" . "")
806 }
807
808 \context {
809   \Staff
810   \name "GregorianTranscriptionStaff"
811   \alias "Staff"
812   \denies "Voice"
813   \accepts "GregorianTranscriptionVoice"
814   \defaultchild "GregorianTranscriptionVoice"
815
816   %% We can not remove Bar_engraver; otherwise clefs and custodes will
817   %% not show up any more among other line breaking issues.
818   %% Instead, we make the grob transparent.
819   \override BarLine #'transparent = ##t
820 }
821
822 \context {
823   \Voice
824   \name "MensuralVoice"
825   \alias "Voice"
826   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style."
827
828   \remove "Slur_engraver"
829   \remove "Ligature_bracket_engraver"
830   \consists "Mensural_ligature_engraver"
831
832   %% Set default head for notes outside of \[ \].
833   \override NoteHead #'style = #'petrucci
834
835   %% There are no beams in mensural notation.
836   autoBeaming = ##f
837 }
838
839 \context {
840   \Staff
841   \name "MensuralStaff"
842   \alias "Staff"
843   \denies "Voice"
844   \defaultchild "MensuralVoice"
845   \accepts "MensuralVoice"
846   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting a piece in mensural style."
847
848   \consists "Custos_engraver"
849
850   %% We can not remove Bar_engraver; otherwise clefs and custodes will
851   %% not show up any more among other line breaking issues.
852   %% Instead, we make the grob transparent.
853   \override BarLine #'transparent = ##t
854
855   \override StaffSymbol #'thickness = #0.6
856
857   %% FIXME: unit on StaffSymbol's width should be \linewidth.
858   %% \override StaffSymbol #'width = #60.0
859
860   %% Choose petrucci g clef on 2nd line as default.
861   clefGlyph = #"clefs.petrucci.g"
862   middleCPosition = #-6
863   clefPosition = #-2
864   clefOctavation = #0
865
866   %% Select mensural style font.
867   \override TimeSignature #'style = #'mensural
868   \override KeySignature #'style = #'mensural
869   \override Accidental #'style = #'mensural
870   \override Custos #'style = #'mensural
871   \override Custos #'neutral-position = #3
872   \override Custos #'neutral-direction = #DOWN
873 }
874
875
876 RemoveEmptyRhythmicStaffContext= \context {
877   \RhythmicStaff
878   \remove "Axis_group_engraver"
879   \override VerticalAxisGroup #'remove-empty = ##t
880   \consists "Hara_kiri_engraver"
881 }