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