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