]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
Support tablature slides.
[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   \override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4)
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  "
171     A context like @code{Staff} but for printing rhythms.  Pitches are
172     ignored; the notes are printed on one line.  
173 "
174 }
175
176
177 \context {
178   \type "Engraver_group"
179   \name "Voice"
180
181   \description "
182     Corresponds to a voice on a staff.  This context handles the
183     conversion of dynamic signs, stems, beams, super- and subscripts,
184     slurs, ties, and rests.
185
186     You have to instantiate this explicitly if you want to have
187     multiple voices on the same staff."
188
189   localKeySignature = #'()
190   \consists "Font_size_engraver"
191
192   \consists "Pitched_trill_engraver"
193   \consists "Output_property_engraver"  
194   \consists "Arpeggio_engraver"
195   \consists "Multi_measure_rest_engraver"
196   \consists "Text_spanner_engraver"
197   \consists "Trill_spanner_engraver"
198   \consists "Grob_pq_engraver"
199   \consists "Forbid_line_break_engraver"
200   \consists "Laissez_vibrer_engraver"
201   \consists "Repeat_tie_engraver"
202   \consists "Note_head_line_engraver"
203   \consists "Glissando_engraver"
204   \consists "Ligature_bracket_engraver"
205   \consists "Breathing_sign_engraver"
206   \consists "Note_heads_engraver"
207   \consists "Dots_engraver"
208   \consists "Rest_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_after_engraver"
231
232   \consists "Script_engraver"
233   \consists "Script_column_engraver"
234   \consists "Rhythmic_column_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 staffs, 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
305   "Just like @code{GrandStaff} but with a forced distance between
306     the staves, so cross staff beaming and slurring can be used."
307   
308   \override VerticalAlignment #'forced-distance = #12
309   \override VerticalAlignment #'self-alignment-Y = #0
310
311   \consists "Vertical_align_engraver"
312   \consists "Instrument_name_engraver"
313   
314   instrumentName = #'()
315   shortInstrumentName = #'()
316 }
317
318 \context {
319   \type "Engraver_group"
320   \name InnerStaffGroup
321
322   \consists "Span_bar_engraver"
323   \consists "Span_arpeggio_engraver"
324   \consists "Output_property_engraver"  
325   systemStartDelimiter = #'SystemStartBracket
326
327   \consists "System_start_delimiter_engraver"
328
329   \defaultchild "Staff"
330   \accepts "Staff"
331   \accepts "RhythmicStaff"
332   \accepts "DrumStaff"
333   \accepts "GrandStaff"
334   \accepts "PianoStaff"
335   \accepts "TabStaff"   
336   \accepts "Lyrics"
337   \accepts "ChordNames"
338 }
339
340 \context {
341   \InnerStaffGroup
342   \name StaffGroup
343   
344   \description
345
346   "Groups staffs while adding a bracket on the left side, grouping
347 the staves together.  The bar lines of the contained staves are
348 connected vertically.  StaffGroup only consists of a collection of
349 staffs, with a bracket in front and spanning bar lines. "
350   
351   \accepts "InnerChoirStaff"
352   \accepts "ChoirStaff"
353   \accepts "InnerStaffGroup"
354   \accepts "FiguredBass"
355 }
356
357
358 \context{
359   \type "Engraver_group"
360   \override VerticalAxisGroup #'minimum-Y-extent = #'(-1.2 . 2.4)
361
362   \description " Corresponds to a voice with lyrics.  Handles the
363 printing of a single line of lyrics.  "
364   
365   \name "Lyrics" 
366   \consists "Lyric_engraver"
367   \consists "Extender_engraver"
368   \consists "Hyphen_engraver"
369   \consists "Stanza_number_engraver"
370   \consists "Instrument_name_engraver"
371   \consists "Skip_event_swallow_translator"
372   \consists "Font_size_engraver"
373   \consists "Hara_kiri_engraver"
374   \override VerticalAxisGroup #'remove-first = ##t
375   \override VerticalAxisGroup #'remove-empty = ##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   
417   voltaOnThisStaff = ##f
418   \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2.5)
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 Score context (since it is
453     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
458   \consists "Paper_column_engraver"
459   \consists "Vertically_spaced_contexts_engraver"
460   \consists "Repeat_acknowledge_engraver"
461   \consists "Staff_collecting_engraver"
462
463   %% move the alias along with the engraver.
464
465   \consists "Timing_translator"
466   \consists "Default_bar_line_engraver"
467   \consists "Output_property_engraver"
468   \consists "System_start_delimiter_engraver"
469   \consists "Mark_engraver"     
470   \consists "Metronome_mark_engraver"   
471   \consists "Break_align_engraver"
472   \consists "Spacing_engraver"
473   \consists "Grace_spacing_engraver"
474   \consists "Vertical_align_engraver"
475   \consists "Stanza_number_align_engraver"
476   \consists "Bar_number_engraver"
477   \consists "Tweak_engraver"
478   \consists "Parenthesis_engraver"
479   
480   \defaultchild "Staff"
481
482   \accepts "FretBoards"
483   \accepts "Staff"
484   \accepts "RhythmicStaff"
485   \accepts "TabStaff"
486   \accepts "VaticanaStaff"
487   \accepts "GregorianTranscriptionStaff"
488   \accepts "MensuralStaff"
489   \accepts "StaffGroup"
490   \accepts "DrumStaff"
491   \accepts "Lyrics"
492   \accepts "ChordNames"
493   \accepts "GrandStaff"
494   \accepts "ChoirStaff"
495   \accepts "PianoStaff"
496   \accepts "Devnull"
497   \accepts "NoteNames"
498   \accepts "FiguredBass"
499
500
501   noteToFretFunction = #determine-frets
502   soloText = #"Solo"
503   soloIIText = #"Solo II"
504   aDueText = #"a2"
505   printPartCombineTexts = ##t
506   systemStartDelimiter =#'SystemStartBar
507
508   drumStyleTable = #drums-style
509   
510   melismaBusyProperties = #default-melisma-properties
511   tieWaitForNote = ##f
512   clefGlyph = #"clefs.G"
513   clefPosition = #-2
514   middleCPosition = #-6
515   firstClef = ##t
516   
517   defaultBarType = #"|"
518   barNumberVisibility = #first-bar-number-invisible
519   automaticBars = ##t
520   
521   explicitClefVisibility = #all-visible
522   explicitKeySignatureVisibility = #all-visible
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   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     percent-repeat-interface)
607   quotedEventTypes = #'(
608     note-event
609     rest-event
610     tie-event
611     beam-event
612     tuplet-span-event)
613   instrumentTransposition = #(ly:make-pitch 0 0 0)
614
615   verticallySpacedContexts = #'(Staff)
616
617   hairpinToBarline = ##t 
618   
619   timing = ##t
620 }
621
622
623
624
625 \context {
626   \type "Engraver_group"
627   \name "FiguredBass"
628
629   \consists "Figured_bass_engraver"
630   \consists "Note_swallow_translator"
631   \consists "Skip_event_swallow_translator"
632   \consists "Separating_line_group_engraver"
633   \consists "Hara_kiri_engraver"
634
635   \override VerticalAxisGroup #'remove-empty = ##t
636   \override VerticalAxisGroup #'remove-first = ##t
637   \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.5 . 2.5)
638 }
639
640 \context {
641   \name "Devnull"
642   \type "Engraver_group"
643
644 %% don't want to route anything out of here: 
645   \alias "Staff"
646   \alias "Voice"
647   \consists "Swallow_engraver"
648   \description "Silently discards all musical information given to this context. "
649 }
650
651 \context {
652   \Voice
653   \name "TabVoice"
654   \alias "Voice"
655   \consists "Tab_note_heads_engraver"
656   \consists "Tab_harmonic_engraver"
657   
658   \remove "Note_heads_engraver"
659   \remove "Fingering_engraver"
660   \remove "New_fingering_engraver"
661
662   \description "Context for drawing notes in a Tab staff. "
663
664   %% TabStaff increase the staff-space, which in turn
665   %% increases beam thickness and spacing; beams are
666   %% too big. We have to adjust the beam settings:
667   \override Beam #'thickness = #0.32
668   \override Beam #'length-fraction = #0.62
669
670   %% No accidental in tablature !
671   \remove Accidental_engraver
672
673   \override Glissando #'extra-dy = #0.75
674 }
675
676 \context {
677   \Staff
678   \alias "Staff"
679   \name "TabStaff"
680   \denies "Voice"
681   \consists "Tab_staff_symbol_engraver"
682   
683   \description "Context for generating tablature. [DOCME]"
684
685   \accepts "TabVoice"
686   \defaultchild "TabVoice"
687   
688   %% 6 strings
689   \override StaffSymbol #'staff-space = #1.5
690
691   %% Don't draw stems over the tablature figures !
692   \override Stem #'avoid-note-head = ##t
693   
694   %% No accidental in tablature !
695   \remove "Accidental_engraver"
696   \remove "Key_engraver"
697   \remove "String_number_engraver"
698   %% Special "TAB" clef
699   clefGlyph = #"clefs.tab"
700   clefPosition = #0
701 }
702
703 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
704 %% but this does not work (is this a bug or intended behaviour?):
705 %%
706 %% If I try to do so, I get "error: unknown escaped string:
707 %% `\VaticanaStaff'" in params-init.ly.  If I also move
708 %% "\context { \Vaticana*Context }" from params-init.ly to the end
709 %% of gregorian-init.ly, then I get "error: parse error, unexpected
710 %% TRANSLATOR: \context { \VaticanaStaff }" in
711 %% gregorian-init.ly. --jr
712
713 \context {
714   \Voice
715   \name "VaticanaVoice"
716   \alias "Voice"
717   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
718
719   \remove "Slur_engraver"
720   \remove "Stem_engraver"
721   \remove "Ligature_bracket_engraver"
722   \consists "Vaticana_ligature_engraver"
723
724   %% Set default head for notes outside of \[ \].
725   \override NoteHead #'style = #'vaticana.punctum
726
727   %% Put some space before and after divisiones.
728   %% FIXME: This does not seem to show any effect.
729   \override Script #'padding = #0.5
730
731   %% There are no beams in Gregorian Chant notation.
732   autoBeaming = ##f
733
734   %% Prepare TextSpanner for \episem{Initium|Finis} use.
735   %%
736   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
737   %% always produce dashed lines, regardless of the style property.
738   %%
739   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
740   %% required to force the articulation signs being placed vertically
741   %% tightly to the correpsonding note heads.
742   %%
743   \override TextSpanner #'dash-fraction = #'()
744   \override TextSpanner #'style = #'line
745   \override TextSpanner #'edge-height = #'(0 . 0)
746   \override TextSpanner #'padding = #-0.1
747   \override TextSpanner #'enclose-bounds = #1
748   \override TextSpanner #'edge-text = #'("" . "")
749 }
750
751 \context {
752   \Staff
753   \name "VaticanaStaff"
754   \alias "Staff"
755   \denies "Voice"
756   \accepts "VaticanaVoice"
757   \defaultchild "VaticanaVoice"
758
759   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
760
761   \remove "Time_signature_engraver"
762   \consists "Custos_engraver"
763
764   %% We can not remove Bar_engraver; otherwise clefs and custodes will
765   %% not show up any more among other line breaking issues.
766   %% Instead, we make the grob transparent.
767   \override BarLine #'transparent = ##t
768
769   \override StaffSymbol #'line-count = #4
770   \override StaffSymbol #'thickness = #0.6
771
772   %% FIXME: unit on StaffSymbol's width should be \linewidth.
773   %% \override StaffSymbol #'width = #60.0
774
775   %% Choose vaticana do clef on 3rd line as default.
776   clefGlyph = #"clefs.vaticana.do"
777   middleCPosition = #1
778   clefPosition = #1
779   clefOctavation = #0
780
781   %% Select vaticana style font.
782   \override KeySignature #'style = #'vaticana
783   \override Accidental #'style = #'vaticana
784   \override Custos #'style = #'vaticana
785   \override Custos #'neutral-position = #3
786   \override Custos #'neutral-direction = #DOWN
787   \override Dots #'style = #'vaticana
788 }
789
790 \context {
791   \Voice
792   \name "GregorianTranscriptionVoice"
793   \alias "Voice"
794
795   %% Removing ligature bracket engraver without replacing it by some
796   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
797   %% warning for every "\[" and "\]".  Therefore, we make the grob
798   %% transparent instead.
799   \override LigatureBracket #'transparent = ##t
800
801   %% Put some space before and after divisiones.
802   %% FIXME: This does not seem to show any effect.
803   \override Script #'padding = #0.5
804
805   %% There are no beams in Gregorian Chant notation.
806   autoBeaming = ##f
807
808   %% Prepare TextSpanner for \episem{Initium|Finis} use.
809   %%
810   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
811   %% always produce dashed lines, regardless of the style property.
812   %%
813   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
814   %% required to force the articulation signs being placed vertically
815   %% tightly to the correpsonding note heads.
816   %%
817   \override TextSpanner #'dash-fraction = #'()
818   \override TextSpanner #'style = #'line
819   \override TextSpanner #'edge-height = #'(0 . 0)
820   \override TextSpanner #'padding = #-0.1
821   \override TextSpanner #'enclose-bounds = #1
822   \override TextSpanner #'edge-text = #'("" . "")
823 }
824
825 \context {
826   \Staff
827   \name "GregorianTranscriptionStaff"
828   \alias "Staff"
829   \denies "Voice"
830   \accepts "GregorianTranscriptionVoice"
831   \defaultchild "GregorianTranscriptionVoice"
832
833   %% We can not remove Bar_engraver; otherwise clefs and custodes will
834   %% not show up any more among other line breaking issues.
835   %% Instead, we make the grob transparent.
836   \override BarLine #'transparent = ##t
837 }
838
839 \context {
840   \Voice
841   \name "MensuralVoice"
842   \alias "Voice"
843   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style."
844
845   \remove "Slur_engraver"
846   \remove "Ligature_bracket_engraver"
847   \consists "Mensural_ligature_engraver"
848
849   %% Set default head for notes outside of \[ \].
850   \override NoteHead #'style = #'petrucci
851
852   %% There are no beams in mensural notation.
853   autoBeaming = ##f
854 }
855
856 \context {
857   \Staff
858   \name "MensuralStaff"
859   \alias "Staff"
860   \denies "Voice"
861   \defaultchild "MensuralVoice"
862   \accepts "MensuralVoice"
863   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting a piece in mensural style."
864
865   \consists "Custos_engraver"
866
867   %% We can not remove Bar_engraver; otherwise clefs and custodes will
868   %% not show up any more among other line breaking issues.
869   %% Instead, we make the grob transparent.
870   \override BarLine #'transparent = ##t
871
872   \override StaffSymbol #'thickness = #0.6
873
874   %% FIXME: unit on StaffSymbol's width should be \linewidth.
875   %% \override StaffSymbol #'width = #60.0
876
877   %% Choose petrucci g clef on 2nd line as default.
878   clefGlyph = #"clefs.petrucci.g"
879   middleCPosition = #-6
880   clefPosition = #-2
881   clefOctavation = #0
882
883   %% Select mensural style font.
884   \override TimeSignature #'style = #'mensural
885   \override KeySignature #'style = #'mensural
886   \override Accidental #'style = #'mensural
887   \override Custos #'style = #'mensural
888   \override Custos #'neutral-position = #3
889   \override Custos #'neutral-direction = #DOWN
890
891   %% Accidentals are valid only once (same as
892   %% #(set-accidental-style 'forget))
893   extraNatural = ##f
894   autoAccidentals = #'(Staff (same-octave . -1))
895   autoCautionaries = #'()  
896   printKeyCancellation = ##f
897 }
898
899
900 RemoveEmptyRhythmicStaffContext= \context {
901   \RhythmicStaff
902   \remove "Axis_group_engraver"
903   \override VerticalAxisGroup #'remove-empty = ##t
904   \consists "Hara_kiri_engraver"
905 }