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