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