]> 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   \override Voice #'hairpinToBarline = ##t 
622   
623   timing = ##t
624 }
625
626
627
628
629 \context {
630   \type "Engraver_group"
631   \name "FiguredBass"
632
633   \consists "Figured_bass_engraver"
634   \consists "Note_swallow_translator"
635   \consists "Skip_event_swallow_translator"
636   \consists "Separating_line_group_engraver"
637   \consists "Hara_kiri_engraver"
638
639   \override VerticalAxisGroup #'remove-empty = ##t
640   \override VerticalAxisGroup #'remove-first = ##t
641   \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2)
642 }
643
644 \context {
645   \name "Devnull"
646   \type "Engraver_group"
647
648 %% don't want to route anything out of here: 
649   \alias "Staff"
650   \alias "Voice"
651   \consists "Swallow_engraver"
652   \description "Silently discards all musical information given to this
653 context."
654 }
655
656 \context {
657   \Voice
658   \name "TabVoice"
659   \alias "Voice"
660   \consists "Tab_note_heads_engraver"
661   \consists "Tab_harmonic_engraver"
662   
663   \remove "Note_heads_engraver"
664   \remove "Fingering_engraver"
665   \remove "New_fingering_engraver"
666
667   \description "Context for drawing notes in a Tab staff."
668
669   %% TabStaff increase the staff-space, which in turn
670   %% increases beam thickness and spacing; beams are
671   %% too big. We have to adjust the beam settings:
672   \override Beam #'thickness = #0.32
673   \override Beam #'length-fraction = #0.62
674
675   %% No accidental in tablature !
676   \remove Accidental_engraver
677
678   \override Glissando #'extra-dy = #0.75
679   \override Glissando #'bound-details #'right = #`((attach-dir . ,LEFT)
680                                                    (padding . 0.3))
681   \override Glissando #'bound-details #'left = #`((attach-dir . ,RIGHT)
682                                                    (padding . 0.3))
683   \override Glissando #'extra-dy = #0.75
684   \override Glissando #'gap = #0.2
685 }
686
687 \context {
688   \Staff
689   \alias "Staff"
690   \name "TabStaff"
691   \denies "Voice"
692   \consists "Tab_staff_symbol_engraver"
693   
694   \description "Context for generating tablature. [DOCME]"
695
696   \accepts "TabVoice"
697   \defaultchild "TabVoice"
698   
699   %% 6 strings
700   \override StaffSymbol #'staff-space = #1.5
701
702   %% Don't draw stems over the tablature figures !
703   \override Stem #'avoid-note-head = ##t
704   
705   %% No accidental in tablature !
706   \remove "Accidental_engraver"
707   \remove "Key_engraver"
708   \remove "String_number_engraver"
709   %% Special "TAB" clef
710   clefGlyph = #"clefs.tab"
711   clefPosition = #0
712 }
713
714 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
715 %% but this does not work (is this a bug or intended behaviour?):
716 %%
717 %% If I try to do so, I get "error: unknown escaped string:
718 %% `\VaticanaStaff'" in params-init.ly.  If I also move
719 %% "\context { \Vaticana*Context }" from params-init.ly to the end
720 %% of gregorian-init.ly, then I get "error: parse error, unexpected
721 %% TRANSLATOR: \context { \VaticanaStaff }" in
722 %% gregorian-init.ly. --jr
723
724 \context {
725   \Voice
726   \name "VaticanaVoice"
727   \alias "Voice"
728   \description "Same as @code{Voice} context, except that it is
729 accommodated for typesetting Gregorian Chant in the notational style
730 of Editio Vaticana."
731
732   \remove "Slur_engraver"
733   \remove "Stem_engraver"
734   \remove "Ligature_bracket_engraver"
735   \consists "Vaticana_ligature_engraver"
736
737   %% Set default head for notes outside of \[ \].
738   \override NoteHead #'style = #'vaticana.punctum
739
740   %% Put some space before and after divisiones.
741   %% FIXME: This does not seem to show any effect.
742   \override Script #'padding = #0.5
743
744   %% There are no beams in Gregorian Chant notation.
745   autoBeaming = ##f
746
747   %% Prepare TextSpanner for \episem{Initium|Finis} use.
748   %%
749   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
750   %% required to force the articulation signs being placed vertically
751   %% tightly to the correpsonding note heads.
752   %%
753   \override TextSpanner #'style = #'line
754   \override TextSpanner #'padding = #-0.1
755 }
756
757 \context {
758   \Staff
759   \name "VaticanaStaff"
760   \alias "Staff"
761   \denies "Voice"
762   \accepts "VaticanaVoice"
763   \defaultchild "VaticanaVoice"
764
765   \description "Same as @code{Staff} context, except that it is
766 accommodated for typesetting Gregorian Chant in the notational style
767 of Editio Vaticana."
768
769   \remove "Time_signature_engraver"
770   \consists "Custos_engraver"
771
772   %% We can not remove Bar_engraver; otherwise clefs and custodes will
773   %% not show up any more among other line breaking issues.
774   %% Instead, we make the grob transparent.
775   \override BarLine #'transparent = ##t
776
777   \override StaffSymbol #'line-count = #4
778   \override StaffSymbol #'thickness = #0.6
779
780   %% FIXME: unit on StaffSymbol's width should be \linewidth.
781   %% \override StaffSymbol #'width = #60.0
782
783   %% Choose vaticana do clef on 3rd line as default.
784   clefGlyph = #"clefs.vaticana.do"
785   middleCPosition = #1
786   middleCClefPosition = #1
787   clefPosition = #1
788   clefOctavation = #0
789
790   %% Select vaticana style font.
791   \override KeySignature #'style = #'vaticana
792   \override Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
793   \override Custos #'style = #'vaticana
794   \override Custos #'neutral-position = #3
795   \override Custos #'neutral-direction = #DOWN
796   \override Dots #'style = #'vaticana
797 }
798
799 \context {
800   \Voice
801   \name "GregorianTranscriptionVoice"
802   \alias "Voice"
803   
804   %% Removing ligature bracket engraver without replacing it by some
805   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
806   %% warning for every "\[" and "\]".  Therefore, we make the grob
807   %% transparent instead.
808   \override LigatureBracket #'transparent = ##t
809
810   %% Put some space before and after divisiones.
811   %% FIXME: This does not seem to show any effect.
812   \override Script #'padding = #0.5
813
814   %% There are no beams in Gregorian Chant notation.
815   autoBeaming = ##f
816
817   %% Prepare TextSpanner for \episem{Initium|Finis} use.
818   %%
819   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
820   %% always produce dashed lines, regardless of the style property.
821   %%
822   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
823   %% required to force the articulation signs being placed vertically
824   %% tightly to the correpsonding note heads.
825   %%
826   \override TextSpanner #'dash-fraction = #'()
827   \override TextSpanner #'style = #'line
828   \override TextSpanner #'padding = #-0.1
829 }
830
831 \context {
832   \Staff
833   \name "GregorianTranscriptionStaff"
834   \alias "Staff"
835   \denies "Voice"
836   \accepts "GregorianTranscriptionVoice"
837   \defaultchild "GregorianTranscriptionVoice"
838
839   %% We can not remove Bar_engraver; otherwise clefs and custodes will
840   %% not show up any more among other line breaking issues.
841   %% Instead, we make the grob transparent.
842   \override BarLine #'transparent = ##t
843 }
844
845 \context {
846   \Voice
847   \name "MensuralVoice"
848   \alias "Voice"
849   \description "Same as @code{Voice} context, except that it is
850 accommodated for typesetting a piece in mensural style."
851
852   \remove "Slur_engraver"
853   \remove "Ligature_bracket_engraver"
854   \consists "Mensural_ligature_engraver"
855
856   %% Set default head for notes outside of \[ \].
857   \override NoteHead #'style = #'petrucci
858
859   %% There are no beams in mensural notation.
860   autoBeaming = ##f
861 }
862
863 \context {
864   \Staff
865   \name "MensuralStaff"
866   \alias "Staff"
867   \denies "Voice"
868   \defaultchild "MensuralVoice"
869   \accepts "MensuralVoice"
870   \description "Same as @code{Staff} context, except that it is
871 accommodated for typesetting a piece in mensural style."
872
873   \consists "Custos_engraver"
874
875   %% We can not remove Bar_engraver; otherwise clefs and custodes will
876   %% not show up any more among other line breaking issues.
877   %% Instead, we make the grob transparent.
878   \override BarLine #'transparent = ##t
879
880   \override StaffSymbol #'thickness = #0.6
881
882   %% FIXME: unit on StaffSymbol's width should be \linewidth.
883   %% \override StaffSymbol #'width = #60.0
884
885   %% Choose petrucci g clef on 2nd line as default.
886   clefGlyph = #"clefs.petrucci.g"
887   middleCClefPosition = #-6
888   middleCPosition = #-6
889   clefPosition = #-2
890   clefOctavation = #0
891
892   %% Select mensural style font.
893   \override TimeSignature #'style = #'mensural
894   \override KeySignature #'style = #'mensural
895   \override Accidental #'glyph-name-alist = #alteration-mensural-glyph-name-alist
896   \override Custos #'style = #'mensural
897   \override Custos #'neutral-position = #3
898   \override Custos #'neutral-direction = #DOWN
899
900   %% Accidentals are valid only once (same as
901   %% #(set-accidental-style 'forget))
902   extraNatural = ##f
903   autoAccidentals = #'(Staff (same-octave . -1))
904   autoCautionaries = #'()  
905   printKeyCancellation = ##f
906 }
907
908
909 RemoveEmptyRhythmicStaffContext= \context {
910   \RhythmicStaff
911   \remove "Axis_group_engraver"
912   \override VerticalAxisGroup #'remove-empty = ##t
913   \consists "Hara_kiri_engraver"
914 }