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