]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
* lily/paper-system.cc (read_left_bound): new function. Read
[lilypond.git] / ly / engraver-init.ly
1 \version "2.7.6"
2
3 \context {
4   \name Global
5
6   \accepts Score
7
8   \defaultchild Score
9   \description "Hard coded entry point for LilyPond. Cannot be tuned."
10   \grobdescriptions #all-grob-descriptions
11 }
12
13 \context {
14   \type "Engraver_group"
15   \name Staff
16   
17   \consists "Output_property_engraver"  
18   \consists "Bar_engraver"
19   %% Bar_engraver must be first so default bars aren't overwritten
20   %% with empty ones.
21   
22   \consists "Font_size_engraver"
23   \consists "Volta_engraver"
24   \consists "Separating_line_group_engraver"    
25   \consists "Dot_column_engraver"
26
27   %% perhaps move to Voice context?
28   \consists "Ottava_spanner_engraver"
29   \consists "Clef_engraver"
30   \consists "Key_engraver"
31   \consists "Time_signature_engraver"
32   \consists "Ledger_line_engraver" 
33   \consists "Staff_symbol_engraver"
34   \consists "Collision_engraver"
35   \consists "Rest_collision_engraver"
36   \consists "Accidental_engraver"
37   \consists "Piano_pedal_engraver"
38   \consists "Instrument_name_engraver"
39   \consists "String_number_engraver"
40   \consists "Axis_group_engraver"
41
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"
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"
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"
118   
119   minimumVerticalExtent = ##f
120   extraVerticalExtent = ##f
121   verticalExtent = ##f 
122   localKeySignature = #'()
123   createSpacing = ##t
124
125   squashedPosition = #0
126   \name RhythmicStaff
127   \alias "Staff"
128   
129   \override BarLine #'bar-size = #4
130   \override VoltaBracket #'staff-padding = #3
131   \override StaffSymbol #'line-count = #1       
132
133   \override Stem  #'neutral-direction = #UP
134   \override Beam  #'neutral-direction = #UP
135   
136   \consists "Output_property_engraver"
137   \consists "Font_size_engraver"
138   \consists "Volta_engraver"
139   \consists "Separating_line_group_engraver"    
140   \consists "Dot_column_engraver"
141   \consists "Bar_engraver"
142   \consists "Ledger_line_engraver" 
143   \consists "Staff_symbol_engraver"
144   \consists "Pitch_squash_engraver"
145   \consists "Time_signature_engraver"
146   \consists "Instrument_name_engraver"
147   \consists "Axis_group_engraver"
148   
149   \accepts "Voice"
150   \accepts "CueVoice"
151   \defaultchild "Voice"
152
153   \description  "
154     A context like @code{Staff} but for printing rhythms.  Pitches are
155     ignored; the notes are printed on one line.  
156 "
157 }
158
159
160 \context {
161   \type "Engraver_group"
162   \name Voice
163
164   \description "
165     Corresponds to a voice on a staff.  This context handles the
166     conversion of dynamic signs, stems, beams, super- and subscripts,
167     slurs, ties, and rests.
168
169     You have to instantiate this explicitly if you want to have
170     multiple voices on the same staff."
171
172   localKeySignature = #'()
173   \consists "Font_size_engraver"
174
175   \consists "Pitched_trill_engraver"
176   \consists "Output_property_engraver"  
177   \consists "Arpeggio_engraver"
178   \consists "Multi_measure_rest_engraver"
179   \consists "Text_spanner_engraver"
180   \consists "Trill_spanner_engraver"
181   \consists "Grob_pq_engraver"
182   \consists "Forbid_line_break_engraver"
183   \consists "Laissez_vibrer_engraver"
184   \consists "Note_head_line_engraver"
185   \consists "Glissando_engraver"
186   \consists "Ligature_bracket_engraver"
187   \consists "Breathing_sign_engraver"
188   %% \consists "Rest_engraver"
189   \consists "Note_heads_engraver"
190   \consists "Rest_engraver"
191
192   \consists "Stem_engraver"
193   \consists "Beam_engraver"
194   \consists "Grace_beam_engraver"
195   \consists "Auto_beam_engraver"
196   \consists "New_fingering_engraver"
197   \consists "Chord_tremolo_engraver"
198   \consists "Percent_repeat_engraver"
199   \consists "Slash_repeat_engraver"
200   \consists "Melisma_translator"
201   \consists "Part_combine_engraver"
202
203   \consists "Text_engraver"
204   \consists "Dynamic_engraver"
205   \consists "Fingering_engraver"
206
207   \consists "Script_engraver"
208   \consists "Script_column_engraver"
209   \consists "Rhythmic_column_engraver"
210   \consists "Phrasing_slur_engraver"
211   \consists "Cluster_spanner_engraver"
212   \consists "Slur_engraver"
213   \consists "Tie_engraver"
214   \consists "Tuplet_engraver"
215   \consists "Grace_engraver"
216
217   \consists "Skip_event_swallow_translator"
218 }
219
220 \context{
221   \Voice
222   
223   \name CueVoice
224   \alias Voice
225   fontSize = #-4
226   \override Stem #'lengths = #'(2.5 2.5 3.0 3.0)
227 }
228
229 \context {
230   \Voice
231   \name DrumVoice
232   \alias Voice
233
234   \description "A voice on a percussion staff."
235   \remove "Arpeggio_engraver"
236   \consists "Multi_measure_rest_engraver"
237   \consists "Text_spanner_engraver"
238   \consists "Grob_pq_engraver"
239
240   \remove "Note_head_line_engraver"
241   \remove "Glissando_engraver"
242   \remove "Ligature_bracket_engraver"
243   \remove "Note_heads_engraver"
244   \consists "Drum_notes_engraver"
245   \remove "New_fingering_engraver"
246
247   \remove "Fingering_engraver"
248
249   \remove "Cluster_spanner_engraver"
250   \consists "Tuplet_engraver"
251
252   \consists "Skip_event_swallow_translator"
253 }
254
255 \context{
256   \type "Engraver_group"
257   \name GrandStaff
258   localKeySignature = #'()
259   
260   \description " A group of staffs, with a brace on the left
261     side, grouping the staves together.  The bar lines of the
262     contained staves are connected vertically.  "
263
264   \consists "Span_bar_engraver"
265   \consists "Span_arpeggio_engraver"
266   \consists "System_start_delimiter_engraver"
267   systemStartDelimiter = #'SystemStartBrace
268
269   \accepts "Staff"
270 }
271
272 \context{
273   \GrandStaff
274   \name "PianoStaff"
275   \alias "GrandStaff"
276
277   \description
278   "Just like @code{GrandStaff} but with a forced distance between
279     the staves, so cross staff beaming and slurring can be used."
280   
281   verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
282   \override VerticalAlignment #'forced-distance = #12
283   \override VerticalAlignment #'self-alignment-Y = #0
284
285   \consists "Vertical_align_engraver"
286   \consists "Instrument_name_engraver"
287   
288   instrument = #'()
289   instr = #'()
290 }
291
292 \context {
293   \type "Engraver_group"
294   \name InnerStaffGroup
295
296   \consists "Span_bar_engraver"
297   \consists "Span_arpeggio_engraver"
298   \consists "Output_property_engraver"  
299   systemStartDelimiter = #'SystemStartBracket
300
301   \consists "System_start_delimiter_engraver"
302
303   \defaultchild "Staff"
304   \accepts "Staff"
305   \accepts "RhythmicStaff"
306   \accepts "DrumStaff"
307   \accepts "GrandStaff"
308   \accepts "PianoStaff"
309   \accepts "TabStaff"   
310   \accepts "Lyrics"
311   \accepts "ChordNames"
312 }
313
314 \context {
315   \InnerStaffGroup
316   \name StaffGroup
317   
318   \description
319
320   "Groups staffs while adding a bracket on the left side, grouping
321 the staves together.  The bar lines of the contained staves are
322 connected vertically.  "
323   
324   \accepts "InnerChoirStaff"
325   \accepts "ChoirStaff"
326   \accepts "InnerStaffGroup"
327   \accepts "FiguredBass"
328 }
329
330
331 \context{
332   \type "Engraver_group"
333   minimumVerticalExtent = #'(-1.2 . 2.4)
334   extraVerticalExtent = ##f
335   verticalExtent = ##f
336
337   \description " Corresponds to a voice with lyrics.  Handles the
338 printing of a single line of lyrics.  "
339   
340   \name Lyrics 
341   \consists "Separating_line_group_engraver"
342   \consists "Lyric_engraver"
343   \consists "Extender_engraver"
344   \consists "Hyphen_engraver"
345   \consists "Stanza_number_engraver"
346   \consists "Vocal_name_engraver"
347   \consists "Skip_event_swallow_translator"
348   \consists "Font_size_engraver"
349   \consists "Hara_kiri_engraver"
350   \override RemoveEmptyVerticalGroup #'remove-first = ##t
351   \override SeparationItem #'padding = #0.2
352 }
353
354 \context {
355   \type "Engraver_group"
356   \name NoteNames
357   \consists "Axis_group_engraver"
358
359   minimumVerticalExtent = ##f
360   extraVerticalExtent = ##f
361   verticalExtent = ##f 
362
363   
364   \consists "Rest_swallow_translator" 
365   \consists "Skip_event_swallow_translator"
366   \consists "Tie_engraver"
367   \consists "Note_name_engraver"
368   \consists "Separating_line_group_engraver"
369 }
370
371 \context {
372   \type "Engraver_group"
373   \name ChordNames
374   \description "Typesets chord names."
375
376   \consists "Volta_engraver"
377   
378   \consists "Rest_swallow_translator" 
379   \consists "Output_property_engraver"  
380   \consists "Separating_line_group_engraver"
381   \consists "Chord_name_engraver"
382   \consists "Skip_event_swallow_translator"
383   \consists "Hara_kiri_engraver"
384   
385   voltaOnThisStaff = ##f
386   minimumVerticalExtent = #'(0 . 2.5)
387   extraVerticalExtent = ##f
388   \override SeparatingGroupSpanner #'padding = #0.8
389   \override RemoveEmptyVerticalGroup #'remove-first = ##t
390   verticalExtent = ##f 
391 }
392
393
394 RemoveEmptyStaffContext= \context {
395   \Staff
396   \remove "Axis_group_engraver"
397   \consists "Hara_kiri_engraver"
398   \override Beam #'auto-knee-gap = #'()
399 }
400
401 AncientRemoveEmptyStaffContext = \context {
402 %% why not add by default?
403   
404   \RemoveEmptyStaffContext
405   \accepts "VaticanaVoice"
406   \accepts "GregorianTranscriptionVoice"
407   \accepts "MensuralVoice"
408 }
409
410 \context {
411   \type Score_engraver
412   \name "Score"
413
414   \description "This is the top level notation context.  No
415     other context can contain a @code{Score} context.  This context
416     handles the administration of time signatures.  It also makes sure
417     that items such as clefs, time signatures, and key-signatures are
418     aligned across staves.
419
420     You cannot explicitly instantiate a Score context (since it is
421     not contained in any other context).  It is instantiated
422     automatically when an output definition (a @code{\score} or
423     @code{\layout} block) is processed."
424
425
426   \consists "Paper_column_engraver"
427   \consists "Vertically_spaced_contexts_engraver"
428   \consists "Repeat_acknowledge_engraver"
429   \consists "Staff_collecting_engraver"
430
431   %% move the alias along with the engraver.
432
433   \consists "Timing_translator"
434   \consists "Default_bar_line_engraver"
435   \consists "Output_property_engraver"
436   \consists "System_start_delimiter_engraver"
437   \consists "Mark_engraver"     
438   \consists "Metronome_mark_engraver"   
439   \consists "Break_align_engraver"
440   \consists "Spacing_engraver"
441   \consists "Vertical_align_engraver"
442   \consists "Stanza_number_align_engraver"
443   \consists "Bar_number_engraver"
444   \consists "Span_arpeggio_engraver"
445
446   \defaultchild "Staff"
447   \accepts "Staff"
448   \accepts "RhythmicStaff"
449   \accepts "TabStaff"
450   \accepts "VaticanaStaff"
451   \accepts "GregorianTranscriptionStaff"
452   \accepts "MensuralStaff"
453   \accepts "StaffGroup"
454   \accepts "DrumStaff"
455   \accepts "Lyrics"
456   \accepts "ChordNames"
457   \accepts "GrandStaff"
458   \accepts "ChoirStaff"
459   \accepts "PianoStaff"
460   \accepts "Devnull"
461   \accepts "NoteNames"
462   \accepts "FiguredBass"
463
464   soloText = #"Solo"
465   soloIIText = #"Solo II"
466   aDueText = #"a2"
467   printPartCombineTexts = ##t
468   systemStartDelimiter =#'SystemStartBar
469
470   drumStyleTable = #drums-style
471   
472   melismaBusyProperties = #default-melisma-properties
473   tieWaitForNote = ##f
474   clefGlyph = #"clefs.G"
475   clefPosition = #-2
476   middleCPosition = #-6
477   firstClef = ##t
478   
479   defaultBarType = #"|"
480   barNumberVisibility = #default-bar-number-visibility
481   automaticBars = ##t
482   
483   explicitClefVisibility = #all-visible
484   explicitKeySignatureVisibility = #all-visible
485   autoBeamSettings = #default-auto-beam-settings
486   autoBeaming = ##t
487   autoBeamCheck = #default-auto-beam-check
488   scriptDefinitions = #default-script-alist
489
490   verticalAlignmentChildCallback = #Align_interface::alignment_callback
491
492   pedalSustainStrings = #'("Ped." "*Ped." "*")
493   pedalSustainStyle = #'text
494   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
495   pedalUnaCordaStyle = #'text
496
497 %% These are in ordinary italic font, including the *,
498 %% but they are unlikely to be used, 
499 %% as the default pedal-style for SostenutoPedal is 'mixed':
500 %% i.e.  Sost. Ped_____________________ 
501   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") 
502   pedalSostenutoStyle = #'mixed
503
504
505   harmonicAccidentals = ##t 
506   fingeringOrientations = #'(up down)
507   stringNumberOrientations = #'(up down)
508   tupletNumberFormatFunction = #denominator-tuplet-formatter
509   markFormatter = #format-mark-letters
510   rehearsalMark = #1 
511   subdivideBeams = ##f
512   allowBeamBreak = ##f
513   extraNatural = ##t
514   autoAccidentals = #'(Staff (same-octave . 0))
515   autoCautionaries = #'()  
516
517   printKeyCancellation = ##t
518   keyAlterationOrder = #`(
519     (6 . ,FLAT) (2  . ,FLAT) (5 . ,FLAT ) (1  . ,FLAT) (4  . ,FLAT) (0  . ,FLAT) (3  . ,FLAT)
520     (3  . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
521     (6 . ,DOUBLE-FLAT) (2  . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1  . ,DOUBLE-FLAT) (4  . ,DOUBLE-FLAT) (0  . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
522     (3  . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
523   )
524
525   barCheckSynchronize = ##f
526   
527 %% chord names:
528   chordNameFunction = #ignatzek-chord-names
529   majorSevenSymbol = #whiteTriangleMarkup
530   chordNameSeparator = #(make-simple-markup  "/")
531   chordNameExceptions = #ignatzekExceptions
532   chordNoteNamer = #'()
533   chordRootNamer = #note-name->markup
534   chordPrefixSpacer = #0
535   chordNameExceptionsFull = #fullJazzExceptions
536   chordNameExceptionsPartial = #partialJazzExceptions
537   
538
539   bassStaffProperties = #'((assign clefGlyph "clefs.F")
540   (assign clefPosition 2)
541   (assign middleCPosition 6))
542 %% tablature:
543   stringOneTopmost = ##t
544   highStringOne = ##t
545
546 %% One may change the strings tuning as following :
547 %% The lenght of the list must be equal to the number of string
548   stringTunings = #guitar-tuning
549   tablatureFormat = #fret-number-tablature-format
550
551 %%
552   bassFigureFormatFunction = #format-bass-figure
553   metronomeMarkFormatter = #format-metronome-markup
554   graceSettings = #`(
555     (Voice Stem direction 1)
556     ;; TODO: should take from existing definition.
557     ;; c&p from define-grobs.scm
558     
559     (Voice Stem lengths ,(map (lambda (x) (* 0.8 x)) '(3.5 3.5 3.5 4.5 5.0)))
560     (Voice Stem stem-shorten (0.4 0.4))
561     (Voice Stem  font-size -3)
562     (Voice NoteHead  font-size -3)
563     (Voice Dots  font-size -3)
564     (Voice Stem beamed-lengths  
565      ,(map (lambda (x) (* 0.8 x)) '(3.3 3.3 4.0)))
566     (Voice Stem beamed-minimum-free-lengths  
567      ,(map (lambda (x) (* 0.8 x)) '(2.5 2.0 1.5)))
568     (Voice Stem beamed-extreme-minimum-free-lengths  
569      ,(map (lambda (x) (* 0.8 x)) '(1.83 1.5)))
570
571     (Voice Stem no-stem-extend #t)
572     (Voice Beam thickness 0.384)
573     (Voice Beam space-function ,(lambda (beam mult)
574                                  (* 0.8 (Beam::space_function
575                                          beam mult))))
576     (Voice Accidental font-size -4)
577     (Voice Slur direction -1)
578   )
579
580   keepAliveInterfaces = #'(rhythmic-grob-interface lyric-interface percent-repeat-interface)
581   quotedEventTypes = #'(note-event rest-event time-scaled-music tie-event)
582   instrumentTransposition = #(ly:make-pitch 0 0 0)
583
584   verticallySpacedContexts = #'(Staff)
585
586   timing = ##t
587 }
588
589
590
591
592 \context {
593   \type "Engraver_group"
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"
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   \alias "Voice"
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 = #DOWN
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 = #DOWN
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 }