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