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