]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
Merge branch 'lilypond/translation' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond
[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 %% TODO: Gregorian Chant contexts should be moved to gregorian.ly,
788 %% but this does not work (is this a bug or intended behaviour?):
789 %%
790 %% If I try to do so, I get "error: unknown escaped string:
791 %% `\VaticanaStaff'" in params-init.ly.  If I also move
792 %% "\context { \Vaticana*Context }" from params-init.ly to the end
793 %% of gregorian.ly, then I get "error: parse error, unexpected
794 %% TRANSLATOR: \context { \VaticanaStaff }" in
795 %% gregorian.ly. --jr
796
797 \context {
798   \Voice
799   \name "VaticanaVoice"
800   \alias "Voice"
801   \description "Same as @code{Voice} context, except that it is
802 accommodated for typesetting Gregorian Chant in the notational style
803 of Editio Vaticana."
804
805   \remove "Slur_engraver"
806   \remove "Stem_engraver"
807   \remove "Ligature_bracket_engraver"
808   \consists "Vaticana_ligature_engraver"
809
810   %% Set default head for notes outside of \[ \].
811   \override NoteHead #'style = #'vaticana.punctum
812
813   %% Put some space before and after divisiones.
814   %% FIXME: This does not seem to show any effect.
815   \override Script #'padding = #0.5
816
817   %% There are no beams in Gregorian Chant notation.
818   autoBeaming = ##f
819
820   %% Prepare TextSpanner for \episem{Initium|Finis} use.
821   %%
822   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
823   %% required to force the articulation signs being placed vertically
824   %% tightly to the correpsonding note heads.
825   %%
826   \override TextSpanner #'style = #'line
827   \override TextSpanner #'padding = #-0.1
828 }
829
830 \context {
831   \Staff
832   \name "VaticanaStaff"
833   \alias "Staff"
834   \denies "Voice"
835   \accepts "VaticanaVoice"
836   \defaultchild "VaticanaVoice"
837
838   \description "Same as @code{Staff} context, except that it is
839 accommodated for typesetting Gregorian Chant in the notational style
840 of Editio Vaticana."
841
842   \remove "Time_signature_engraver"
843   \consists "Custos_engraver"
844
845   %% We can not remove Bar_engraver; otherwise clefs and custodes will
846   %% not show up any more among other line breaking issues.
847   %% Instead, we make the grob transparent.
848   \override BarLine #'transparent = ##t
849
850   \override StaffSymbol #'line-count = #4
851   \override StaffSymbol #'thickness = #0.6
852
853   %% FIXME: unit on StaffSymbol's width should be \linewidth.
854   %% \override StaffSymbol #'width = #60.0
855
856   %% Choose vaticana do clef on 3rd line as default.
857   clefGlyph = #"clefs.vaticana.do"
858   middleCPosition = #1
859   middleCClefPosition = #1
860   clefPosition = #1
861   clefOctavation = #0
862
863   %% Select vaticana style font.
864   \override KeySignature #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
865   \override Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
866   \override Custos #'style = #'vaticana
867   \override Custos #'neutral-position = #3
868   \override Custos #'neutral-direction = #DOWN
869   \override Dots #'style = #'vaticana
870 }
871
872 \context {
873   \Voice
874   \name "GregorianTranscriptionVoice"
875   \alias "Voice"
876
877   %% Removing ligature bracket engraver without replacing it by some
878   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
879   %% warning for every "\[" and "\]".  Therefore, we make the grob
880   %% transparent instead.
881   \override LigatureBracket #'transparent = ##t
882
883   %% Put some space before and after divisiones.
884   %% FIXME: This does not seem to show any effect.
885   \override Script #'padding = #0.5
886
887   %% There are no beams in Gregorian Chant notation.
888   autoBeaming = ##f
889
890   %% Prepare TextSpanner for \episem{Initium|Finis} use.
891   %%
892   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
893   %% always produce dashed lines, regardless of the style property.
894   %%
895   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
896   %% required to force the articulation signs being placed vertically
897   %% tightly to the correpsonding note heads.
898   %%
899   \override TextSpanner #'dash-fraction = #'()
900   \override TextSpanner #'style = #'line
901   \override TextSpanner #'padding = #-0.1
902 }
903
904 \context {
905   \Staff
906   \name "GregorianTranscriptionStaff"
907   \alias "Staff"
908   \denies "Voice"
909   \accepts "GregorianTranscriptionVoice"
910   \defaultchild "GregorianTranscriptionVoice"
911
912   %% We can not remove Bar_engraver; otherwise clefs and custodes will
913   %% not show up any more among other line breaking issues.
914   %% Instead, we make the grob transparent.
915   \override BarLine #'transparent = ##t
916 }
917
918 \context {
919   \Voice
920   \name "MensuralVoice"
921   \alias "Voice"
922   \description "Same as @code{Voice} context, except that it is
923 accommodated for typesetting a piece in mensural style."
924
925   \remove "Slur_engraver"
926   \remove "Ligature_bracket_engraver"
927   \consists "Mensural_ligature_engraver"
928
929   %% Set default head for notes outside of \[ \].
930   \override NoteHead #'style = #'mensural
931   \override Rest #'style = #'mensural
932
933   %% There are no beams in mensural notation.
934   autoBeaming = ##f
935 }
936
937 \context {
938   \Staff
939   \name "MensuralStaff"
940   \alias "Staff"
941   \denies "Voice"
942   \defaultchild "MensuralVoice"
943   \accepts "MensuralVoice"
944   \description "Same as @code{Staff} context, except that it is
945 accommodated for typesetting a piece in mensural style."
946
947   \consists "Custos_engraver"
948
949   %% We can not remove Bar_engraver; otherwise clefs and custodes will
950   %% not show up any more among other line breaking issues.
951   %% Instead, we make the grob transparent.
952   \override BarLine #'transparent = ##t
953
954   \override StaffSymbol #'thickness = #0.6
955
956   %% FIXME: unit on StaffSymbol's width should be \linewidth.
957   %% \override StaffSymbol #'width = #60.0
958
959   %% Choose mensural g clef on 2nd line as default.
960   clefGlyph = #"clefs.mensural.g"
961   middleCClefPosition = #-6
962   middleCPosition = #-6
963   clefPosition = #-2
964   clefOctavation = #0
965
966   %% Select mensural style font.
967   \override TimeSignature #'style = #'mensural
968   \override KeySignature #'glyph-name-alist = #alteration-mensural-glyph-name-alist
969   \override Accidental #'glyph-name-alist = #alteration-mensural-glyph-name-alist
970   \override Custos #'style = #'mensural
971   \override Custos #'neutral-position = #3
972   \override Custos #'neutral-direction = #DOWN
973
974   %% Accidentals are valid only once (same as
975   %% #(set-accidental-style 'forget))
976   extraNatural = ##f
977   autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave -1))
978   autoCautionaries = #'()
979   printKeyCancellation = ##f
980 }
981
982
983 RemoveEmptyRhythmicStaffContext= \context {
984   \RhythmicStaff
985   \remove "Axis_group_engraver"
986   \override VerticalAxisGroup #'remove-empty = ##t
987   \consists "Hara_kiri_engraver"
988 }