]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
* lily/horizontal-bracket.cc (make_bracket): new function.
[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   \override VerticalAlignment #'after-line-breaking-callback
285      = #Align_interface::stretch_after_break
286
287   \consists "Vertical_align_engraver"
288   \consists "Instrument_name_engraver"
289   
290   instrument = #'()
291   instr = #'()
292 }
293
294 \context {
295   \type "Engraver_group"
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"
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"
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"
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 = #first-bar-number-invisible
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   newFiguredBassFormatter = #format-new-bass-figure
556   metronomeMarkFormatter = #format-metronome-markup
557   graceSettings = #`(
558     (Voice Stem direction 1)
559     ;; TODO: should take from existing definition.
560     ;; c&p from define-grobs.scm
561     
562     (Voice Stem lengths ,(map (lambda (x) (* 0.8 x)) '(3.5 3.5 3.5 4.5 5.0)))
563     (Voice Stem stem-shorten (0.4 0.4))
564     (Voice Stem  font-size -3)
565     (Voice NoteHead  font-size -3)
566     (Voice Dots  font-size -3)
567     (Voice Stem beamed-lengths  
568      ,(map (lambda (x) (* 0.8 x)) '(3.3 3.3 4.0)))
569     (Voice Stem beamed-minimum-free-lengths  
570      ,(map (lambda (x) (* 0.8 x)) '(2.5 2.0 1.5)))
571     (Voice Stem beamed-extreme-minimum-free-lengths  
572      ,(map (lambda (x) (* 0.8 x)) '(1.83 1.5)))
573
574     (Voice Stem no-stem-extend #t)
575     (Voice Beam thickness 0.384)
576     (Voice Beam space-function ,(lambda (beam mult)
577                                  (* 0.8 (Beam::space_function
578                                          beam mult))))
579     (Voice Accidental font-size -4)
580     (Voice Slur direction -1)
581   )
582
583   keepAliveInterfaces = #'(rhythmic-grob-interface lyric-interface percent-repeat-interface)
584   quotedEventTypes = #'(note-event rest-event time-scaled-music tie-event)
585   instrumentTransposition = #(ly:make-pitch 0 0 0)
586
587   verticallySpacedContexts = #'(Staff)
588
589   timing = ##t
590 }
591
592
593
594
595 \context {
596   \type "Engraver_group"
597   \name FiguredBass 
598
599   \consists "Figured_bass_engraver"
600   \consists "Note_swallow_translator"
601   \consists "Skip_event_swallow_translator"
602   \consists "Separating_line_group_engraver"
603   \consists "Hara_kiri_engraver"
604   \override RemoveEmptyVerticalGroup #'remove-first = ##t
605 }
606
607 \context {
608   \name "Devnull"
609   \type "Engraver_group"
610
611 %% don't want to route anything out of here: 
612   \alias "Staff"
613   \alias "Voice"
614   \consists "Swallow_engraver"
615   \description "Silently discards all musical information given to this context. "
616 }
617
618 \context {
619   \Voice
620   \name "TabVoice"
621   \alias "Voice"
622   \consists "Tab_note_heads_engraver"
623   \remove "Note_heads_engraver"
624   \remove "Fingering_engraver"
625   \remove "New_fingering_engraver"
626
627   \description "Context for drawing notes in a Tab staff. "
628
629   %% Draws all stems/beams out of the staff (and not in the middle of the staff !)
630   %% This feature is now disabled because most of the tab does not use it.
631   %%\override Beam #'damping = #100000
632   %%\override Stem #'up-to-staff = ##t
633
634   %% TabStaff increase the staff-space, which in turn
635   %% increases beam thickness and spacing; beams are
636   %% too big. We have to adjust the beam settings:
637   \override Beam #'thickness = #0.32
638   \override Beam #'space-function =
639   #(lambda (beam mult) (* 0.62 (Beam::space_function beam mult)))
640
641   %% No accidental in tablature !
642   \remove Accidental_engraver
643 }
644
645 \context {
646   \Staff
647   \alias "Staff"
648   \name "TabStaff"
649   \denies "Voice"
650   \remove "Staff_symbol_engraver"
651   \consists "Tab_staff_symbol_engraver"
652   
653   \description "Context for generating tablature. [DOCME]"
654
655   \accepts "TabVoice"
656   \defaultchild "TabVoice"
657   
658   %% 6 strings
659   \override StaffSymbol #'staff-space = #1.5
660
661   %% Don't draw stems over the tablature figures !
662   \override Stem #'avoid-note-head = ##t
663   
664   %% No accidental in tablature !
665   \remove "Accidental_engraver"
666   \remove "Key_engraver"
667   \remove "String_number_engraver"
668   %% Special "TAB" clef
669   clefGlyph = #"clefs.tab"
670   clefPosition = #0
671 }
672
673 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
674 %% but this does not work (is this a bug or intended behaviour?):
675 %%
676 %% If I try to do so, I get "error: unknown escaped string:
677 %% `\VaticanaStaff'" in params-init.ly.  If I also move
678 %% "\context { \Vaticana*Context }" from params-init.ly to the end
679 %% of gregorian-init.ly, then I get "error: parse error, unexpected
680 %% TRANSLATOR: \context { \VaticanaStaff }" in
681 %% gregorian-init.ly. --jr
682
683 \context {
684   \Voice
685   \name "VaticanaVoice"
686   \alias "Voice"
687   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
688
689   \remove "Slur_engraver"
690   \remove "Stem_engraver"
691   \remove "Ligature_bracket_engraver"
692   \consists "Vaticana_ligature_engraver"
693
694   %% Set default head for notes outside of \[ \].
695   \override NoteHead #'style = #'vaticana.punctum
696
697   %% Put some space before and after divisiones.
698   %% FIXME: This does not seem to show any effect.
699   \override Script #'padding = #0.5
700
701   %% There are no beams in Gregorian Chant notation.
702   autoBeaming = ##f
703
704   %% Prepare TextSpanner for \episem{Initium|Finis} use.
705   %%
706   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
707   %% always produce dashed lines, regardless of the style property.
708   %%
709   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
710   %% required to force the articulation signs being placed vertically
711   %% tightly to the correpsonding note heads.
712   %%
713   \override TextSpanner #'dash-fraction = #'()
714   \override TextSpanner #'style = #'line
715   \override TextSpanner #'edge-height = #'(0 . 0)
716   \override TextSpanner #'padding = #-0.1
717   \override TextSpanner #'enclose-bounds = #1
718   \override TextSpanner #'edge-text = #'("" . "")
719 }
720
721 %% FIXME: need something like
722 %%  \remove "Bar_number_engraver" (which lives on score level)
723 %% for vaticana and gregorian transcription staves
724
725 \context {
726   \Staff
727   \name "VaticanaStaff"
728   \alias "Staff"
729   \denies "Voice"
730   \accepts "VaticanaVoice"
731   \defaultchild "VaticanaVoice"
732
733   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
734
735   \remove "Time_signature_engraver"
736   \consists "Custos_engraver"
737
738   %% We can not remove Bar_engraver; otherwise clefs and custodes will
739   %% not show up any more among other line breaking issues.
740   %% Instead, we make the grob transparent.
741   \override BarLine #'transparent = ##t
742
743   \override StaffSymbol #'line-count = #4
744   \override StaffSymbol #'thickness = #0.6
745
746   %% FIXME: unit on StaffSymbol's width should be \linewidth.
747   %% \override StaffSymbol #'width = #60.0
748
749   %% Choose vaticana do clef on 3rd line as default.
750   clefGlyph = #"clefs.vaticana.do"
751   middleCPosition = #1
752   clefPosition = #1
753   clefOctavation = #0
754
755   %% Select vaticana style font.
756   \override KeySignature #'style = #'vaticana
757   \override Accidental #'style = #'vaticana
758   \override Custos #'style = #'vaticana
759   \override Custos #'neutral-position = #3
760   \override Custos #'neutral-direction = #DOWN
761
762   %% Score.timing = ##f
763   %% Score.barAlways = ##t
764 }
765
766 \context {
767   \Voice
768   \name "GregorianTranscriptionVoice"
769   \alias "Voice"
770
771   %% Removing ligature bracket engraver without replacing it by some
772   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
773   %% warning for every "\[" and "\]".  Therefore, we make the grob
774   %% transparent instead.
775   \override LigatureBracket #'transparent = ##t
776
777   %% Put some space before and after divisiones.
778   %% FIXME: This does not seem to show any effect.
779   \override Script #'padding = #0.5
780
781   %% There are no beams in Gregorian Chant notation.
782   autoBeaming = ##f
783
784   %% Prepare TextSpanner for \episem{Initium|Finis} use.
785   %%
786   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
787   %% always produce dashed lines, regardless of the style property.
788   %%
789   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
790   %% required to force the articulation signs being placed vertically
791   %% tightly to the correpsonding note heads.
792   %%
793   \override TextSpanner #'dash-fraction = #'()
794   \override TextSpanner #'style = #'line
795   \override TextSpanner #'edge-height = #'(0 . 0)
796   \override TextSpanner #'padding = #-0.1
797   \override TextSpanner #'enclose-bounds = #1
798   \override TextSpanner #'edge-text = #'("" . "")
799 }
800
801 \context {
802   \Staff
803   \name "GregorianTranscriptionStaff"
804   \alias "Staff"
805   \denies "Voice"
806   \accepts "GregorianTranscriptionVoice"
807   \defaultchild "GregorianTranscriptionVoice"
808
809   %% We can not remove Bar_engraver; otherwise clefs and custodes will
810   %% not show up any more among other line breaking issues.
811   %% Instead, we make the grob transparent.
812   \override BarLine #'transparent = ##t
813 }
814
815 \context {
816   \Voice
817   \name "MensuralVoice"
818   \alias "Voice"
819   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style."
820
821   \remove "Slur_engraver"
822   \remove "Ligature_bracket_engraver"
823   \consists "Mensural_ligature_engraver"
824
825   %% Set default head for notes outside of \[ \].
826   \override NoteHead #'style = #'petrucci
827
828   %% There are no beams in mensural notation.
829   autoBeaming = ##f
830 }
831
832 \context {
833   \Staff
834   \name "MensuralStaff"
835   \alias "Staff"
836   \denies "Voice"
837   \defaultchild "MensuralVoice"
838   \accepts "MensuralVoice"
839   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting a piece in mensural style."
840
841   \consists "Custos_engraver"
842
843   %% We can not remove Bar_engraver; otherwise clefs and custodes will
844   %% not show up any more among other line breaking issues.
845   %% Instead, we make the grob transparent.
846   \override BarLine #'transparent = ##t
847
848   \override StaffSymbol #'thickness = #0.6
849
850   %% FIXME: unit on StaffSymbol's width should be \linewidth.
851   %% \override StaffSymbol #'width = #60.0
852
853   %% Choose petrucci g clef on 2nd line as default.
854   clefGlyph = #"clefs.petrucci.g"
855   middleCPosition = #-6
856   clefPosition = #-2
857   clefOctavation = #0
858
859   %% Select mensural style font.
860   \override TimeSignature #'style = #'mensural
861   \override KeySignature #'style = #'mensural
862   \override Accidental #'style = #'mensural
863   \override Custos #'style = #'mensural
864   \override Custos #'neutral-position = #3
865   \override Custos #'neutral-direction = #DOWN
866
867   %% Score.timing = ##f
868   %% Score.barAlways = ##t
869 }
870
871
872 RemoveEmptyRhythmicStaffContext= \context {
873   \RhythmicStaff
874   \remove "Axis_group_engraver"
875   \consists "Hara_kiri_engraver"
876 }