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