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