]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
Merge branch 'master' of carldsorensen@git.sv.gnu.org:/srv/git/lilypond into ralph
[lilypond.git] / ly / engraver-init.ly
1 \version "2.12.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   extraNatural = ##t
538   autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0))
539   autoCautionaries = #'()  
540
541   printKeyCancellation = ##t
542   keyAlterationOrder = #`(
543     (6 . ,FLAT) (2  . ,FLAT) (5 . ,FLAT ) (1  . ,FLAT) (4  . ,FLAT) (0  . ,FLAT) (3  . ,FLAT)
544     (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
545     (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
546     (3  . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
547   )
548
549   barCheckSynchronize = ##f
550   
551 %% chord names:
552   chordNameFunction = #ignatzek-chord-names
553   majorSevenSymbol = #whiteTriangleMarkup
554   chordNameSeparator = #(make-simple-markup  "/")
555   chordNameExceptions = #ignatzekExceptions
556   chordNoteNamer = #'()
557   chordRootNamer = #note-name->markup
558   chordPrefixSpacer = #0
559   chordNameExceptionsFull = #fullJazzExceptions
560   chordNameExceptionsPartial = #partialJazzExceptions
561   
562
563   bassStaffProperties = #'((assign clefGlyph "clefs.F")
564   (assign clefPosition 2)
565   (assign middleCPosition 6)
566   (assign middleCClefPosition 6))
567 %% tablature:
568   stringOneTopmost = ##t
569   highStringOne = ##t
570
571 %% One may change the strings tuning as following :
572 %% The lenght of the list must be equal to the number of string
573   stringTunings = #guitar-tuning
574   tablatureFormat = #fret-number-tablature-format
575
576 %%
577   figuredBassFormatter = #format-bass-figure
578   metronomeMarkFormatter = #format-metronome-markup
579
580
581   %% See also make-voice-props-set
582   graceSettings = #`(
583     (Voice Stem direction ,UP)
584     (Voice Stem font-size -3)
585     (Voice NoteHead font-size -3)
586     (Voice Dots font-size -3)
587     (Voice Stem length-fraction 0.8)
588     (Voice Stem no-stem-extend #t)
589     (Voice Beam thickness 0.384)
590     (Voice Beam length-fraction 0.8)
591     (Voice Accidental font-size -4)
592     (Voice AccidentalCautionary font-size -4)
593     (Voice Slur direction ,DOWN)
594     (Voice Script font-size -3)
595   )
596
597   keepAliveInterfaces = #'(
598     rhythmic-grob-interface
599     lyric-interface
600     percent-repeat-item-interface
601     percent-repeat-interface
602
603     ;; need this, as stanza numbers are items, and appear only once. 
604     stanza-number-interface
605   )
606   quotedEventTypes = #'(
607     note-event
608     rest-event
609     tie-event
610     beam-event
611     tuplet-span-event)
612   instrumentTransposition = #(ly:make-pitch 0 0 0)
613
614   verticallySpacedContexts = #'(Staff)
615   
616   timing = ##t
617 }
618
619
620
621
622 \context {
623   \type "Engraver_group"
624   \name "FiguredBass"
625
626   \consists "Figured_bass_engraver"
627   \consists "Note_swallow_translator"
628   \consists "Skip_event_swallow_translator"
629   \consists "Separating_line_group_engraver"
630   \consists "Hara_kiri_engraver"
631
632   \override VerticalAxisGroup #'remove-empty = ##t
633   \override VerticalAxisGroup #'remove-first = ##t
634   \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2)
635 }
636
637 \context {
638   \name "Devnull"
639   \type "Engraver_group"
640
641 %% don't want to route anything out of here: 
642   \alias "Staff"
643   \alias "Voice"
644   \consists "Swallow_engraver"
645   \description "Silently discards all musical information given to this
646 context."
647 }
648
649 \context {
650   \Voice
651   \name "TabVoice"
652   \alias "Voice"
653   \consists "Tab_note_heads_engraver"
654   \consists "Tab_harmonic_engraver"
655   
656   \remove "Note_heads_engraver"
657   \remove "Fingering_engraver"
658   \remove "New_fingering_engraver"
659
660   \description "Context for drawing notes in a Tab staff."
661
662   %% TabStaff increase the staff-space, which in turn
663   %% increases beam thickness and spacing; beams are
664   %% too big. We have to adjust the beam settings:
665   \override Beam #'thickness = #0.32
666   \override Beam #'length-fraction = #0.62
667
668   %% No accidental in tablature !
669   \remove Accidental_engraver
670
671   \override Glissando #'extra-dy = #0.75
672   \override Glissando #'bound-details #'right = #`((attach-dir . ,LEFT)
673                                                    (padding . 0.3))
674   \override Glissando #'bound-details #'left = #`((attach-dir . ,RIGHT)
675                                                    (padding . 0.3))
676   \override Glissando #'extra-dy = #0.75
677   \override Glissando #'gap = #0.2
678 }
679
680 \context {
681   \Staff
682   \alias "Staff"
683   \name "TabStaff"
684   \denies "Voice"
685   \consists "Tab_staff_symbol_engraver"
686   
687   \description "Context for generating tablature. [DOCME]"
688
689   \accepts "TabVoice"
690   \defaultchild "TabVoice"
691   
692   %% 6 strings
693   \override StaffSymbol #'staff-space = #1.5
694
695   %% Don't draw stems over the tablature figures !
696   \override Stem #'avoid-note-head = ##t
697   
698   %% No accidental in tablature !
699   \remove "Accidental_engraver"
700   \remove "Key_engraver"
701   \remove "String_number_engraver"
702   %% Special "TAB" clef
703   clefGlyph = #"clefs.tab"
704   clefPosition = #0
705 }
706
707 %% TODO: Gregorian Chant contexts should be moved to gregorian.ly,
708 %% but this does not work (is this a bug or intended behaviour?):
709 %%
710 %% If I try to do so, I get "error: unknown escaped string:
711 %% `\VaticanaStaff'" in params-init.ly.  If I also move
712 %% "\context { \Vaticana*Context }" from params-init.ly to the end
713 %% of gregorian.ly, then I get "error: parse error, unexpected
714 %% TRANSLATOR: \context { \VaticanaStaff }" in
715 %% gregorian.ly. --jr
716
717 \context {
718   \Voice
719   \name "VaticanaVoice"
720   \alias "Voice"
721   \description "Same as @code{Voice} context, except that it is
722 accommodated for typesetting Gregorian Chant in the notational style
723 of Editio Vaticana."
724
725   \remove "Slur_engraver"
726   \remove "Stem_engraver"
727   \remove "Ligature_bracket_engraver"
728   \consists "Vaticana_ligature_engraver"
729
730   %% Set default head for notes outside of \[ \].
731   \override NoteHead #'style = #'vaticana.punctum
732
733   %% Put some space before and after divisiones.
734   %% FIXME: This does not seem to show any effect.
735   \override Script #'padding = #0.5
736
737   %% There are no beams in Gregorian Chant notation.
738   autoBeaming = ##f
739
740   %% Prepare TextSpanner for \episem{Initium|Finis} use.
741   %%
742   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
743   %% required to force the articulation signs being placed vertically
744   %% tightly to the correpsonding note heads.
745   %%
746   \override TextSpanner #'style = #'line
747   \override TextSpanner #'padding = #-0.1
748 }
749
750 \context {
751   \Staff
752   \name "VaticanaStaff"
753   \alias "Staff"
754   \denies "Voice"
755   \accepts "VaticanaVoice"
756   \defaultchild "VaticanaVoice"
757
758   \description "Same as @code{Staff} context, except that it is
759 accommodated for typesetting Gregorian Chant in the notational style
760 of Editio Vaticana."
761
762   \remove "Time_signature_engraver"
763   \consists "Custos_engraver"
764
765   %% We can not remove Bar_engraver; otherwise clefs and custodes will
766   %% not show up any more among other line breaking issues.
767   %% Instead, we make the grob transparent.
768   \override BarLine #'transparent = ##t
769
770   \override StaffSymbol #'line-count = #4
771   \override StaffSymbol #'thickness = #0.6
772
773   %% FIXME: unit on StaffSymbol's width should be \linewidth.
774   %% \override StaffSymbol #'width = #60.0
775
776   %% Choose vaticana do clef on 3rd line as default.
777   clefGlyph = #"clefs.vaticana.do"
778   middleCPosition = #1
779   middleCClefPosition = #1
780   clefPosition = #1
781   clefOctavation = #0
782
783   %% Select vaticana style font.
784   \override KeySignature #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
785   \override Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
786   \override Custos #'style = #'vaticana
787   \override Custos #'neutral-position = #3
788   \override Custos #'neutral-direction = #DOWN
789   \override Dots #'style = #'vaticana
790 }
791
792 \context {
793   \Voice
794   \name "GregorianTranscriptionVoice"
795   \alias "Voice"
796
797   %% Removing ligature bracket engraver without replacing it by some
798   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
799   %% warning for every "\[" and "\]".  Therefore, we make the grob
800   %% transparent instead.
801   \override LigatureBracket #'transparent = ##t
802
803   %% Put some space before and after divisiones.
804   %% FIXME: This does not seem to show any effect.
805   \override Script #'padding = #0.5
806
807   %% There are no beams in Gregorian Chant notation.
808   autoBeaming = ##f
809
810   %% Prepare TextSpanner for \episem{Initium|Finis} use.
811   %%
812   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
813   %% always produce dashed lines, regardless of the style property.
814   %%
815   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
816   %% required to force the articulation signs being placed vertically
817   %% tightly to the correpsonding note heads.
818   %%
819   \override TextSpanner #'dash-fraction = #'()
820   \override TextSpanner #'style = #'line
821   \override TextSpanner #'padding = #-0.1
822 }
823
824 \context {
825   \Staff
826   \name "GregorianTranscriptionStaff"
827   \alias "Staff"
828   \denies "Voice"
829   \accepts "GregorianTranscriptionVoice"
830   \defaultchild "GregorianTranscriptionVoice"
831
832   %% We can not remove Bar_engraver; otherwise clefs and custodes will
833   %% not show up any more among other line breaking issues.
834   %% Instead, we make the grob transparent.
835   \override BarLine #'transparent = ##t
836 }
837
838 \context {
839   \Voice
840   \name "MensuralVoice"
841   \alias "Voice"
842   \description "Same as @code{Voice} context, except that it is
843 accommodated for typesetting a piece in mensural style."
844
845   \remove "Slur_engraver"
846   \remove "Ligature_bracket_engraver"
847   \consists "Mensural_ligature_engraver"
848
849   %% Set default head for notes outside of \[ \].
850   \override NoteHead #'style = #'mensural
851   \override Rest #'style = #'mensural
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 mensural g clef on 2nd line as default.
880   clefGlyph = #"clefs.mensural.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 #'glyph-name-alist = #alteration-mensural-glyph-name-alist
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 }