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