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