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