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