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