]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
* Documentation/topdocs/NEWS.tely (Top): add FretBoards example.
[lilypond.git] / ly / engraver-init.ly
1 \version "2.7.39"
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 = #'(rhythmic-grob-interface lyric-interface percent-repeat-interface)
604   quotedEventTypes = #'(note-event rest-event time-scaled-music tie-event beam-event)
605   instrumentTransposition = #(ly:make-pitch 0 0 0)
606
607   verticallySpacedContexts = #'(Staff)
608
609   hairpinToBarline = ##t 
610   
611   timing = ##t
612 }
613
614
615
616
617 \context {
618   \type "Engraver_group"
619   \name "FiguredBass"
620
621   \consists "Figured_bass_engraver"
622   \consists "Note_swallow_translator"
623   \consists "Skip_event_swallow_translator"
624   \consists "Separating_line_group_engraver"
625   \consists "Hara_kiri_engraver"
626
627   \override VerticalAxisGroup #'remove-empty = ##t
628   \override VerticalAxisGroup #'remove-first = ##t
629   \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.5 . 2.5)
630 }
631
632 \context {
633   \name "Devnull"
634   \type "Engraver_group"
635
636 %% don't want to route anything out of here: 
637   \alias "Staff"
638   \alias "Voice"
639   \consists "Swallow_engraver"
640   \description "Silently discards all musical information given to this context. "
641 }
642
643 \context {
644   \Voice
645   \name "TabVoice"
646   \alias "Voice"
647   \consists "Tab_note_heads_engraver"
648   \remove "Note_heads_engraver"
649   \remove "Fingering_engraver"
650   \remove "New_fingering_engraver"
651
652   \description "Context for drawing notes in a Tab staff. "
653
654   %% TabStaff increase the staff-space, which in turn
655   %% increases beam thickness and spacing; beams are
656   %% too big. We have to adjust the beam settings:
657   \override Beam #'thickness = #0.32
658   \override Beam #'length-fraction = #0.62
659
660   %% No accidental in tablature !
661   \remove Accidental_engraver
662 }
663
664 \context {
665   \Staff
666   \alias "Staff"
667   \name "TabStaff"
668   \denies "Voice"
669   \consists "Tab_staff_symbol_engraver"
670   
671   \description "Context for generating tablature. [DOCME]"
672
673   \accepts "TabVoice"
674   \defaultchild "TabVoice"
675   
676   %% 6 strings
677   \override StaffSymbol #'staff-space = #1.5
678
679   %% Don't draw stems over the tablature figures !
680   \override Stem #'avoid-note-head = ##t
681   
682   %% No accidental in tablature !
683   \remove "Accidental_engraver"
684   \remove "Key_engraver"
685   \remove "String_number_engraver"
686   %% Special "TAB" clef
687   clefGlyph = #"clefs.tab"
688   clefPosition = #0
689 }
690
691 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
692 %% but this does not work (is this a bug or intended behaviour?):
693 %%
694 %% If I try to do so, I get "error: unknown escaped string:
695 %% `\VaticanaStaff'" in params-init.ly.  If I also move
696 %% "\context { \Vaticana*Context }" from params-init.ly to the end
697 %% of gregorian-init.ly, then I get "error: parse error, unexpected
698 %% TRANSLATOR: \context { \VaticanaStaff }" in
699 %% gregorian-init.ly. --jr
700
701 \context {
702   \Voice
703   \name "VaticanaVoice"
704   \alias "Voice"
705   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
706
707   \remove "Slur_engraver"
708   \remove "Stem_engraver"
709   \remove "Ligature_bracket_engraver"
710   \consists "Vaticana_ligature_engraver"
711
712   %% Set default head for notes outside of \[ \].
713   \override NoteHead #'style = #'vaticana.punctum
714
715   %% Put some space before and after divisiones.
716   %% FIXME: This does not seem to show any effect.
717   \override Script #'padding = #0.5
718
719   %% There are no beams in Gregorian Chant notation.
720   autoBeaming = ##f
721
722   %% Prepare TextSpanner for \episem{Initium|Finis} use.
723   %%
724   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
725   %% always produce dashed lines, regardless of the style property.
726   %%
727   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
728   %% required to force the articulation signs being placed vertically
729   %% tightly to the correpsonding note heads.
730   %%
731   \override TextSpanner #'dash-fraction = #'()
732   \override TextSpanner #'style = #'line
733   \override TextSpanner #'edge-height = #'(0 . 0)
734   \override TextSpanner #'padding = #-0.1
735   \override TextSpanner #'enclose-bounds = #1
736   \override TextSpanner #'edge-text = #'("" . "")
737 }
738
739 \context {
740   \Staff
741   \name "VaticanaStaff"
742   \alias "Staff"
743   \denies "Voice"
744   \accepts "VaticanaVoice"
745   \defaultchild "VaticanaVoice"
746
747   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
748
749   \remove "Time_signature_engraver"
750   \consists "Custos_engraver"
751
752   %% We can not remove Bar_engraver; otherwise clefs and custodes will
753   %% not show up any more among other line breaking issues.
754   %% Instead, we make the grob transparent.
755   \override BarLine #'transparent = ##t
756
757   \override StaffSymbol #'line-count = #4
758   \override StaffSymbol #'thickness = #0.6
759
760   %% FIXME: unit on StaffSymbol's width should be \linewidth.
761   %% \override StaffSymbol #'width = #60.0
762
763   %% Choose vaticana do clef on 3rd line as default.
764   clefGlyph = #"clefs.vaticana.do"
765   middleCPosition = #1
766   clefPosition = #1
767   clefOctavation = #0
768
769   %% Select vaticana style font.
770   \override KeySignature #'style = #'vaticana
771   \override Accidental #'style = #'vaticana
772   \override Custos #'style = #'vaticana
773   \override Custos #'neutral-position = #3
774   \override Custos #'neutral-direction = #DOWN
775   \override Dots #'style = #'vaticana
776 }
777
778 \context {
779   \Voice
780   \name "GregorianTranscriptionVoice"
781   \alias "Voice"
782
783   %% Removing ligature bracket engraver without replacing it by some
784   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
785   %% warning for every "\[" and "\]".  Therefore, we make the grob
786   %% transparent instead.
787   \override LigatureBracket #'transparent = ##t
788
789   %% Put some space before and after divisiones.
790   %% FIXME: This does not seem to show any effect.
791   \override Script #'padding = #0.5
792
793   %% There are no beams in Gregorian Chant notation.
794   autoBeaming = ##f
795
796   %% Prepare TextSpanner for \episem{Initium|Finis} use.
797   %%
798   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
799   %% always produce dashed lines, regardless of the style property.
800   %%
801   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
802   %% required to force the articulation signs being placed vertically
803   %% tightly to the correpsonding note heads.
804   %%
805   \override TextSpanner #'dash-fraction = #'()
806   \override TextSpanner #'style = #'line
807   \override TextSpanner #'edge-height = #'(0 . 0)
808   \override TextSpanner #'padding = #-0.1
809   \override TextSpanner #'enclose-bounds = #1
810   \override TextSpanner #'edge-text = #'("" . "")
811 }
812
813 \context {
814   \Staff
815   \name "GregorianTranscriptionStaff"
816   \alias "Staff"
817   \denies "Voice"
818   \accepts "GregorianTranscriptionVoice"
819   \defaultchild "GregorianTranscriptionVoice"
820
821   %% We can not remove Bar_engraver; otherwise clefs and custodes will
822   %% not show up any more among other line breaking issues.
823   %% Instead, we make the grob transparent.
824   \override BarLine #'transparent = ##t
825 }
826
827 \context {
828   \Voice
829   \name "MensuralVoice"
830   \alias "Voice"
831   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style."
832
833   \remove "Slur_engraver"
834   \remove "Ligature_bracket_engraver"
835   \consists "Mensural_ligature_engraver"
836
837   %% Set default head for notes outside of \[ \].
838   \override NoteHead #'style = #'petrucci
839
840   %% There are no beams in mensural notation.
841   autoBeaming = ##f
842 }
843
844 \context {
845   \Staff
846   \name "MensuralStaff"
847   \alias "Staff"
848   \denies "Voice"
849   \defaultchild "MensuralVoice"
850   \accepts "MensuralVoice"
851   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting a piece in mensural style."
852
853   \consists "Custos_engraver"
854
855   %% We can not remove Bar_engraver; otherwise clefs and custodes will
856   %% not show up any more among other line breaking issues.
857   %% Instead, we make the grob transparent.
858   \override BarLine #'transparent = ##t
859
860   \override StaffSymbol #'thickness = #0.6
861
862   %% FIXME: unit on StaffSymbol's width should be \linewidth.
863   %% \override StaffSymbol #'width = #60.0
864
865   %% Choose petrucci g clef on 2nd line as default.
866   clefGlyph = #"clefs.petrucci.g"
867   middleCPosition = #-6
868   clefPosition = #-2
869   clefOctavation = #0
870
871   %% Select mensural style font.
872   \override TimeSignature #'style = #'mensural
873   \override KeySignature #'style = #'mensural
874   \override Accidental #'style = #'mensural
875   \override Custos #'style = #'mensural
876   \override Custos #'neutral-position = #3
877   \override Custos #'neutral-direction = #DOWN
878
879   %% Accidentals are valid only once (same as
880   %% #(set-accidental-style 'forget))
881   extraNatural = ##f
882   autoAccidentals = #'(Staff (same-octave . -1))
883   autoCautionaries = #'()  
884   printKeyCancellation = ##f
885 }
886
887
888 RemoveEmptyRhythmicStaffContext= \context {
889   \RhythmicStaff
890   \remove "Axis_group_engraver"
891   \override VerticalAxisGroup #'remove-empty = ##t
892   \consists "Hara_kiri_engraver"
893 }