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