]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
* lily/tuplet-bracket.cc (after_line_breaking): don't suicide if
[lilypond.git] / ly / engraver-init.ly
1 \version "2.5.18"
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_engraver"
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_engraver"
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_engraver"
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_engraver"
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 = #1
136   \override Beam  #'neutral-direction = #1
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_engraver"
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 "Rest_engraver"
247   \consists "Drum_notes_engraver"
248   \remove "New_fingering_engraver"
249
250   \remove "Fingering_engraver"
251
252   \remove "Cluster_spanner_engraver"
253   \consists "Tuplet_engraver"
254
255   \consists "Skip_event_swallow_translator"
256 }
257
258 \context{
259   \type "Engraver_group_engraver"
260   \name GrandStaff
261   localKeySignature = #'()
262   
263   \description " A group of staffs, with a brace on the left
264     side, grouping the staves together.  The bar lines of the
265     contained staves are connected vertically.  "
266
267   \consists "Span_bar_engraver"
268   \consists "Span_arpeggio_engraver"
269   \consists "System_start_delimiter_engraver"
270   systemStartDelimiter = #'SystemStartBrace
271
272   \accepts "Staff"
273 }
274
275 \context{
276   \GrandStaff
277   \name "PianoStaff"
278   \alias "GrandStaff"
279
280   \description
281   "Just like @code{GrandStaff} but with a forced distance between
282     the staves, so cross staff beaming and slurring can be used."
283   
284   verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
285   \override VerticalAlignment #'forced-distance = #12
286   \override VerticalAlignment #'self-alignment-Y = #0
287
288   \consists "Vertical_align_engraver"
289   \consists "Instrument_name_engraver"
290   
291   instrument = #'()
292   instr = #'()
293 }
294
295 \context {
296   \type "Engraver_group_engraver"
297   \name InnerStaffGroup
298
299   \consists "Span_bar_engraver"
300   \consists "Span_arpeggio_engraver"
301   \consists "Output_property_engraver"  
302   systemStartDelimiter = #'SystemStartBracket
303
304   \consists "System_start_delimiter_engraver"
305
306   \defaultchild "Staff"
307   \accepts "Staff"
308   \accepts "RhythmicStaff"
309   \accepts "DrumStaff"
310   \accepts "GrandStaff"
311   \accepts "PianoStaff"
312   \accepts "TabStaff"   
313   \accepts "Lyrics"
314   \accepts "ChordNames"
315 }
316
317 \context {
318   \InnerStaffGroup
319   \name StaffGroup
320   
321   \description
322
323   "Groups staffs while adding a bracket on the left side, grouping
324 the staves together.  The bar lines of the contained staves are
325 connected vertically.  "
326   
327   \accepts "InnerChoirStaff"
328   \accepts "ChoirStaff"
329   \accepts "InnerStaffGroup"
330   \accepts "FiguredBass"
331 }
332
333
334 \context{
335   \type "Engraver_group_engraver"
336   minimumVerticalExtent = #'(-1.2 . 2.4)
337   extraVerticalExtent = ##f
338   verticalExtent = ##f
339
340   \description " Corresponds to a voice with lyrics.  Handles the
341 printing of a single line of lyrics.  "
342   
343   \name Lyrics 
344   \consists "Separating_line_group_engraver"
345   \consists "Lyric_engraver"
346   \consists "Extender_engraver"
347   \consists "Hyphen_engraver"
348   \consists "Stanza_number_engraver"
349   \consists "Vocal_name_engraver"
350   \consists "Skip_event_swallow_translator"
351   \consists "Font_size_engraver"
352   \consists "Hara_kiri_engraver"
353   \override RemoveEmptyVerticalGroup #'remove-first = ##t
354   \override SeparationItem #'padding = #0.2
355 }
356
357 \context {
358   \type "Engraver_group_engraver"
359   \name NoteNames
360   \consists "Axis_group_engraver"
361
362   minimumVerticalExtent = ##f
363   extraVerticalExtent = ##f
364   verticalExtent = ##f 
365
366   
367   \consists "Rest_swallow_translator" 
368   \consists "Skip_event_swallow_translator"
369   \consists "Tie_engraver"
370   \consists "Note_name_engraver"
371   \consists "Separating_line_group_engraver"
372 }
373
374 \context {
375   \type "Engraver_group_engraver"
376   \name ChordNames
377   \description "Typesets chord names."
378
379   \consists "Volta_engraver"
380   
381   \consists "Rest_swallow_translator" 
382   \consists "Output_property_engraver"  
383   \consists "Separating_line_group_engraver"
384   \consists "Chord_name_engraver"
385   \consists "Skip_event_swallow_translator"
386   \consists "Hara_kiri_engraver"
387   
388   voltaOnThisStaff = ##f
389   minimumVerticalExtent = #'(0 . 2.5)
390   extraVerticalExtent = ##f
391   \override SeparatingGroupSpanner #'padding = #0.8
392   \override RemoveEmptyVerticalGroup #'remove-first = ##t
393   verticalExtent = ##f 
394 }
395
396
397 RemoveEmptyStaffContext= \context {
398   \Staff
399   \remove "Axis_group_engraver"
400   \consists "Hara_kiri_engraver"
401   \override Beam #'auto-knee-gap = #'()
402 }
403
404 AncientRemoveEmptyStaffContext = \context {
405 %% why not add by default?
406   
407   \RemoveEmptyStaffContext
408   \accepts "VaticanaVoice"
409   \accepts "GregorianTranscriptionVoice"
410   \accepts "MensuralVoice"
411 }
412
413 \context {
414   \type Score_engraver
415   \name "Score"
416
417   \description "This is the top level notation context.  No
418     other context can contain a @code{Score} context.  This context
419     handles the administration of time signatures.  It also makes sure
420     that items such as clefs, time signatures, and key-signatures are
421     aligned across staves.
422
423     You cannot explicitly instantiate a Score context (since it is
424     not contained in any other context).  It is instantiated
425     automatically when an output definition (a @code{\score} or
426     @code{\layout} block) is processed."
427
428
429   \consists "Paper_column_engraver"
430   \consists "Vertically_spaced_contexts_engraver"
431   \consists "Repeat_acknowledge_engraver"
432   \consists "Staff_collecting_engraver"
433
434   %% move the alias along with the engraver.
435
436   \consists "Timing_translator"
437   \consists "Default_bar_line_engraver"
438   \consists "Output_property_engraver"
439   \consists "System_start_delimiter_engraver"
440   \consists "Mark_engraver"     
441   \consists "Metronome_mark_engraver"   
442   \consists "Break_align_engraver"
443   \consists "Spacing_engraver"
444   \consists "Vertical_align_engraver"
445   \consists "Stanza_number_align_engraver"
446   \consists "Bar_number_engraver"
447   \consists "Span_arpeggio_engraver"
448
449   \defaultchild "Staff"
450   \accepts "Staff"
451   \accepts "RhythmicStaff"
452   \accepts "TabStaff"
453   \accepts "VaticanaStaff"
454   \accepts "GregorianTranscriptionStaff"
455   \accepts "MensuralStaff"
456   \accepts "StaffGroup"
457   \accepts "DrumStaff"
458   \accepts "Lyrics"
459   \accepts "ChordNames"
460   \accepts "GrandStaff"
461   \accepts "ChoirStaff"
462   \accepts "PianoStaff"
463   \accepts "Devnull"
464   \accepts "NoteNames"
465   \accepts "FiguredBass"
466
467   soloText = #"Solo"
468   soloIIText = #"Solo II"
469   aDueText = #"a2"
470   printPartCombineTexts = ##t
471   systemStartDelimiter =#'SystemStartBar
472
473   drumStyleTable = #drums-style
474   
475   melismaBusyProperties = #default-melisma-properties
476   tieWaitForNote = ##f
477   clefGlyph = #"clefs.G"
478   clefPosition = #-2
479   middleCPosition = #-6
480   firstClef = ##t
481   
482   defaultBarType = #"|"
483   barNumberVisibility = #default-bar-number-visibility
484   automaticBars = ##t
485   
486   explicitClefVisibility = #all-visible
487   explicitKeySignatureVisibility = #all-visible
488   autoBeamSettings = #default-auto-beam-settings
489   autoBeaming = ##t
490   autoBeamCheck = #default-auto-beam-check
491   scriptDefinitions = #default-script-alist
492
493   verticalAlignmentChildCallback = #Align_interface::alignment_callback
494
495   pedalSustainStrings = #'("Ped." "*Ped." "*")
496   pedalSustainStyle = #'text
497   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
498   pedalUnaCordaStyle = #'text
499
500 %% These are in ordinary italic font, including the *,
501 %% but they are unlikely to be used, 
502 %% as the default pedal-style for SostenutoPedal is 'mixed':
503 %% i.e.  Sost. Ped_____________________ 
504   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") 
505   pedalSostenutoStyle = #'mixed
506
507
508   harmonicAccidentals = ##t 
509   fingeringOrientations = #'(up down)
510   stringNumberOrientations = #'(up down)
511   tupletNumberFormatFunction = #denominator-tuplet-formatter
512   markFormatter = #format-mark-letters
513   rehearsalMark = #1 
514   subdivideBeams = ##f
515   allowBeamBreak = ##f
516   extraNatural = ##t
517   autoAccidentals = #'(Staff (same-octave . 0))
518   autoCautionaries = #'()  
519
520   printKeyCancellation = ##t
521   keyAlterationOrder = #`(
522     (6 . ,FLAT) (2  . ,FLAT) (5 . ,FLAT ) (1  . ,FLAT) (4  . ,FLAT) (0  . ,FLAT) (3  . ,FLAT)
523     (3  . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
524     (6 . ,DOUBLE-FLAT) (2  . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1  . ,DOUBLE-FLAT) (4  . ,DOUBLE-FLAT) (0  . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
525     (3  . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
526   )
527
528   barCheckSynchronize = ##f
529   
530 %% chord names:
531   chordNameFunction = #ignatzek-chord-names
532   majorSevenSymbol = #whiteTriangleMarkup
533   chordNameSeparator = #(make-simple-markup  "/")
534   chordNameExceptions = #ignatzekExceptions
535   chordNoteNamer = #'()
536   chordRootNamer = #note-name->markup
537   chordPrefixSpacer = #0
538   chordNameExceptionsFull = #fullJazzExceptions
539   chordNameExceptionsPartial = #partialJazzExceptions
540   
541
542   bassStaffProperties = #'((assign clefGlyph "clefs.F")
543   (assign clefPosition 2)
544   (assign middleCPosition 6))
545 %% tablature:
546   stringOneTopmost = ##t
547   highStringOne = ##t
548
549 %% One may change the strings tuning as following :
550 %% The lenght of the list must be equal to the number of string
551   stringTunings = #guitar-tuning
552   tablatureFormat = #fret-number-tablature-format
553
554 %%
555   bassFigureFormatFunction = #format-bass-figure
556   metronomeMarkFormatter = #format-metronome-markup
557   graceSettings = #`(
558     (Voice Stem direction 1)
559     ;; TODO: should take from existing definition.
560     ;; c&p from define-grobs.scm
561     
562     (Voice Stem lengths ,(map (lambda (x) (* 0.8 x)) '(3.5 3.5 3.5 4.5 5.0)))
563     (Voice Stem stem-shorten (0.4 0.4))
564     (Voice Stem  font-size -3)
565     (Voice NoteHead  font-size -3)
566     (Voice Dots  font-size -3)
567     (Voice Stem beamed-lengths  
568      ,(map (lambda (x) (* 0.8 x)) '(3.3 3.3 4.0)))
569     (Voice Stem beamed-minimum-free-lengths  
570      ,(map (lambda (x) (* 0.8 x)) '(2.5 2.0 1.5)))
571     (Voice Stem beamed-extreme-minimum-free-lengths  
572      ,(map (lambda (x) (* 0.8 x)) '(1.83 1.5)))
573
574     (Voice Stem no-stem-extend #t)
575     (Voice Beam thickness 0.384)
576     (Voice Beam space-function ,(lambda (beam mult)
577                                  (* 0.8 (Beam::space_function
578                                          beam mult))))
579     (Voice Accidental font-size -4)
580     (Voice Slur direction -1)
581   )
582
583   keepAliveInterfaces = #'(rhythmic-grob-interface lyric-interface percent-repeat-interface)
584   quotedEventTypes = #'(note-event rest-event time-scaled-music tie-event)
585   instrumentTransposition = #(ly:make-pitch 0 0 0)
586
587   verticallySpacedContexts = #'(Staff)
588 }
589
590
591
592
593 \context {
594   \type "Engraver_group_engraver"
595   \name FiguredBass 
596
597   \consists "Figured_bass_engraver"
598   \consists "Rest_swallow_translator"
599   \consists "Note_swallow_translator"
600   \consists "Skip_event_swallow_translator"
601   \consists "Separating_line_group_engraver"
602   \consists "Hara_kiri_engraver"
603   \override RemoveEmptyVerticalGroup #'remove-first = ##t
604 }
605
606 \context {
607   \name "Devnull"
608   \type "Engraver_group_engraver"
609
610 %% don't want to route anything out of here: 
611   \alias "Staff"
612   \alias "Voice"
613   \consists "Swallow_engraver"
614   \description "Silently discards all musical information given to this context. "
615 }
616
617 \context {
618   \Voice
619   \name "TabVoice"
620   \consists "Tab_note_heads_engraver"
621   \remove "Note_heads_engraver"
622   \remove "Fingering_engraver"
623   \remove "New_fingering_engraver"
624
625   \description "Context for drawing notes in a Tab staff. "
626
627   %% Draws all stems/beams out of the staff (and not in the middle of the staff !)
628   %% This feature is now disabled because most of the tab does not use it.
629   %%\override Beam #'damping = #100000
630   %%\override Stem #'up-to-staff = ##t
631
632   %% TabStaff increase the staff-space, which in turn
633   %% increases beam thickness and spacing; beams are
634   %% too big. We have to adjust the beam settings:
635   \override Beam #'thickness = #0.32
636   \override Beam #'space-function =
637   #(lambda (beam mult) (* 0.62 (Beam::space_function beam mult)))
638
639   %% No accidental in tablature !
640   \remove Accidental_engraver
641 }
642
643 \context {
644   \Staff
645   \alias "Staff"
646   \name "TabStaff"
647   \denies "Voice"
648   \remove "Staff_symbol_engraver"
649   \consists "Tab_staff_symbol_engraver"
650   
651   \description "Context for generating tablature. [DOCME]"
652
653   \accepts "TabVoice"
654   \defaultchild "TabVoice"
655   
656   %% 6 strings
657   \override StaffSymbol #'staff-space = #1.5
658
659   %% Don't draw stems over the tablature figures !
660   \override Stem #'avoid-note-head = ##t
661   
662   %% No accidental in tablature !
663   \remove "Accidental_engraver"
664   \remove "Key_engraver"
665   \remove "String_number_engraver"
666   %% Special "TAB" clef
667   clefGlyph = #"clefs.tab"
668   clefPosition = #0
669 }
670
671 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
672 %% but this does not work (is this a bug or intended behaviour?):
673 %%
674 %% If I try to do so, I get "error: unknown escaped string:
675 %% `\VaticanaStaff'" in params-init.ly.  If I also move
676 %% "\context { \Vaticana*Context }" from params-init.ly to the end
677 %% of gregorian-init.ly, then I get "error: parse error, unexpected
678 %% TRANSLATOR: \context { \VaticanaStaff }" in
679 %% gregorian-init.ly. --jr
680
681 \context {
682   \Voice
683   \name "VaticanaVoice"
684   \alias "Voice"
685   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
686
687   \remove "Slur_engraver"
688   \remove "Stem_engraver"
689   \remove "Ligature_bracket_engraver"
690   \consists "Vaticana_ligature_engraver"
691
692   %% Set default head for notes outside of \[ \].
693   \override NoteHead #'style = #'vaticana.punctum
694
695   %% Put some space before and after divisiones.
696   %% FIXME: This does not seem to show any effect.
697   \override Script #'padding = #0.5
698
699   %% There are no beams in Gregorian Chant notation.
700   autoBeaming = ##f
701
702   %% Prepare TextSpanner for \episem{Initium|Finis} use.
703   %%
704   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
705   %% always produce dashed lines, regardless of the style property.
706   %%
707   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
708   %% required to force the articulation signs being placed vertically
709   %% tightly to the correpsonding note heads.
710   %%
711   \override TextSpanner #'dash-fraction = #'()
712   \override TextSpanner #'style = #'line
713   \override TextSpanner #'edge-height = #'(0 . 0)
714   \override TextSpanner #'padding = #-0.1
715   \override TextSpanner #'enclose-bounds = #1
716   \override TextSpanner #'edge-text = #'("" . "")
717 }
718
719 %% FIXME: need something like
720 %%  \remove "Bar_number_engraver" (which lives on score level)
721 %% for vaticana and gregorian transcription staves
722
723 \context {
724   \Staff
725   \name "VaticanaStaff"
726   \alias "Staff"
727   \denies "Voice"
728   \accepts "VaticanaVoice"
729   \defaultchild "VaticanaVoice"
730
731   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
732
733   \remove "Time_signature_engraver"
734   \consists "Custos_engraver"
735
736   %% We can not remove Bar_engraver; otherwise clefs and custodes will
737   %% not show up any more among other line breaking issues.
738   %% Instead, we make the grob transparent.
739   \override BarLine #'transparent = ##t
740
741   \override StaffSymbol #'line-count = #4
742   \override StaffSymbol #'thickness = #0.6
743
744   %% FIXME: unit on StaffSymbol's width should be \linewidth.
745   %% \override StaffSymbol #'width = #60.0
746
747   %% Choose vaticana do clef on 3rd line as default.
748   clefGlyph = #"clefs.vaticana.do"
749   middleCPosition = #1
750   clefPosition = #1
751   clefOctavation = #0
752
753   %% Select vaticana style font.
754   \override KeySignature #'style = #'vaticana
755   \override Accidental #'style = #'vaticana
756   \override Custos #'style = #'vaticana
757   \override Custos #'neutral-position = #3
758   \override Custos #'neutral-direction = #-1
759
760   %% Score.timing = ##f
761   %% Score.barAlways = ##t
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 = #-1
864
865   %% Score.timing = ##f
866   %% Score.barAlways = ##t
867 }
868
869
870 RemoveEmptyRhythmicStaffContext= \context {
871   \RhythmicStaff
872   \remove "Axis_group_engraver"
873   \consists "Hara_kiri_engraver"
874 }