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