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