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