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