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