]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
Merge branch 'master' of git://git.sv.gnu.org/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   \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 SeparatingGroupSpanner #'padding = #0.8
420   \override VerticalAxisGroup #'remove-first = ##t
421   \override VerticalAxisGroup #'remove-empty = ##t
422 }
423
424
425 RemoveEmptyStaffContext= \context {
426   \Staff
427   \remove "Axis_group_engraver"
428   \consists "Hara_kiri_engraver"
429   \override Beam #'auto-knee-gap = #'()
430   \override VerticalAxisGroup #'remove-empty = ##t
431 }
432
433 AncientRemoveEmptyStaffContext = \context {
434 %% why not add by default?
435   
436   \RemoveEmptyStaffContext
437   \accepts "VaticanaVoice"
438   \accepts "GregorianTranscriptionVoice"
439   \accepts "MensuralVoice"
440 }
441
442 \context {
443   \type "Score_engraver"
444   \name "Score"
445   
446   \description "This is the top level notation context.  No
447 other context can contain a @code{Score} context.  This context
448 handles the administration of time signatures.  It also makes sure
449 that items such as clefs, time signatures, and key-signatures are
450 aligned across staves.
451
452 You cannot explicitly instantiate a @code{Score} context (since it
453 is not contained in any other context).  It is instantiated
454 automatically when an output definition (a @code{\score} or
455 @code{\layout} block) is processed."
456
457   \consists "Paper_column_engraver"
458   \consists "Vertically_spaced_contexts_engraver"
459   \consists "Repeat_acknowledge_engraver"
460   \consists "Staff_collecting_engraver"
461
462   %% move the alias along with the engraver.
463
464   \consists "Timing_translator"
465   \consists "Default_bar_line_engraver"
466   \consists "Output_property_engraver"
467   \consists "System_start_delimiter_engraver"
468   \consists "Mark_engraver"     
469   \consists "Metronome_mark_engraver"   
470   \consists "Break_align_engraver"
471   \consists "Spacing_engraver"
472   \consists "Grace_spacing_engraver"
473   \consists "Vertical_align_engraver"
474   \consists "Stanza_number_align_engraver"
475   \consists "Bar_number_engraver"
476   \consists "Parenthesis_engraver"
477   
478   \defaultchild "Staff"
479
480   \accepts "FretBoards"
481   \accepts "Staff"
482   \accepts "RhythmicStaff"
483   \accepts "TabStaff"
484   \accepts "VaticanaStaff"
485   \accepts "GregorianTranscriptionStaff"
486   \accepts "MensuralStaff"
487   \accepts "StaffGroup"
488   \accepts "DrumStaff"
489   \accepts "Lyrics"
490   \accepts "ChordNames"
491   \accepts "GrandStaff"
492   \accepts "ChoirStaff"
493   \accepts "PianoStaff"
494   \accepts "Devnull"
495   \accepts "NoteNames"
496   \accepts "FiguredBass"
497
498
499   noteToFretFunction = #determine-frets
500   soloText = #"Solo"
501   soloIIText = #"Solo II"
502   aDueText = #"a2"
503   printPartCombineTexts = ##t
504   systemStartDelimiter =#'SystemStartBar
505
506   drumStyleTable = #drums-style
507   
508   melismaBusyProperties = #default-melisma-properties
509   tieWaitForNote = ##f
510   clefGlyph = #"clefs.G"
511   clefPosition = #-2
512   middleCPosition = #-6
513   firstClef = ##t
514   
515   defaultBarType = #"|"
516   barNumberVisibility = #first-bar-number-invisible
517   automaticBars = ##t
518   
519   explicitClefVisibility = #all-visible
520   explicitKeySignatureVisibility = #all-visible
521   implicitTimeSignatureVisibility = #end-of-line-invisible
522   
523   autoBeamSettings = #default-auto-beam-settings
524   autoBeaming = ##t
525   autoBeamCheck = #default-auto-beam-check
526   scriptDefinitions = #default-script-alist
527
528   pedalSustainStrings = #'("Ped." "*Ped." "*")
529   pedalSustainStyle = #'text
530   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
531   pedalUnaCordaStyle = #'text
532
533 %% These are in ordinary italic font, including the *,
534 %% but they are unlikely to be used, 
535 %% as the default pedal-style for SostenutoPedal is 'mixed':
536 %% i.e.  Sost. Ped_____________________ 
537   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") 
538   pedalSostenutoStyle = #'mixed
539
540   harmonicAccidentals = ##t 
541   fingeringOrientations = #'(up down)
542   stringNumberOrientations = #'(up down)
543   strokeFingerOrientations = #'(right)
544   
545   markFormatter = #format-mark-letters
546   rehearsalMark = #1
547   subdivideBeams = ##f
548   allowBeamBreak = ##f
549   extraNatural = ##t
550   autoAccidentals = #'(Staff (same-octave . 0))
551   autoCautionaries = #'()  
552
553   printKeyCancellation = ##t
554   keyAlterationOrder = #`(
555     (6 . ,FLAT) (2  . ,FLAT) (5 . ,FLAT ) (1  . ,FLAT) (4  . ,FLAT) (0  . ,FLAT) (3  . ,FLAT)
556     (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
557     (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
558     (3  . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
559   )
560
561   barCheckSynchronize = ##f
562   
563 %% chord names:
564   chordNameFunction = #ignatzek-chord-names
565   majorSevenSymbol = #whiteTriangleMarkup
566   chordNameSeparator = #(make-simple-markup  "/")
567   chordNameExceptions = #ignatzekExceptions
568   chordNoteNamer = #'()
569   chordRootNamer = #note-name->markup
570   chordPrefixSpacer = #0
571   chordNameExceptionsFull = #fullJazzExceptions
572   chordNameExceptionsPartial = #partialJazzExceptions
573   
574
575   bassStaffProperties = #'((assign clefGlyph "clefs.F")
576   (assign clefPosition 2)
577   (assign middleCPosition 6))
578 %% tablature:
579   stringOneTopmost = ##t
580   highStringOne = ##t
581
582 %% One may change the strings tuning as following :
583 %% The lenght of the list must be equal to the number of string
584   stringTunings = #guitar-tuning
585   tablatureFormat = #fret-number-tablature-format
586
587 %%
588   figuredBassFormatter = #format-bass-figure
589   metronomeMarkFormatter = #format-metronome-markup
590
591
592   %% See also make-voice-props-set
593   graceSettings = #`(
594     (Voice Stem direction ,UP)
595     (Voice Stem font-size -3)
596     (Voice NoteHead font-size -3)
597     (Voice Dots font-size -3)
598     (Voice Stem length-fraction 0.8)
599     (Voice Stem no-stem-extend #t)
600     (Voice Beam thickness 0.384)
601     (Voice Beam length-fraction 0.8)
602     (Voice Accidental font-size -4)
603     (Voice Slur direction ,DOWN)
604   )
605
606   keepAliveInterfaces = #'(
607     rhythmic-grob-interface
608     lyric-interface
609
610     ;; need this, as stanza numbers are items, and appear only once. 
611     stanza-number-interface
612     percent-repeat-interface)
613   quotedEventTypes = #'(
614     note-event
615     rest-event
616     tie-event
617     beam-event
618     tuplet-span-event)
619   instrumentTransposition = #(ly:make-pitch 0 0 0)
620
621   verticallySpacedContexts = #'(Staff)
622
623   hairpinToBarline = ##t 
624   
625   timing = ##t
626 }
627
628
629
630
631 \context {
632   \type "Engraver_group"
633   \name "FiguredBass"
634
635   \consists "Figured_bass_engraver"
636   \consists "Note_swallow_translator"
637   \consists "Skip_event_swallow_translator"
638   \consists "Separating_line_group_engraver"
639   \consists "Hara_kiri_engraver"
640
641   \override VerticalAxisGroup #'remove-empty = ##t
642   \override VerticalAxisGroup #'remove-first = ##t
643   \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2)
644 }
645
646 \context {
647   \name "Devnull"
648   \type "Engraver_group"
649
650 %% don't want to route anything out of here: 
651   \alias "Staff"
652   \alias "Voice"
653   \consists "Swallow_engraver"
654   \description "Silently discards all musical information given to this
655 context."
656 }
657
658 \context {
659   \Voice
660   \name "TabVoice"
661   \alias "Voice"
662   \consists "Tab_note_heads_engraver"
663   \consists "Tab_harmonic_engraver"
664   
665   \remove "Note_heads_engraver"
666   \remove "Fingering_engraver"
667   \remove "New_fingering_engraver"
668
669   \description "Context for drawing notes in a Tab staff."
670
671   %% TabStaff increase the staff-space, which in turn
672   %% increases beam thickness and spacing; beams are
673   %% too big. We have to adjust the beam settings:
674   \override Beam #'thickness = #0.32
675   \override Beam #'length-fraction = #0.62
676
677   %% No accidental in tablature !
678   \remove Accidental_engraver
679
680   \override Glissando #'extra-dy = #0.75
681   \override Glissando #'bound-details #'right = #`((attach-dir . ,LEFT)
682                                                    (padding . 0.3))
683   \override Glissando #'bound-details #'left = #`((attach-dir . ,RIGHT)
684                                                    (padding . 0.3))
685   \override Glissando #'extra-dy = #0.75
686   \override Glissando #'gap = #0.2
687 }
688
689 \context {
690   \Staff
691   \alias "Staff"
692   \name "TabStaff"
693   \denies "Voice"
694   \consists "Tab_staff_symbol_engraver"
695   
696   \description "Context for generating tablature. [DOCME]"
697
698   \accepts "TabVoice"
699   \defaultchild "TabVoice"
700   
701   %% 6 strings
702   \override StaffSymbol #'staff-space = #1.5
703
704   %% Don't draw stems over the tablature figures !
705   \override Stem #'avoid-note-head = ##t
706   
707   %% No accidental in tablature !
708   \remove "Accidental_engraver"
709   \remove "Key_engraver"
710   \remove "String_number_engraver"
711   %% Special "TAB" clef
712   clefGlyph = #"clefs.tab"
713   clefPosition = #0
714 }
715
716 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
717 %% but this does not work (is this a bug or intended behaviour?):
718 %%
719 %% If I try to do so, I get "error: unknown escaped string:
720 %% `\VaticanaStaff'" in params-init.ly.  If I also move
721 %% "\context { \Vaticana*Context }" from params-init.ly to the end
722 %% of gregorian-init.ly, then I get "error: parse error, unexpected
723 %% TRANSLATOR: \context { \VaticanaStaff }" in
724 %% gregorian-init.ly. --jr
725
726 \context {
727   \Voice
728   \name "VaticanaVoice"
729   \alias "Voice"
730   \description "Same as @code{Voice} context, except that it is
731 accommodated for typesetting Gregorian Chant in the notational style
732 of Editio Vaticana."
733
734   \remove "Slur_engraver"
735   \remove "Stem_engraver"
736   \remove "Ligature_bracket_engraver"
737   \consists "Vaticana_ligature_engraver"
738
739   %% Set default head for notes outside of \[ \].
740   \override NoteHead #'style = #'vaticana.punctum
741
742   %% Put some space before and after divisiones.
743   %% FIXME: This does not seem to show any effect.
744   \override Script #'padding = #0.5
745
746   %% There are no beams in Gregorian Chant notation.
747   autoBeaming = ##f
748
749   %% Prepare TextSpanner for \episem{Initium|Finis} use.
750   %%
751   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
752   %% always produce dashed lines, regardless of the style property.
753   %%
754   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
755   %% required to force the articulation signs being placed vertically
756   %% tightly to the correpsonding note heads.
757   %%
758   \override TextSpanner #'dash-fraction = #'()
759   \override TextSpanner #'style = #'line
760   \override TextSpanner #'padding = #-0.1
761 }
762
763 \context {
764   \Staff
765   \name "VaticanaStaff"
766   \alias "Staff"
767   \denies "Voice"
768   \accepts "VaticanaVoice"
769   \defaultchild "VaticanaVoice"
770
771   \description "Same as @code{Staff} context, except that it is
772 accommodated for typesetting Gregorian Chant in the notational style
773 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
855 accommodated for typesetting a piece in mensural style."
856
857   \remove "Slur_engraver"
858   \remove "Ligature_bracket_engraver"
859   \consists "Mensural_ligature_engraver"
860
861   %% Set default head for notes outside of \[ \].
862   \override NoteHead #'style = #'petrucci
863
864   %% There are no beams in mensural notation.
865   autoBeaming = ##f
866 }
867
868 \context {
869   \Staff
870   \name "MensuralStaff"
871   \alias "Staff"
872   \denies "Voice"
873   \defaultchild "MensuralVoice"
874   \accepts "MensuralVoice"
875   \description "Same as @code{Staff} context, except that it is
876 accommodated for typesetting a piece in mensural style."
877
878   \consists "Custos_engraver"
879
880   %% We can not remove Bar_engraver; otherwise clefs and custodes will
881   %% not show up any more among other line breaking issues.
882   %% Instead, we make the grob transparent.
883   \override BarLine #'transparent = ##t
884
885   \override StaffSymbol #'thickness = #0.6
886
887   %% FIXME: unit on StaffSymbol's width should be \linewidth.
888   %% \override StaffSymbol #'width = #60.0
889
890   %% Choose petrucci g clef on 2nd line as default.
891   clefGlyph = #"clefs.petrucci.g"
892   middleCPosition = #-6
893   clefPosition = #-2
894   clefOctavation = #0
895
896   %% Select mensural style font.
897   \override TimeSignature #'style = #'mensural
898   \override KeySignature #'style = #'mensural
899   \override Accidental #'glyph-name-alist = #alteration-mensural-glyph-name-alist
900   \override Custos #'style = #'mensural
901   \override Custos #'neutral-position = #3
902   \override Custos #'neutral-direction = #DOWN
903
904   %% Accidentals are valid only once (same as
905   %% #(set-accidental-style 'forget))
906   extraNatural = ##f
907   autoAccidentals = #'(Staff (same-octave . -1))
908   autoCautionaries = #'()  
909   printKeyCancellation = ##f
910 }
911
912
913 RemoveEmptyRhythmicStaffContext= \context {
914   \RhythmicStaff
915   \remove "Axis_group_engraver"
916   \override VerticalAxisGroup #'remove-empty = ##t
917   \consists "Hara_kiri_engraver"
918 }