]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
Fix 546.
[lilypond.git] / ly / engraver-init.ly
1 \version "2.12.0"
2
3 \context {
4   \name "Global"
5
6   \accepts "Score"
7
8   \defaultchild "Score"
9   \description "Hard coded entry point for LilyPond.  Cannot be tuned."
10   \grobdescriptions #all-grob-descriptions
11 }
12
13
14 \context {
15   \type "Engraver_group"
16   \name "FretBoards"
17
18
19   \consists "Fretboard_engraver"
20   \consists "Rest_swallow_translator" 
21   \consists "Output_property_engraver"  
22   \consists "Skip_event_swallow_translator"
23   \consists "Hara_kiri_engraver"
24   \consists "Separating_line_group_engraver"
25   \consists "Font_size_engraver"
26   \consists "Instrument_name_engraver"
27
28   predefinedDiagramTable = #fretboard-table
29 }
30
31 \context {
32   \type "Engraver_group"
33   \name "Staff"
34   
35   \consists "Output_property_engraver"  
36   \consists "Bar_engraver"
37   %% Bar_engraver must be first so default bars aren't overwritten
38   %% with empty ones.
39   
40   \consists "Font_size_engraver"
41   \consists "Separating_line_group_engraver"    
42   \consists "Dot_column_engraver"
43   \consists "Staff_collecting_engraver"
44
45  %% perhaps move to Voice context?
46   \consists "Ottava_spanner_engraver"
47   \consists "Clef_engraver"
48   \consists "Key_engraver"
49   \consists "Time_signature_engraver"
50   \consists "Ledger_line_engraver" 
51   \consists "Staff_symbol_engraver"
52   \consists "Collision_engraver"
53   \consists "Grob_pq_engraver"
54   \consists "Rest_collision_engraver"
55   \consists "Accidental_engraver"
56   \consists "Piano_pedal_engraver"
57   \consists "Piano_pedal_align_engraver"
58   \consists "Instrument_name_engraver"
59   \consists "String_number_engraver"
60   \consists "Axis_group_engraver"
61   \consists "Figured_bass_engraver"
62   \consists "Figured_bass_position_engraver"
63   \consists "Script_row_engraver"
64
65   localKeySignature = #'()
66   createSpacing = ##t
67   ignoreFiguredBassRest = ##t 
68   \override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4)
69   
70   %% explicitly set instrument, so we don't get 
71   %% weird effects when doing instrument names for
72   %% piano staves
73
74   instrumentName = #'()
75   shortInstrumentName = #'()
76   
77   \defaultchild "Voice"
78   \accepts "Voice"
79   \accepts "CueVoice"
80   
81   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
82 @code{Voice} contexts."
83
84 }
85
86 \context {
87   \Staff
88   \type "Engraver_group"
89   \name "DrumStaff"
90   \alias "Staff"
91   
92   \remove "Accidental_engraver"
93   \remove "Ottava_spanner_engraver"
94   \remove "Key_engraver" 
95   \remove "Piano_pedal_engraver"
96   \remove "String_number_engraver"
97   
98   \description "Handles typesetting for percussion."
99
100   \denies "Voice"
101   \accepts "DrumVoice"
102   \defaultchild "DrumVoice"
103
104   clefGlyph = #"clefs.percussion"
105   clefPosition = #0
106   \override Script #'staff-padding = #0.75 
107 }
108
109
110 \context {
111   \type "Engraver_group"
112   \name "ChoirStaff"
113   \consists "System_start_delimiter_engraver"
114   systemStartDelimiter = #'SystemStartBracket
115   vocalName = #'()
116   shortVocalName = #'()
117
118   \accepts "Staff"
119   \accepts "DrumStaff"
120   \accepts "RhythmicStaff"
121   \accepts "GrandStaff"
122   \accepts "PianoStaff"
123   \accepts "Lyrics"
124   \accepts "ChordNames"
125   \accepts "ChoirStaff"
126   \accepts "StaffGroup"
127   \defaultchild "Staff"
128   \description "Identical to @code{StaffGroup} except that the
129 contained staves are not connected vertically."
130 }
131
132 \context{
133   \type "Engraver_group"
134   
135   \override VerticalAxisGroup #'minimum-Y-extent = ##f
136   localKeySignature = #'()
137   createSpacing = ##t
138
139   squashedPosition = #0
140   \name RhythmicStaff
141   \alias "Staff"
142   
143   \override BarLine #'bar-size = #4
144   \override VoltaBracket #'staff-padding = #3
145   \override StaffSymbol #'line-count = #1       
146
147   \override Stem  #'neutral-direction = #UP
148   \override Beam  #'neutral-direction = #UP
149   
150   \consists "Output_property_engraver"
151   \consists "Font_size_engraver"
152   \consists "Separating_line_group_engraver"    
153   \consists "Dot_column_engraver"
154   \consists "Bar_engraver"
155   \consists "Staff_symbol_engraver"
156   \consists "Pitch_squash_engraver"
157   \consists "Time_signature_engraver"
158   \consists "Instrument_name_engraver"
159   \consists "Axis_group_engraver"
160   \consists "Ledger_line_engraver" 
161   
162   \accepts "Voice"
163   \accepts "CueVoice"
164   \defaultchild "Voice"
165
166   \description "A context like @code{Staff} but for printing rhythms.
167 Pitches are ignored; the notes are printed on one line."
168 }
169
170
171 \context {
172   \type "Engraver_group"
173   \name "Voice"
174
175   \description "Corresponds to a voice on a staff.  This context
176 handles the conversion of dynamic signs, stems, beams, super- and
177 subscripts, slurs, ties, and rests.
178
179 You have to instantiate this explicitly if you want to have
180 multiple voices on the same staff."
181
182   localKeySignature = #'()
183   \consists "Font_size_engraver"
184
185   \consists "Pitched_trill_engraver"
186   \consists "Output_property_engraver"  
187   \consists "Arpeggio_engraver"
188   \consists "Multi_measure_rest_engraver"
189   \consists "Text_spanner_engraver"
190   \consists "Trill_spanner_engraver"
191   \consists "Grob_pq_engraver"
192   \consists "Forbid_line_break_engraver"
193   \consists "Laissez_vibrer_engraver"
194   \consists "Repeat_tie_engraver"
195   \consists "Note_head_line_engraver"
196   \consists "Glissando_engraver"
197   \consists "Ligature_bracket_engraver"
198   \consists "Breathing_sign_engraver"
199   \consists "Note_heads_engraver"
200   \consists "Dots_engraver"
201   \consists "Rest_engraver"
202   \consists "Tweak_engraver"
203   
204   %% switch on to make stem directions interpolate for the
205   %% center line.
206   %  \consists "Melody_engraver"
207
208   \consists "Stem_engraver"
209   \consists "Beam_engraver"
210   \consists "Grace_beam_engraver"
211   \consists "Auto_beam_engraver"
212
213   %% must come before Script_column_engraver.
214   \consists "New_fingering_engraver"
215   
216   \consists "Chord_tremolo_engraver"
217   \consists "Percent_repeat_engraver"
218   \consists "Slash_repeat_engraver"
219   \consists "Part_combine_engraver"
220
221   \consists "Text_engraver"
222   \consists "New_dynamic_engraver"
223   \consists "Dynamic_align_engraver"
224 %  \consists "Dynamic_engraver"
225   \consists "Fingering_engraver"
226   \consists "Bend_engraver"
227
228   \consists "Script_engraver"
229   \consists "Script_column_engraver"
230   \consists "Rhythmic_column_engraver"
231   \consists "Note_spacing_engraver"
232   \consists "Spanner_break_forbid_engraver"
233   \consists "Phrasing_slur_engraver"
234   \consists "Cluster_spanner_engraver"
235   \consists "Slur_engraver"
236   \consists "Tie_engraver"
237   \consists "Tuplet_engraver"
238   \consists "Grace_engraver"
239   \consists "Instrument_switch_engraver"
240   \consists "Skip_event_swallow_translator"
241 }
242
243 \context{
244   \Voice
245   
246   \name CueVoice
247   \alias Voice
248   fontSize = #-4
249   \override Stem #'length-fraction = #(magstep -4)
250   \override Beam #'length-fraction = #(magstep -4)
251   \override Beam #'thickness = #0.35
252 }
253
254 \context {
255   \Voice
256   \name DrumVoice
257   \alias Voice
258
259   \description "A voice on a percussion staff."
260   \remove "Arpeggio_engraver"
261   \consists "Grob_pq_engraver"
262
263   \remove "Note_head_line_engraver"
264   \remove "Glissando_engraver"
265   \remove "Ligature_bracket_engraver"
266   \remove "Note_heads_engraver"
267   \consists "Drum_notes_engraver"
268   \remove "New_fingering_engraver"
269
270   \remove "Fingering_engraver"
271
272   \remove "Cluster_spanner_engraver"
273
274   \consists "Skip_event_swallow_translator"
275 }
276
277 \context{
278   \type "Engraver_group"
279   \name GrandStaff
280   localKeySignature = #'()
281   
282   \description "A group of staves, with a brace on the left
283 side, grouping the staves together.  The bar lines of the
284 contained staves are connected vertically."
285
286   \consists "Span_bar_engraver"
287   \consists "Span_arpeggio_engraver"
288   \consists "System_start_delimiter_engraver"
289   systemStartDelimiter = #'SystemStartBrace
290
291   \defaultchild "Staff"
292   \accepts "Staff"
293   \accepts "FiguredBass"
294 }
295
296 \context{
297   \GrandStaff
298   \name "PianoStaff"
299   \alias "GrandStaff"
300
301   \description "Just like @code{GrandStaff} but with support for
302 instrument names at the start of each system."
303
304   \consists "Instrument_name_engraver"
305   
306   instrumentName = #'()
307   shortInstrumentName = #'()
308 }
309
310 \context {
311   \type "Engraver_group"
312   \name "StaffGroup"
313
314   \consists "Span_bar_engraver"
315   \consists "Span_arpeggio_engraver"
316   \consists "Output_property_engraver"  
317   systemStartDelimiter = #'SystemStartBracket
318
319   \consists "System_start_delimiter_engraver"
320
321   \defaultchild "Staff"
322   \accepts "Staff"
323   \accepts "RhythmicStaff"
324   \accepts "DrumStaff"
325   \accepts "GrandStaff"
326   \accepts "PianoStaff"
327   \accepts "TabStaff"   
328   \accepts "Lyrics"
329   \accepts "ChordNames"
330   \accepts "FiguredBass"
331   \accepts "ChoirStaff"
332   \accepts "StaffGroup"
333   
334   \description "Groups staves while adding a bracket on the left
335 side, grouping the staves together.  The bar lines of the contained
336 staves are connected vertically.  @code{StaffGroup} only consists of
337 a collection of staves, with a bracket in front and spanning bar lines."
338 }
339
340 \context{
341   \type "Engraver_group"
342   \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.75 . 2.0)
343
344   \description "Corresponds to a voice with lyrics.  Handles the
345 printing of a single line of lyrics."
346   
347   \name "Lyrics"
348   instrumentName = #'()
349   shortInstrumentName = #'()
350   
351   \consists "Lyric_engraver"
352   \consists "Extender_engraver"
353   \consists "Hyphen_engraver"
354   \consists "Stanza_number_engraver"
355   \consists "Instrument_name_engraver"
356   \consists "Skip_event_swallow_translator"
357   \consists "Font_size_engraver"
358   \consists "Hara_kiri_engraver"
359
360   \override VerticalAxisGroup #'remove-first = ##t
361   \override VerticalAxisGroup #'remove-empty = ##t
362   \override VerticalAxisGroup #'keep-fixed-while-stretching = ##t
363   \override SeparationItem #'padding = #0.2
364   \override InstrumentName #'self-alignment-Y = ##f
365
366   %% sync with define-grobs.scm ;
367   \override InstrumentName #'font-size = #1.0
368
369   %% make sure that barlines aren't collapsed, when
370   %% Bar_engraver is there.
371   \override BarLine #'bar-size = #0.1 
372   
373 }
374
375 \context {
376   \type "Engraver_group"
377   \name NoteNames
378   \consists "Axis_group_engraver"
379
380   \override VerticalAxisGroup #'minimum-Y-extent = ##f
381
382   
383   \consists "Rest_swallow_translator" 
384   \consists "Skip_event_swallow_translator"
385   \consists "Tie_engraver"
386   \consists "Note_name_engraver"
387   \consists "Separating_line_group_engraver"
388 }
389
390 \context {
391   \type "Engraver_group"
392   \name ChordNames
393   \description "Typesets chord names."
394   
395   \consists "Rest_swallow_translator" 
396   \consists "Output_property_engraver"  
397   \consists "Separating_line_group_engraver"
398   \consists "Chord_name_engraver"
399   \consists "Skip_event_swallow_translator"
400   \consists "Hara_kiri_engraver"
401 %  \consists "Note_spacing_engraver"
402   \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2)
403   \override VerticalAxisGroup #'remove-first = ##t
404   \override VerticalAxisGroup #'remove-empty = ##t
405 }
406
407
408 RemoveEmptyStaffContext= \context {
409   \Staff
410   \remove "Axis_group_engraver"
411   \consists "Hara_kiri_engraver"
412   \override Beam #'auto-knee-gap = #'()
413   \override VerticalAxisGroup #'remove-empty = ##t
414 }
415
416 AncientRemoveEmptyStaffContext = \context {
417 %% why not add by default?
418   
419   \RemoveEmptyStaffContext
420   \accepts "VaticanaVoice"
421   \accepts "GregorianTranscriptionVoice"
422   \accepts "MensuralVoice"
423 }
424
425 \context {
426   \type "Score_engraver"
427   \name "Score"
428   
429   \description "This is the top level notation context.  No
430 other context can contain a @code{Score} context.  This context
431 handles the administration of time signatures.  It also makes sure
432 that items such as clefs, time signatures, and key-signatures are
433 aligned across staves.
434
435 You cannot explicitly instantiate a @code{Score} context (since it
436 is not contained in any other context).  It is instantiated
437 automatically when an output definition (a @code{\score} or
438 @code{\layout} block) is processed."
439
440   \consists "Paper_column_engraver"
441   \consists "Vertically_spaced_contexts_engraver"
442   \consists "Repeat_acknowledge_engraver"
443   \consists "Staff_collecting_engraver"
444
445   %% move the alias along with the engraver.
446
447   \consists "Timing_translator"
448   \consists "Default_bar_line_engraver"
449   \consists "Output_property_engraver"
450   \consists "System_start_delimiter_engraver"
451   \consists "Mark_engraver"
452   \consists "Volta_engraver"
453   \consists "Metronome_mark_engraver"   
454   \consists "Break_align_engraver"
455   \consists "Spacing_engraver"
456   \consists "Grace_spacing_engraver"
457   \consists "Vertical_align_engraver"
458   \consists "Stanza_number_align_engraver"
459   \consists "Bar_number_engraver"
460   \consists "Parenthesis_engraver"
461   
462   \defaultchild "Staff"
463
464   \accepts "FretBoards"
465   \accepts "Staff"
466   \accepts "RhythmicStaff"
467   \accepts "TabStaff"
468   \accepts "VaticanaStaff"
469   \accepts "GregorianTranscriptionStaff"
470   \accepts "MensuralStaff"
471   \accepts "StaffGroup"
472   \accepts "DrumStaff"
473   \accepts "Lyrics"
474   \accepts "ChordNames"
475   \accepts "GrandStaff"
476   \accepts "ChoirStaff"
477   \accepts "PianoStaff"
478   \accepts "Devnull"
479   \accepts "NoteNames"
480   \accepts "FiguredBass"
481
482
483   noteToFretFunction = #determine-frets
484   soloText = #"Solo"
485   soloIIText = #"Solo II"
486   aDueText = #"a2"
487   printPartCombineTexts = ##t
488   systemStartDelimiter =#'SystemStartBar
489
490   drumStyleTable = #drums-style
491   
492   melismaBusyProperties = #default-melisma-properties
493   tieWaitForNote = ##f
494   clefGlyph = #"clefs.G"
495   clefPosition = #-2
496   middleCClefPosition = #-6
497   middleCPosition = #-6
498   firstClef = ##t
499
500   crescendoSpanner = #'hairpin
501   decrescendoSpanner = #'hairpin
502   
503   defaultBarType = #"|"
504   doubleRepeatType = #":|:"
505   barNumberVisibility = #first-bar-number-invisible
506   automaticBars = ##t
507   
508   explicitClefVisibility = #all-visible
509   explicitKeySignatureVisibility = #all-visible
510   implicitTimeSignatureVisibility = #end-of-line-invisible
511   
512   repeatCountVisibility = #all-repeat-counts-visible
513   
514   autoBeamSettings = #default-auto-beam-settings
515   autoBeaming = ##t
516   autoBeamCheck = #default-auto-beam-check
517   scriptDefinitions = #default-script-alist
518
519   pedalSustainStrings = #'("Ped." "*Ped." "*")
520   pedalSustainStyle = #'text
521   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
522   pedalUnaCordaStyle = #'text
523
524 %% These are in ordinary italic font, including the *,
525 %% but they are unlikely to be used, 
526 %% as the default pedal-style for SostenutoPedal is 'mixed':
527 %% i.e.  Sost. Ped_____________________ 
528   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") 
529   pedalSostenutoStyle = #'mixed
530
531   harmonicAccidentals = ##t 
532   fingeringOrientations = #'(up down)
533   stringNumberOrientations = #'(up down)
534   strokeFingerOrientations = #'(right)
535   
536   lyricMelismaAlignment = #LEFT
537   markFormatter = #format-mark-letters
538   rehearsalMark = #1
539   subdivideBeams = ##f
540   extraNatural = ##t
541   autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0))
542   autoCautionaries = #'()  
543
544   printKeyCancellation = ##t
545   keyAlterationOrder = #`(
546     (6 . ,FLAT) (2  . ,FLAT) (5 . ,FLAT ) (1  . ,FLAT) (4  . ,FLAT) (0  . ,FLAT) (3  . ,FLAT)
547     (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
548     (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
549     (3  . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
550   )
551
552   barCheckSynchronize = ##f
553   
554 %% chord names:
555   chordNameFunction = #ignatzek-chord-names
556   majorSevenSymbol = #whiteTriangleMarkup
557   chordNameSeparator = #(make-simple-markup  "/")
558   chordNameExceptions = #ignatzekExceptions
559   chordNoteNamer = #'()
560   chordRootNamer = #note-name->markup
561   chordPrefixSpacer = #0
562   chordNameExceptionsFull = #fullJazzExceptions
563   chordNameExceptionsPartial = #partialJazzExceptions
564   
565
566   bassStaffProperties = #'((assign clefGlyph "clefs.F")
567   (assign clefPosition 2)
568   (assign middleCPosition 6)
569   (assign middleCClefPosition 6))
570 %% tablature:
571   stringOneTopmost = ##t
572   highStringOne = ##t
573
574 %% One may change the strings tuning as following :
575 %% The lenght of the list must be equal to the number of string
576   stringTunings = #guitar-tuning
577   tablatureFormat = #fret-number-tablature-format
578
579 %%
580   figuredBassFormatter = #format-bass-figure
581   metronomeMarkFormatter = #format-metronome-markup
582
583
584   %% See also make-voice-props-set
585   graceSettings = #`(
586     (Voice Stem direction ,UP)
587     (Voice Stem font-size -3)
588     (Voice NoteHead font-size -3)
589     (Voice Dots font-size -3)
590     (Voice Stem length-fraction 0.8)
591     (Voice Stem no-stem-extend #t)
592     (Voice Beam thickness 0.384)
593     (Voice Beam length-fraction 0.8)
594     (Voice Accidental font-size -4)
595     (Voice AccidentalCautionary font-size -4)
596     (Voice Slur direction ,DOWN)
597     (Voice Script font-size -3)
598   )
599
600   keepAliveInterfaces = #'(
601     rhythmic-grob-interface
602     lyric-interface
603     percent-repeat-item-interface
604     percent-repeat-interface
605
606     ;; need this, as stanza numbers are items, and appear only once. 
607     stanza-number-interface
608   )
609   quotedEventTypes = #'(
610     note-event
611     rest-event
612     tie-event
613     beam-event
614     tuplet-span-event)
615   instrumentTransposition = #(ly:make-pitch 0 0 0)
616
617   verticallySpacedContexts = #'(Staff)
618   
619   timing = ##t
620 }
621
622
623
624
625 \context {
626   \type "Engraver_group"
627   \name "FiguredBass"
628
629   \consists "Figured_bass_engraver"
630   \consists "Note_swallow_translator"
631   \consists "Skip_event_swallow_translator"
632   \consists "Separating_line_group_engraver"
633   \consists "Hara_kiri_engraver"
634
635   \override VerticalAxisGroup #'remove-empty = ##t
636   \override VerticalAxisGroup #'remove-first = ##t
637   \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2)
638 }
639
640 \context {
641   \name "Devnull"
642   \type "Engraver_group"
643
644 %% don't want to route anything out of here: 
645   \alias "Staff"
646   \alias "Voice"
647   \consists "Swallow_engraver"
648   \description "Silently discards all musical information given to this
649 context."
650 }
651
652 \context {
653   \Voice
654   \name "TabVoice"
655   \alias "Voice"
656   \consists "Tab_note_heads_engraver"
657   \consists "Tab_harmonic_engraver"
658   
659   \remove "Note_heads_engraver"
660   \remove "Fingering_engraver"
661   \remove "New_fingering_engraver"
662
663   \description "Context for drawing notes in a Tab staff."
664
665   %% TabStaff increase the staff-space, which in turn
666   %% increases beam thickness and spacing; beams are
667   %% too big. We have to adjust the beam settings:
668   \override Beam #'thickness = #0.32
669   \override Beam #'length-fraction = #0.62
670
671   %% No accidental in tablature !
672   \remove Accidental_engraver
673
674   \override Glissando #'extra-dy = #0.75
675   \override Glissando #'bound-details #'right = #`((attach-dir . ,LEFT)
676                                                    (padding . 0.3))
677   \override Glissando #'bound-details #'left = #`((attach-dir . ,RIGHT)
678                                                    (padding . 0.3))
679   \override Glissando #'extra-dy = #0.75
680   \override Glissando #'gap = #0.2
681 }
682
683 \context {
684   \Staff
685   \alias "Staff"
686   \name "TabStaff"
687   \denies "Voice"
688   \consists "Tab_staff_symbol_engraver"
689   
690   \description "Context for generating tablature. [DOCME]"
691
692   \accepts "TabVoice"
693   \defaultchild "TabVoice"
694   
695   %% 6 strings
696   \override StaffSymbol #'staff-space = #1.5
697
698   %% Don't draw stems over the tablature figures !
699   \override Stem #'avoid-note-head = ##t
700   
701   %% No accidental in tablature !
702   \remove "Accidental_engraver"
703   \remove "Key_engraver"
704   \remove "String_number_engraver"
705   %% Special "TAB" clef
706   clefGlyph = #"clefs.tab"
707   clefPosition = #0
708 }
709
710 %% TODO: Gregorian Chant contexts should be moved to gregorian.ly,
711 %% but this does not work (is this a bug or intended behaviour?):
712 %%
713 %% If I try to do so, I get "error: unknown escaped string:
714 %% `\VaticanaStaff'" in params-init.ly.  If I also move
715 %% "\context { \Vaticana*Context }" from params-init.ly to the end
716 %% of gregorian.ly, then I get "error: parse error, unexpected
717 %% TRANSLATOR: \context { \VaticanaStaff }" in
718 %% gregorian.ly. --jr
719
720 \context {
721   \Voice
722   \name "VaticanaVoice"
723   \alias "Voice"
724   \description "Same as @code{Voice} context, except that it is
725 accommodated for typesetting Gregorian Chant in the notational style
726 of Editio Vaticana."
727
728   \remove "Slur_engraver"
729   \remove "Stem_engraver"
730   \remove "Ligature_bracket_engraver"
731   \consists "Vaticana_ligature_engraver"
732
733   %% Set default head for notes outside of \[ \].
734   \override NoteHead #'style = #'vaticana.punctum
735
736   %% Put some space before and after divisiones.
737   %% FIXME: This does not seem to show any effect.
738   \override Script #'padding = #0.5
739
740   %% There are no beams in Gregorian Chant notation.
741   autoBeaming = ##f
742
743   %% Prepare TextSpanner for \episem{Initium|Finis} use.
744   %%
745   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
746   %% required to force the articulation signs being placed vertically
747   %% tightly to the correpsonding note heads.
748   %%
749   \override TextSpanner #'style = #'line
750   \override TextSpanner #'padding = #-0.1
751 }
752
753 \context {
754   \Staff
755   \name "VaticanaStaff"
756   \alias "Staff"
757   \denies "Voice"
758   \accepts "VaticanaVoice"
759   \defaultchild "VaticanaVoice"
760
761   \description "Same as @code{Staff} context, except that it is
762 accommodated for typesetting Gregorian Chant in the notational style
763 of Editio Vaticana."
764
765   \remove "Time_signature_engraver"
766   \consists "Custos_engraver"
767
768   %% We can not remove Bar_engraver; otherwise clefs and custodes will
769   %% not show up any more among other line breaking issues.
770   %% Instead, we make the grob transparent.
771   \override BarLine #'transparent = ##t
772
773   \override StaffSymbol #'line-count = #4
774   \override StaffSymbol #'thickness = #0.6
775
776   %% FIXME: unit on StaffSymbol's width should be \linewidth.
777   %% \override StaffSymbol #'width = #60.0
778
779   %% Choose vaticana do clef on 3rd line as default.
780   clefGlyph = #"clefs.vaticana.do"
781   middleCPosition = #1
782   middleCClefPosition = #1
783   clefPosition = #1
784   clefOctavation = #0
785
786   %% Select vaticana style font.
787   \override KeySignature #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
788   \override Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
789   \override Custos #'style = #'vaticana
790   \override Custos #'neutral-position = #3
791   \override Custos #'neutral-direction = #DOWN
792   \override Dots #'style = #'vaticana
793 }
794
795 \context {
796   \Voice
797   \name "GregorianTranscriptionVoice"
798   \alias "Voice"
799
800   %% Removing ligature bracket engraver without replacing it by some
801   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
802   %% warning for every "\[" and "\]".  Therefore, we make the grob
803   %% transparent instead.
804   \override LigatureBracket #'transparent = ##t
805
806   %% Put some space before and after divisiones.
807   %% FIXME: This does not seem to show any effect.
808   \override Script #'padding = #0.5
809
810   %% There are no beams in Gregorian Chant notation.
811   autoBeaming = ##f
812
813   %% Prepare TextSpanner for \episem{Initium|Finis} use.
814   %%
815   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
816   %% always produce dashed lines, regardless of the style property.
817   %%
818   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
819   %% required to force the articulation signs being placed vertically
820   %% tightly to the correpsonding note heads.
821   %%
822   \override TextSpanner #'dash-fraction = #'()
823   \override TextSpanner #'style = #'line
824   \override TextSpanner #'padding = #-0.1
825 }
826
827 \context {
828   \Staff
829   \name "GregorianTranscriptionStaff"
830   \alias "Staff"
831   \denies "Voice"
832   \accepts "GregorianTranscriptionVoice"
833   \defaultchild "GregorianTranscriptionVoice"
834
835   %% We can not remove Bar_engraver; otherwise clefs and custodes will
836   %% not show up any more among other line breaking issues.
837   %% Instead, we make the grob transparent.
838   \override BarLine #'transparent = ##t
839 }
840
841 \context {
842   \Voice
843   \name "MensuralVoice"
844   \alias "Voice"
845   \description "Same as @code{Voice} context, except that it is
846 accommodated for typesetting a piece in mensural style."
847
848   \remove "Slur_engraver"
849   \remove "Ligature_bracket_engraver"
850   \consists "Mensural_ligature_engraver"
851
852   %% Set default head for notes outside of \[ \].
853   \override NoteHead #'style = #'mensural
854   \override Rest #'style = #'mensural
855
856   %% There are no beams in mensural notation.
857   autoBeaming = ##f
858 }
859
860 \context {
861   \Staff
862   \name "MensuralStaff"
863   \alias "Staff"
864   \denies "Voice"
865   \defaultchild "MensuralVoice"
866   \accepts "MensuralVoice"
867   \description "Same as @code{Staff} context, except that it is
868 accommodated for typesetting a piece in mensural style."
869
870   \consists "Custos_engraver"
871
872   %% We can not remove Bar_engraver; otherwise clefs and custodes will
873   %% not show up any more among other line breaking issues.
874   %% Instead, we make the grob transparent.
875   \override BarLine #'transparent = ##t
876
877   \override StaffSymbol #'thickness = #0.6
878
879   %% FIXME: unit on StaffSymbol's width should be \linewidth.
880   %% \override StaffSymbol #'width = #60.0
881
882   %% Choose mensural g clef on 2nd line as default.
883   clefGlyph = #"clefs.mensural.g"
884   middleCClefPosition = #-6
885   middleCPosition = #-6
886   clefPosition = #-2
887   clefOctavation = #0
888
889   %% Select mensural style font.
890   \override TimeSignature #'style = #'mensural
891   \override KeySignature #'glyph-name-alist = #alteration-mensural-glyph-name-alist
892   \override Accidental #'glyph-name-alist = #alteration-mensural-glyph-name-alist
893   \override Custos #'style = #'mensural
894   \override Custos #'neutral-position = #3
895   \override Custos #'neutral-direction = #DOWN
896
897   %% Accidentals are valid only once (same as
898   %% #(set-accidental-style 'forget))
899   extraNatural = ##f
900   autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave -1))
901   autoCautionaries = #'()
902   printKeyCancellation = ##f
903 }
904
905
906 RemoveEmptyRhythmicStaffContext= \context {
907   \RhythmicStaff
908   \remove "Axis_group_engraver"
909   \override VerticalAxisGroup #'remove-empty = ##t
910   \consists "Hara_kiri_engraver"
911 }