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