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