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