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