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