]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
Grace defaults for Script and AccidentalCautionary
[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 "Multi_measure_rest_engraver"
262   \consists "Text_spanner_engraver"
263   \consists "Grob_pq_engraver"
264
265   \remove "Note_head_line_engraver"
266   \remove "Glissando_engraver"
267   \remove "Ligature_bracket_engraver"
268   \remove "Note_heads_engraver"
269   \consists "Drum_notes_engraver"
270   \remove "New_fingering_engraver"
271
272   \remove "Fingering_engraver"
273
274   \remove "Cluster_spanner_engraver"
275   \consists "Tuplet_engraver"
276
277   \consists "Skip_event_swallow_translator"
278 }
279
280 \context{
281   \type "Engraver_group"
282   \name GrandStaff
283   localKeySignature = #'()
284   
285   \description "A group of staves, with a brace on the left
286 side, grouping the staves together.  The bar lines of the
287 contained staves are connected vertically."
288
289   \consists "Span_bar_engraver"
290   \consists "Span_arpeggio_engraver"
291   \consists "System_start_delimiter_engraver"
292   systemStartDelimiter = #'SystemStartBrace
293
294   \defaultchild "Staff"
295   \accepts "Staff"
296   \accepts "FiguredBass"
297 }
298
299 \context{
300   \GrandStaff
301   \name "PianoStaff"
302   \alias "GrandStaff"
303
304   \description "Just like @code{GrandStaff} but with a forced
305 distance between the staves, so cross staff beaming and slurring
306 can be used."
307
308   \consists "Instrument_name_engraver"
309   
310   instrumentName = #'()
311   shortInstrumentName = #'()
312 }
313
314 \context {
315   \type "Engraver_group"
316   \name InnerStaffGroup
317
318   \consists "Span_bar_engraver"
319   \consists "Span_arpeggio_engraver"
320   \consists "Output_property_engraver"  
321   systemStartDelimiter = #'SystemStartBracket
322
323   \consists "System_start_delimiter_engraver"
324
325   \defaultchild "Staff"
326   \accepts "Staff"
327   \accepts "RhythmicStaff"
328   \accepts "DrumStaff"
329   \accepts "GrandStaff"
330   \accepts "PianoStaff"
331   \accepts "TabStaff"   
332   \accepts "Lyrics"
333   \accepts "ChordNames"
334 }
335
336 \context {
337   \InnerStaffGroup
338   \name StaffGroup
339   
340   \description "Groups staves while adding a bracket on the left
341 side, grouping the staves together.  The bar lines of the contained
342 staves are connected vertically.  @code{StaffGroup} only consists of
343 a collection of staves, with a bracket in front and spanning bar lines."
344   
345   \accepts "InnerChoirStaff"
346   \accepts "ChoirStaff"
347   \accepts "InnerStaffGroup"
348   \accepts "FiguredBass"
349 }
350
351
352 \context{
353   \type "Engraver_group"
354   \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.75 . 2.0)
355
356   \description "Corresponds to a voice with lyrics.  Handles the
357 printing of a single line of lyrics."
358   
359   \name "Lyrics"
360   instrumentName = #'()
361   shortInstrumentName = #'()
362   
363   \consists "Lyric_engraver"
364   \consists "Extender_engraver"
365   \consists "Hyphen_engraver"
366   \consists "Stanza_number_engraver"
367   \consists "Instrument_name_engraver"
368   \consists "Skip_event_swallow_translator"
369   \consists "Font_size_engraver"
370   \consists "Hara_kiri_engraver"
371
372   \override VerticalAxisGroup #'remove-first = ##t
373   \override VerticalAxisGroup #'remove-empty = ##t
374   \override VerticalAxisGroup #'keep-fixed-while-stretching = ##t
375   \override SeparationItem #'padding = #0.2
376   \override InstrumentName #'self-alignment-Y = ##f
377
378   %% sync with define-grobs.scm ;
379   \override InstrumentName #'font-size = #1.0
380
381   %% make sure that barlines aren't collapsed, when
382   %% Bar_engraver is there.
383   \override BarLine #'bar-size = #0.1 
384   
385 }
386
387 \context {
388   \type "Engraver_group"
389   \name NoteNames
390   \consists "Axis_group_engraver"
391
392   \override VerticalAxisGroup #'minimum-Y-extent = ##f
393
394   
395   \consists "Rest_swallow_translator" 
396   \consists "Skip_event_swallow_translator"
397   \consists "Tie_engraver"
398   \consists "Note_name_engraver"
399   \consists "Separating_line_group_engraver"
400 }
401
402 \context {
403   \type "Engraver_group"
404   \name ChordNames
405   \description "Typesets chord names."
406   
407   \consists "Rest_swallow_translator" 
408   \consists "Output_property_engraver"  
409   \consists "Separating_line_group_engraver"
410   \consists "Chord_name_engraver"
411   \consists "Skip_event_swallow_translator"
412   \consists "Hara_kiri_engraver"
413 %  \consists "Note_spacing_engraver"
414   \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2)
415   \override VerticalAxisGroup #'remove-first = ##t
416   \override VerticalAxisGroup #'remove-empty = ##t
417 }
418
419
420 RemoveEmptyStaffContext= \context {
421   \Staff
422   \remove "Axis_group_engraver"
423   \consists "Hara_kiri_engraver"
424   \override Beam #'auto-knee-gap = #'()
425   \override VerticalAxisGroup #'remove-empty = ##t
426 }
427
428 AncientRemoveEmptyStaffContext = \context {
429 %% why not add by default?
430   
431   \RemoveEmptyStaffContext
432   \accepts "VaticanaVoice"
433   \accepts "GregorianTranscriptionVoice"
434   \accepts "MensuralVoice"
435 }
436
437 \context {
438   \type "Score_engraver"
439   \name "Score"
440   
441   \description "This is the top level notation context.  No
442 other context can contain a @code{Score} context.  This context
443 handles the administration of time signatures.  It also makes sure
444 that items such as clefs, time signatures, and key-signatures are
445 aligned across staves.
446
447 You cannot explicitly instantiate a @code{Score} context (since it
448 is not contained in any other context).  It is instantiated
449 automatically when an output definition (a @code{\score} or
450 @code{\layout} block) is processed."
451
452   \consists "Paper_column_engraver"
453   \consists "Vertically_spaced_contexts_engraver"
454   \consists "Repeat_acknowledge_engraver"
455   \consists "Staff_collecting_engraver"
456
457   %% move the alias along with the engraver.
458
459   \consists "Timing_translator"
460   \consists "Default_bar_line_engraver"
461   \consists "Output_property_engraver"
462   \consists "System_start_delimiter_engraver"
463   \consists "Mark_engraver"
464   \consists "Volta_engraver"
465   \consists "Metronome_mark_engraver"   
466   \consists "Break_align_engraver"
467   \consists "Spacing_engraver"
468   \consists "Grace_spacing_engraver"
469   \consists "Vertical_align_engraver"
470   \consists "Stanza_number_align_engraver"
471   \consists "Bar_number_engraver"
472   \consists "Parenthesis_engraver"
473   
474   \defaultchild "Staff"
475
476   \accepts "FretBoards"
477   \accepts "Staff"
478   \accepts "RhythmicStaff"
479   \accepts "TabStaff"
480   \accepts "VaticanaStaff"
481   \accepts "GregorianTranscriptionStaff"
482   \accepts "MensuralStaff"
483   \accepts "StaffGroup"
484   \accepts "DrumStaff"
485   \accepts "Lyrics"
486   \accepts "ChordNames"
487   \accepts "GrandStaff"
488   \accepts "ChoirStaff"
489   \accepts "PianoStaff"
490   \accepts "Devnull"
491   \accepts "NoteNames"
492   \accepts "FiguredBass"
493
494
495   noteToFretFunction = #determine-frets
496   soloText = #"Solo"
497   soloIIText = #"Solo II"
498   aDueText = #"a2"
499   printPartCombineTexts = ##t
500   systemStartDelimiter =#'SystemStartBar
501
502   drumStyleTable = #drums-style
503   
504   melismaBusyProperties = #default-melisma-properties
505   tieWaitForNote = ##f
506   clefGlyph = #"clefs.G"
507   clefPosition = #-2
508   middleCClefPosition = #-6
509   middleCPosition = #-6
510   firstClef = ##t
511   
512   defaultBarType = #"|"
513   barNumberVisibility = #first-bar-number-invisible
514   automaticBars = ##t
515   
516   explicitClefVisibility = #all-visible
517   explicitKeySignatureVisibility = #all-visible
518   implicitTimeSignatureVisibility = #end-of-line-invisible
519   
520   autoBeamSettings = #default-auto-beam-settings
521   autoBeaming = ##t
522   autoBeamCheck = #default-auto-beam-check
523   scriptDefinitions = #default-script-alist
524
525   pedalSustainStrings = #'("Ped." "*Ped." "*")
526   pedalSustainStyle = #'text
527   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
528   pedalUnaCordaStyle = #'text
529
530 %% These are in ordinary italic font, including the *,
531 %% but they are unlikely to be used, 
532 %% as the default pedal-style for SostenutoPedal is 'mixed':
533 %% i.e.  Sost. Ped_____________________ 
534   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") 
535   pedalSostenutoStyle = #'mixed
536
537   harmonicAccidentals = ##t 
538   fingeringOrientations = #'(up down)
539   stringNumberOrientations = #'(up down)
540   strokeFingerOrientations = #'(right)
541   
542   lyricMelismaAlignment = #LEFT
543   markFormatter = #format-mark-letters
544   rehearsalMark = #1
545   subdivideBeams = ##f
546   allowBeamBreak = ##f
547   extraNatural = ##t
548   autoAccidentals = #'(Staff (same-octave . 0))
549   autoCautionaries = #'()  
550
551   printKeyCancellation = ##t
552   keyAlterationOrder = #`(
553     (6 . ,FLAT) (2  . ,FLAT) (5 . ,FLAT ) (1  . ,FLAT) (4  . ,FLAT) (0  . ,FLAT) (3  . ,FLAT)
554     (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
555     (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
556     (3  . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
557   )
558
559   barCheckSynchronize = ##f
560   
561 %% chord names:
562   chordNameFunction = #ignatzek-chord-names
563   majorSevenSymbol = #whiteTriangleMarkup
564   chordNameSeparator = #(make-simple-markup  "/")
565   chordNameExceptions = #ignatzekExceptions
566   chordNoteNamer = #'()
567   chordRootNamer = #note-name->markup
568   chordPrefixSpacer = #0
569   chordNameExceptionsFull = #fullJazzExceptions
570   chordNameExceptionsPartial = #partialJazzExceptions
571   
572
573   bassStaffProperties = #'((assign clefGlyph "clefs.F")
574   (assign clefPosition 2)
575   (assign middleCPosition 6)
576   (assign middleCClefPosition 6))
577 %% tablature:
578   stringOneTopmost = ##t
579   highStringOne = ##t
580
581 %% One may change the strings tuning as following :
582 %% The lenght of the list must be equal to the number of string
583   stringTunings = #guitar-tuning
584   tablatureFormat = #fret-number-tablature-format
585
586 %%
587   figuredBassFormatter = #format-bass-figure
588   metronomeMarkFormatter = #format-metronome-markup
589
590
591   %% See also make-voice-props-set
592   graceSettings = #`(
593     (Voice Stem direction ,UP)
594     (Voice Stem font-size -3)
595     (Voice NoteHead font-size -3)
596     (Voice Dots font-size -3)
597     (Voice Stem length-fraction 0.8)
598     (Voice Stem no-stem-extend #t)
599     (Voice Beam thickness 0.384)
600     (Voice Beam length-fraction 0.8)
601     (Voice Accidental font-size -4)
602     (Voice AccidentalCautionary font-size -4)
603     (Voice Slur direction ,DOWN)
604     (Voice Script font-size -3)
605   )
606
607   keepAliveInterfaces = #'(
608     rhythmic-grob-interface
609     lyric-interface
610
611     ;; need this, as stanza numbers are items, and appear only once. 
612     stanza-number-interface
613     percent-repeat-interface)
614   quotedEventTypes = #'(
615     note-event
616     rest-event
617     tie-event
618     beam-event
619     tuplet-span-event)
620   instrumentTransposition = #(ly:make-pitch 0 0 0)
621
622   verticallySpacedContexts = #'(Staff)
623
624   \override Voice #'hairpinToBarline = ##t 
625   
626   timing = ##t
627 }
628
629
630
631
632 \context {
633   \type "Engraver_group"
634   \name "FiguredBass"
635
636   \consists "Figured_bass_engraver"
637   \consists "Note_swallow_translator"
638   \consists "Skip_event_swallow_translator"
639   \consists "Separating_line_group_engraver"
640   \consists "Hara_kiri_engraver"
641
642   \override VerticalAxisGroup #'remove-empty = ##t
643   \override VerticalAxisGroup #'remove-first = ##t
644   \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2)
645 }
646
647 \context {
648   \name "Devnull"
649   \type "Engraver_group"
650
651 %% don't want to route anything out of here: 
652   \alias "Staff"
653   \alias "Voice"
654   \consists "Swallow_engraver"
655   \description "Silently discards all musical information given to this
656 context."
657 }
658
659 \context {
660   \Voice
661   \name "TabVoice"
662   \alias "Voice"
663   \consists "Tab_note_heads_engraver"
664   \consists "Tab_harmonic_engraver"
665   
666   \remove "Note_heads_engraver"
667   \remove "Fingering_engraver"
668   \remove "New_fingering_engraver"
669
670   \description "Context for drawing notes in a Tab staff."
671
672   %% TabStaff increase the staff-space, which in turn
673   %% increases beam thickness and spacing; beams are
674   %% too big. We have to adjust the beam settings:
675   \override Beam #'thickness = #0.32
676   \override Beam #'length-fraction = #0.62
677
678   %% No accidental in tablature !
679   \remove Accidental_engraver
680
681   \override Glissando #'extra-dy = #0.75
682   \override Glissando #'bound-details #'right = #`((attach-dir . ,LEFT)
683                                                    (padding . 0.3))
684   \override Glissando #'bound-details #'left = #`((attach-dir . ,RIGHT)
685                                                    (padding . 0.3))
686   \override Glissando #'extra-dy = #0.75
687   \override Glissando #'gap = #0.2
688 }
689
690 \context {
691   \Staff
692   \alias "Staff"
693   \name "TabStaff"
694   \denies "Voice"
695   \consists "Tab_staff_symbol_engraver"
696   
697   \description "Context for generating tablature. [DOCME]"
698
699   \accepts "TabVoice"
700   \defaultchild "TabVoice"
701   
702   %% 6 strings
703   \override StaffSymbol #'staff-space = #1.5
704
705   %% Don't draw stems over the tablature figures !
706   \override Stem #'avoid-note-head = ##t
707   
708   %% No accidental in tablature !
709   \remove "Accidental_engraver"
710   \remove "Key_engraver"
711   \remove "String_number_engraver"
712   %% Special "TAB" clef
713   clefGlyph = #"clefs.tab"
714   clefPosition = #0
715 }
716
717 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
718 %% but this does not work (is this a bug or intended behaviour?):
719 %%
720 %% If I try to do so, I get "error: unknown escaped string:
721 %% `\VaticanaStaff'" in params-init.ly.  If I also move
722 %% "\context { \Vaticana*Context }" from params-init.ly to the end
723 %% of gregorian-init.ly, then I get "error: parse error, unexpected
724 %% TRANSLATOR: \context { \VaticanaStaff }" in
725 %% gregorian-init.ly. --jr
726
727 \context {
728   \Voice
729   \name "VaticanaVoice"
730   \alias "Voice"
731   \description "Same as @code{Voice} context, except that it is
732 accommodated for typesetting Gregorian Chant in the notational style
733 of Editio Vaticana."
734
735   \remove "Slur_engraver"
736   \remove "Stem_engraver"
737   \remove "Ligature_bracket_engraver"
738   \consists "Vaticana_ligature_engraver"
739
740   %% Set default head for notes outside of \[ \].
741   \override NoteHead #'style = #'vaticana.punctum
742
743   %% Put some space before and after divisiones.
744   %% FIXME: This does not seem to show any effect.
745   \override Script #'padding = #0.5
746
747   %% There are no beams in Gregorian Chant notation.
748   autoBeaming = ##f
749
750   %% Prepare TextSpanner for \episem{Initium|Finis} use.
751   %%
752   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
753   %% required to force the articulation signs being placed vertically
754   %% tightly to the correpsonding note heads.
755   %%
756   \override TextSpanner #'style = #'line
757   \override TextSpanner #'padding = #-0.1
758 }
759
760 \context {
761   \Staff
762   \name "VaticanaStaff"
763   \alias "Staff"
764   \denies "Voice"
765   \accepts "VaticanaVoice"
766   \defaultchild "VaticanaVoice"
767
768   \description "Same as @code{Staff} context, except that it is
769 accommodated for typesetting Gregorian Chant in the notational style
770 of Editio Vaticana."
771
772   \remove "Time_signature_engraver"
773   \consists "Custos_engraver"
774
775   %% We can not remove Bar_engraver; otherwise clefs and custodes will
776   %% not show up any more among other line breaking issues.
777   %% Instead, we make the grob transparent.
778   \override BarLine #'transparent = ##t
779
780   \override StaffSymbol #'line-count = #4
781   \override StaffSymbol #'thickness = #0.6
782
783   %% FIXME: unit on StaffSymbol's width should be \linewidth.
784   %% \override StaffSymbol #'width = #60.0
785
786   %% Choose vaticana do clef on 3rd line as default.
787   clefGlyph = #"clefs.vaticana.do"
788   middleCPosition = #1
789   middleCClefPosition = #1
790   clefPosition = #1
791   clefOctavation = #0
792
793   %% Select vaticana style font.
794   \override KeySignature #'style = #'vaticana
795   \override Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
796   \override Custos #'style = #'vaticana
797   \override Custos #'neutral-position = #3
798   \override Custos #'neutral-direction = #DOWN
799   \override Dots #'style = #'vaticana
800 }
801
802 \context {
803   \Voice
804   \name "GregorianTranscriptionVoice"
805   \alias "Voice"
806   
807   %% Removing ligature bracket engraver without replacing it by some
808   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
809   %% warning for every "\[" and "\]".  Therefore, we make the grob
810   %% transparent instead.
811   \override LigatureBracket #'transparent = ##t
812
813   %% Put some space before and after divisiones.
814   %% FIXME: This does not seem to show any effect.
815   \override Script #'padding = #0.5
816
817   %% There are no beams in Gregorian Chant notation.
818   autoBeaming = ##f
819
820   %% Prepare TextSpanner for \episem{Initium|Finis} use.
821   %%
822   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
823   %% always produce dashed lines, regardless of the style property.
824   %%
825   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
826   %% required to force the articulation signs being placed vertically
827   %% tightly to the correpsonding note heads.
828   %%
829   \override TextSpanner #'dash-fraction = #'()
830   \override TextSpanner #'style = #'line
831   \override TextSpanner #'padding = #-0.1
832 }
833
834 \context {
835   \Staff
836   \name "GregorianTranscriptionStaff"
837   \alias "Staff"
838   \denies "Voice"
839   \accepts "GregorianTranscriptionVoice"
840   \defaultchild "GregorianTranscriptionVoice"
841
842   %% We can not remove Bar_engraver; otherwise clefs and custodes will
843   %% not show up any more among other line breaking issues.
844   %% Instead, we make the grob transparent.
845   \override BarLine #'transparent = ##t
846 }
847
848 \context {
849   \Voice
850   \name "MensuralVoice"
851   \alias "Voice"
852   \description "Same as @code{Voice} context, except that it is
853 accommodated for typesetting a piece in mensural style."
854
855   \remove "Slur_engraver"
856   \remove "Ligature_bracket_engraver"
857   \consists "Mensural_ligature_engraver"
858
859   %% Set default head for notes outside of \[ \].
860   \override NoteHead #'style = #'petrucci
861
862   %% There are no beams in mensural notation.
863   autoBeaming = ##f
864 }
865
866 \context {
867   \Staff
868   \name "MensuralStaff"
869   \alias "Staff"
870   \denies "Voice"
871   \defaultchild "MensuralVoice"
872   \accepts "MensuralVoice"
873   \description "Same as @code{Staff} context, except that it is
874 accommodated for typesetting a piece in mensural style."
875
876   \consists "Custos_engraver"
877
878   %% We can not remove Bar_engraver; otherwise clefs and custodes will
879   %% not show up any more among other line breaking issues.
880   %% Instead, we make the grob transparent.
881   \override BarLine #'transparent = ##t
882
883   \override StaffSymbol #'thickness = #0.6
884
885   %% FIXME: unit on StaffSymbol's width should be \linewidth.
886   %% \override StaffSymbol #'width = #60.0
887
888   %% Choose petrucci g clef on 2nd line as default.
889   clefGlyph = #"clefs.petrucci.g"
890   middleCClefPosition = #-6
891   middleCPosition = #-6
892   clefPosition = #-2
893   clefOctavation = #0
894
895   %% Select mensural style font.
896   \override TimeSignature #'style = #'mensural
897   \override KeySignature #'style = #'mensural
898   \override Accidental #'glyph-name-alist = #alteration-mensural-glyph-name-alist
899   \override Custos #'style = #'mensural
900   \override Custos #'neutral-position = #3
901   \override Custos #'neutral-direction = #DOWN
902
903   %% Accidentals are valid only once (same as
904   %% #(set-accidental-style 'forget))
905   extraNatural = ##f
906   autoAccidentals = #'(Staff (same-octave . -1))
907   autoCautionaries = #'()  
908   printKeyCancellation = ##f
909 }
910
911
912 RemoveEmptyRhythmicStaffContext= \context {
913   \RhythmicStaff
914   \remove "Axis_group_engraver"
915   \override VerticalAxisGroup #'remove-empty = ##t
916   \consists "Hara_kiri_engraver"
917 }