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