]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
Compile fix.
[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   %% make the Stems as short as possible to minimize their influence 
718   %% on the slur::calc-control-points routine
719   \override Stem #'length = #0
720   \override Stem #'no-stem-extend = ##t
721   \override Stem #'flag-style = #'no-flag
722   \override Stem #'details = #'((lengths 0 0 0 0 0 0)
723                                 (beamed-lengths 0 0 0)
724                                 (beamed-minimum-free-lengths 0 0 0)
725                                 (beamed-extreme-minimum-free-lengths 0 0)
726                                 (stem-shorten 0 0))
727   %% after all, the stubs of the stems may still be visible, so ...
728   \override Stem #'transparent = ##t
729   %% automatic beams should be suppressed for similar reasons ...
730   autoBeaming = ##f
731   %% ... and we ignore collision warnings that may occur due to
732   %% stem overlapping ...
733   \override NoteColumn #'ignore-collision = ##t
734   %% remove beams, dots and rests ...
735   \override Beam #'stencil = ##f
736   \override Dots #'stencil = ##f
737   \override Rest #'stencil = ##f
738   \override MultiMeasureRest #'stencil = ##f
739   %% ... all kinds of ties/slurs
740   \override Tie  #'stencil = ##f
741   \override RepeatTie #'stencil = ##f
742   \override LaissezVibrerTie #'stencil = ##f
743   \override Slur #'stencil = #slur::draw-tab-slur
744   \override PhrasingSlur #'stencil = ##f
745   %% 'tied to' fret numbers become invisible or parenthesized, respectively)
746   \override Tie #'after-line-breaking = #tie::handle-tab-note-head
747   \override RepeatTie #'after-line-breaking = #repeat-tie::handle-tab-note-head
748   %% ... and all kinds of markups, spanners etc.
749   \override TupletBracket #'stencil = ##f
750   \override TupletNumber #'stencil = ##f
751   \override DynamicText #'transparent = ##t
752   \override DynamicTextSpanner #'stencil = ##f
753   \override TextSpanner #'stencil = ##f
754   \override Hairpin #'transparent = ##t
755   \override Script #'stencil = ##f
756   \override TextScript #'stencil = ##f
757   %% the direction for glissando lines will be automatically corrected
758   \override Glissando #'extra-dy = #glissando::calc-tab-extra-dy
759   \override Glissando #'bound-details #'right = #`((attach-dir . ,LEFT)
760                                                    (padding . 0.3))
761   \override Glissando #'bound-details #'left = #`((attach-dir . ,RIGHT)
762                                                    (padding . 0.3))
763   %% dead notes
764   \override TabNoteHead #'glyph-name = #tab-note-head::calc-glyph-name
765   \override TabNoteHead #'stencil = #tab-note-head::whiteout-if-style-set
766 }
767
768 \context {
769   \Staff
770   \alias "Staff"
771   \name "TabStaff"
772   \denies "Voice"
773   \consists "Tab_staff_symbol_engraver"
774
775   \description "Context for generating tablature. [DOCME]"
776
777   \accepts "TabVoice"
778   \defaultchild "TabVoice"
779
780   %% 6 strings
781   \override StaffSymbol #'staff-space = #1.5
782
783   %% Don't draw stems over the tablature figures !
784   \override Stem #'avoid-note-head = ##t
785
786   %% No accidental in tablature !
787   \remove "Accidental_engraver"
788   \remove "Key_engraver"
789   \remove "String_number_engraver"
790   %% the clef handler
791   \override Clef #'stencil = #clef::print-modern-tab-if-set
792   %% no time signature
793   \override TimeSignature #'stencil = ##f
794   %% better parentheses in a TabStaff
795   \override ParenthesesItem #'stencils = #parentheses-item::calc-tabstaff-parenthesis-stencils
796   %% no arpeggios
797   \override Arpeggio #'stencil = ##f
798   %% Special "TAB" clef
799   clefGlyph = #"clefs.tab"
800   clefPosition = #0
801 }
802
803 \context {
804   \Voice
805   \name "VaticanaVoice"
806   \alias "Voice"
807   \description "Same as @code{Voice} context, except that it is
808 accommodated for typesetting Gregorian Chant in the notational style
809 of Editio Vaticana."
810
811   \remove "Slur_engraver"
812   \remove "Stem_engraver"
813   \remove "Ligature_bracket_engraver"
814   \consists "Vaticana_ligature_engraver"
815
816   %% Set default head for notes outside of \[ \].
817   \override NoteHead #'style = #'vaticana.punctum
818
819   %% Put some space before and after divisiones.
820   %% FIXME: This does not seem to show any effect.
821   \override Script #'padding = #0.5
822
823   %% There are no beams in Gregorian Chant notation.
824   autoBeaming = ##f
825
826   %% Prepare TextSpanner for \episem{Initium|Finis} use.
827   %%
828   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
829   %% required to force the articulation signs being placed vertically
830   %% tightly to the correpsonding note heads.
831   %%
832   \override TextSpanner #'style = #'line
833   \override TextSpanner #'padding = #-0.1
834 }
835
836 \context {
837   \Staff
838   \name "VaticanaStaff"
839   \alias "Staff"
840   \denies "Voice"
841   \accepts "VaticanaVoice"
842   \defaultchild "VaticanaVoice"
843
844   \description "Same as @code{Staff} context, except that it is
845 accommodated for typesetting Gregorian Chant in the notational style
846 of Editio Vaticana."
847
848   \remove "Time_signature_engraver"
849   \consists "Custos_engraver"
850
851   %% We can not remove Bar_engraver; otherwise clefs and custodes will
852   %% not show up any more among other line breaking issues.
853   %% Instead, we make the grob transparent.
854   \override BarLine #'transparent = ##t
855
856   \override StaffSymbol #'line-count = #4
857   \override StaffSymbol #'thickness = #0.6
858
859   %% FIXME: unit on StaffSymbol's width should be \linewidth.
860   %% \override StaffSymbol #'width = #60.0
861
862   %% Choose vaticana do clef on 3rd line as default.
863   clefGlyph = #"clefs.vaticana.do"
864   middleCPosition = #1
865   middleCClefPosition = #1
866   clefPosition = #1
867   clefOctavation = #0
868
869   %% Select vaticana style font.
870   \override KeySignature #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
871   \override Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
872   \override Custos #'style = #'vaticana
873   \override Custos #'neutral-position = #3
874   \override Custos #'neutral-direction = #DOWN
875   \override Dots #'style = #'vaticana
876 }
877
878 \context {
879   \Voice
880   \name "GregorianTranscriptionVoice"
881   \alias "Voice"
882
883   %% Removing ligature bracket engraver without replacing it by some
884   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
885   %% warning for every "\[" and "\]".  Therefore, we make the grob
886   %% transparent instead.
887   \override LigatureBracket #'transparent = ##t
888
889   %% Put some space before and after divisiones.
890   %% FIXME: This does not seem to show any effect.
891   \override Script #'padding = #0.5
892
893   %% There are no beams in Gregorian Chant notation.
894   autoBeaming = ##f
895
896   %% Prepare TextSpanner for \episem{Initium|Finis} use.
897   %%
898   %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
899   %% always produce dashed lines, regardless of the style property.
900   %%
901   %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
902   %% required to force the articulation signs being placed vertically
903   %% tightly to the correpsonding note heads.
904   %%
905   \override TextSpanner #'dash-fraction = #'()
906   \override TextSpanner #'style = #'line
907   \override TextSpanner #'padding = #-0.1
908 }
909
910 \context {
911   \Staff
912   \name "GregorianTranscriptionStaff"
913   \alias "Staff"
914   \denies "Voice"
915   \accepts "GregorianTranscriptionVoice"
916   \defaultchild "GregorianTranscriptionVoice"
917
918   %% We can not remove Bar_engraver; otherwise clefs and custodes will
919   %% not show up any more among other line breaking issues.
920   %% Instead, we make the grob transparent.
921   \override BarLine #'transparent = ##t
922 }
923
924 \context {
925   \Voice
926   \name "MensuralVoice"
927   \alias "Voice"
928   \description "Same as @code{Voice} context, except that it is
929 accommodated for typesetting a piece in mensural style."
930
931   \remove "Slur_engraver"
932   \remove "Ligature_bracket_engraver"
933   \consists "Mensural_ligature_engraver"
934
935   %% Set default head for notes outside of \[ \].
936   \override NoteHead #'style = #'mensural
937   \override Rest #'style = #'mensural
938
939   %% There are no beams in mensural notation.
940   autoBeaming = ##f
941 }
942
943 \context {
944   \Staff
945   \name "MensuralStaff"
946   \alias "Staff"
947   \denies "Voice"
948   \defaultchild "MensuralVoice"
949   \accepts "MensuralVoice"
950   \description "Same as @code{Staff} context, except that it is
951 accommodated for typesetting a piece in mensural style."
952
953   \consists "Custos_engraver"
954
955   %% We can not remove Bar_engraver; otherwise clefs and custodes will
956   %% not show up any more among other line breaking issues.
957   %% Instead, we make the grob transparent.
958   \override BarLine #'transparent = ##t
959
960   \override StaffSymbol #'thickness = #0.6
961
962   %% FIXME: unit on StaffSymbol's width should be \linewidth.
963   %% \override StaffSymbol #'width = #60.0
964
965   %% Choose mensural g clef on 2nd line as default.
966   clefGlyph = #"clefs.mensural.g"
967   middleCClefPosition = #-6
968   middleCPosition = #-6
969   clefPosition = #-2
970   clefOctavation = #0
971
972   %% Select mensural style font.
973   \override TimeSignature #'style = #'mensural
974   \override KeySignature #'glyph-name-alist = #alteration-mensural-glyph-name-alist
975   \override Accidental #'glyph-name-alist = #alteration-mensural-glyph-name-alist
976   \override Custos #'style = #'mensural
977   \override Custos #'neutral-position = #3
978   \override Custos #'neutral-direction = #DOWN
979
980   %% Accidentals are valid only once (same as
981   %% #(set-accidental-style 'forget))
982   extraNatural = ##f
983   autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave -1))
984   autoCautionaries = #'()
985   printKeyCancellation = ##f
986 }
987
988
989 RemoveEmptyRhythmicStaffContext= \context {
990   \RhythmicStaff
991   \remove "Axis_group_engraver"
992   \override VerticalAxisGroup #'remove-empty = ##t
993   \consists "Hara_kiri_engraver"
994 }