]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
Doc-es: fix repeated word.
[lilypond.git] / ly / engraver-init.ly
1 %%%% This file is part of LilyPond, the GNU music typesetter.
2 %%%%
3 %%%% Copyright (C) 1996--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
4 %%%%                          Jan Nieuwenhuizen <janneke@gnu.org>
5 %%%%
6 %%%% LilyPond is free software: you can redistribute it and/or modify
7 %%%% it under the terms of the GNU General Public License as published by
8 %%%% the Free Software Foundation, either version 3 of the License, or
9 %%%% (at your option) any later version.
10 %%%%
11 %%%% LilyPond is distributed in the hope that it will be useful,
12 %%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
13 %%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 %%%% GNU General Public License for more details.
15 %%%%
16 %%%% You should have received a copy of the GNU General Public License
17 %%%% along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
18
19 \version "2.15.20"
20
21 \context {
22   \name "Global"
23
24   \accepts "Score"
25
26   \defaultchild "Score"
27   \description "Hard coded entry point for LilyPond.  Cannot be tuned."
28   \grobdescriptions #all-grob-descriptions
29   EventClasses = #all-event-classes
30 }
31
32 \context {
33   \type "Engraver_group"
34   \name "FretBoards"
35   \description "A context for displaying fret diagrams."
36
37   \consists "Fretboard_engraver"
38   \consists "Output_property_engraver"
39   \consists "Hara_kiri_engraver"
40   \consists "Separating_line_group_engraver"
41   \consists "Font_size_engraver"
42   \consists "Instrument_name_engraver"
43
44   %% explicitly set instrument, so it is not inherited from the parent
45   instrumentName = #'()
46   shortInstrumentName = #'()
47
48   predefinedDiagramTable = #default-fret-table
49   handleNegativeFrets = #'recalculate
50   restrainOpenStrings = ##f
51 }
52
53 \context {
54   \type "Engraver_group"
55   \name "Staff"
56
57   \consists "Output_property_engraver"
58   \consists "Bar_engraver"
59   \consists "Pure_from_neighbor_engraver"
60   %% Bar_engraver must be first so default bars aren't overwritten
61   %% with empty ones.
62
63   \consists "Font_size_engraver"
64   \consists "Separating_line_group_engraver"
65   \consists "Dot_column_engraver"
66   \consists "Staff_collecting_engraver"
67
68  %% perhaps move to Voice context?
69   \consists "Ottava_spanner_engraver"
70   \consists "Clef_engraver"
71   \consists "Key_engraver"
72   \consists "Time_signature_engraver"
73   \consists "Ledger_line_engraver"
74   \consists "Staff_symbol_engraver"
75   \consists "Collision_engraver"
76   \consists "Grob_pq_engraver"
77   \consists "Rest_collision_engraver"
78   \consists "Accidental_engraver"
79   \consists "Piano_pedal_engraver"
80   \consists "Piano_pedal_align_engraver"
81   \consists "Instrument_name_engraver"
82   \consists "Axis_group_engraver"
83   \consists "Figured_bass_engraver"
84   \consists "Figured_bass_position_engraver"
85   \consists "Script_row_engraver"
86   \consists "Cue_clef_engraver"
87
88   localKeySignature = #'()
89   createSpacing = ##t
90   ignoreFiguredBassRest = ##f
91
92   %% explicitly set instrument, so we don't get
93   %% weird effects when doing instrument names for
94   %% piano staves
95   instrumentName = #'()
96   shortInstrumentName = #'()
97
98   \defaultchild "Voice"
99   \accepts "Voice"
100   \accepts "CueVoice"
101
102   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
103 @code{Voice} contexts."
104
105 }
106
107 \context {
108   \Staff
109   \type "Engraver_group"
110   \name "DrumStaff"
111   \alias "Staff"
112
113   \remove "Accidental_engraver"
114   \remove "Ottava_spanner_engraver"
115   \remove "Key_engraver"
116   \remove "Piano_pedal_engraver"
117
118   \description "Handles typesetting for percussion."
119
120   \denies "Voice"
121   \accepts "DrumVoice"
122   \defaultchild "DrumVoice"
123
124   clefGlyph = #"clefs.percussion"
125   clefPosition = #0
126   \override Script #'staff-padding = #0.75
127 }
128
129
130 \context {
131   \type "Engraver_group"
132   \name "ChoirStaff"
133   \consists "Vertical_align_engraver"
134   topLevelAlignment = ##f
135
136   \consists "Instrument_name_engraver"
137   \consists "System_start_delimiter_engraver"
138   systemStartDelimiter = #'SystemStartBracket
139   %% explicitly set instrument, so it is not inherited from the parent
140   instrumentName = #'()
141   shortInstrumentName = #'()
142   vocalName = #'()
143   shortVocalName = #'()
144
145   \accepts "Staff"
146   \accepts "DrumStaff"
147   \accepts "RhythmicStaff"
148   \accepts "GrandStaff"
149   \accepts "PianoStaff"
150   \accepts "Lyrics"
151   \accepts "ChordNames"
152   \accepts "FiguredBass"
153   \accepts "ChoirStaff"
154   \accepts "StaffGroup"
155   \defaultchild "Staff"
156   \description "Identical to @code{StaffGroup} except that the
157 contained staves are not connected vertically."
158 }
159
160 \context{
161   \type "Engraver_group"
162
163   localKeySignature = #'()
164   createSpacing = ##t
165
166   squashedPosition = #0
167   \name RhythmicStaff
168   \alias "Staff"
169
170   \override BarLine #'bar-extent = #'(-2 . 2)
171   \override VoltaBracket #'staff-padding = #3
172   \override StaffSymbol #'line-count = #1
173
174   \override Stem  #'neutral-direction = #UP
175   \override Beam  #'neutral-direction = #UP
176
177   \consists "Output_property_engraver"
178   \consists "Font_size_engraver"
179   \consists "Separating_line_group_engraver"
180   \consists "Dot_column_engraver"
181   \consists "Bar_engraver"
182   \consists "Staff_symbol_engraver"
183   \consists "Pitch_squash_engraver"
184   \consists "Time_signature_engraver"
185   \consists "Instrument_name_engraver"
186   \consists "Axis_group_engraver"
187   \consists "Ledger_line_engraver"
188
189   %% explicitly set instrument, so it is not inherited from the parent
190   instrumentName = #'()
191   shortInstrumentName = #'()
192
193   \accepts "Voice"
194   \accepts "CueVoice"
195   \defaultchild "Voice"
196
197   \description "A context like @code{Staff} but for printing rhythms.
198 Pitches are ignored; the notes are printed on one line."
199 }
200
201
202 \context {
203   \type "Engraver_group"
204   \name "Voice"
205
206   \description "Corresponds to a voice on a staff.  This context
207 handles the conversion of dynamic signs, stems, beams, super- and
208 subscripts, slurs, ties, and rests.
209
210 You have to instantiate this explicitly if you want to have
211 multiple voices on the same staff."
212
213   \consists "Font_size_engraver"
214
215   \consists "Pitched_trill_engraver"
216   \consists "Output_property_engraver"
217   \consists "Arpeggio_engraver"
218   \consists "Multi_measure_rest_engraver"
219   \consists "Text_spanner_engraver"
220   \consists "Trill_spanner_engraver"
221   \consists "Grob_pq_engraver"
222   \consists "Forbid_line_break_engraver"
223   \consists "Laissez_vibrer_engraver"
224   \consists "Repeat_tie_engraver"
225   \consists "Note_head_line_engraver"
226   \consists "Glissando_engraver"
227   \consists "Ligature_bracket_engraver"
228   \consists "Breathing_sign_engraver"
229   \consists "Note_heads_engraver"
230   \consists "Dots_engraver"
231   \consists "Rest_engraver"
232   \consists "Tweak_engraver"
233   \consists "Footnote_engraver"
234
235   %% switch on to make stem directions interpolate for the
236   %% center line.
237   %  \consists "Melody_engraver"
238
239   \consists "Stem_engraver"
240   \consists "Beam_engraver"
241   \consists "Grace_beam_engraver"
242   \consists "Auto_beam_engraver"
243
244   %% must come before Script_column_engraver.
245   \consists "New_fingering_engraver"
246
247   \consists "Chord_tremolo_engraver"
248   \consists "Double_percent_repeat_engraver"
249   \consists "Percent_repeat_engraver"
250   \consists "Slash_repeat_engraver"
251   \consists "Part_combine_engraver"
252
253   \consists "Text_engraver"
254   \consists "New_dynamic_engraver"
255   \consists "Dynamic_align_engraver"
256 %  \consists "Dynamic_engraver"
257   \consists "Fingering_engraver"
258   \consists "Bend_engraver"
259
260   \consists "Script_engraver"
261   \consists "Script_column_engraver"
262   \consists "Rhythmic_column_engraver"
263   \consists "Note_spacing_engraver"
264   \consists "Spanner_break_forbid_engraver"
265   \consists "Phrasing_slur_engraver"
266   \consists "Cluster_spanner_engraver"
267   \consists "Slur_engraver"
268   \consists "Tie_engraver"
269   \consists "Tuplet_engraver"
270   \consists "Grace_engraver"
271   \consists "Instrument_switch_engraver"
272 }
273
274 \context{
275   \Voice
276
277   \name CueVoice
278   \alias Voice
279   fontSize = #-4
280   \override Stem #'length-fraction = #(magstep -4)
281   \override Beam #'length-fraction = #(magstep -4)
282   \override Beam #'beam-thickness = #0.35
283 }
284
285 \context {
286   \Voice
287   \name DrumVoice
288   \alias Voice
289
290   \description "A voice on a percussion staff."
291   \remove "Arpeggio_engraver"
292   \consists "Grob_pq_engraver"
293
294   \remove "Note_head_line_engraver"
295   \remove "Glissando_engraver"
296   \remove "Ligature_bracket_engraver"
297   \remove "Note_heads_engraver"
298   \consists "Drum_notes_engraver"
299   \remove "New_fingering_engraver"
300
301   \remove "Fingering_engraver"
302
303   \remove "Cluster_spanner_engraver"
304 }
305
306 \context{
307   \type "Engraver_group"
308   \name GrandStaff
309   localKeySignature = #'()
310
311   \description "A group of staves, with a brace on the left
312 side, grouping the staves together.  The bar lines of the
313 contained staves are connected vertically."
314
315   \consists "Instrument_name_engraver"
316   \consists "Span_bar_engraver"
317   \consists "Span_bar_stub_engraver"
318   \consists "Span_arpeggio_engraver"
319   \consists "System_start_delimiter_engraver"
320   \consists "Vertical_align_engraver"
321   systemStartDelimiter = #'SystemStartBrace
322   topLevelAlignment = ##f
323   %% explicitly set instrument, so it is not inherited from the parent
324   instrumentName = #'()
325   shortInstrumentName = #'()
326
327   \defaultchild "Staff"
328   \accepts "Staff"
329   \accepts "RhythmicStaff"
330   \accepts "DrumStaff"
331   \accepts "TabStaff"
332   \accepts "Lyrics"
333   \accepts "FiguredBass"
334   \accepts "Dynamics"
335   \accepts "ChordNames"
336 }
337
338 \context{
339   \GrandStaff
340   \name "PianoStaff"
341   \alias "GrandStaff"
342
343   \description "Just like @code{GrandStaff}, but the staves are only removed
344 together, never separately."
345
346   \consists "Vertical_align_engraver"
347   \consists "Keep_alive_together_engraver"
348   topLevelAlignment = ##f
349
350   instrumentName = #'()
351   shortInstrumentName = #'()
352 }
353
354 \context {
355   \type "Engraver_group"
356   \name "StaffGroup"
357
358   \consists "Vertical_align_engraver"
359   topLevelAlignment = ##f
360
361   \consists "Instrument_name_engraver"
362   \consists "Span_bar_engraver"
363   \consists "Span_bar_stub_engraver"
364   \consists "Span_arpeggio_engraver"
365   \consists "Output_property_engraver"
366   systemStartDelimiter = #'SystemStartBracket
367   %% explicitly set instrument, so it is not inherited from the parent
368   instrumentName = #'()
369   shortInstrumentName = #'()
370
371   \consists "System_start_delimiter_engraver"
372
373   \defaultchild "Staff"
374   \accepts "Staff"
375   \accepts "RhythmicStaff"
376   \accepts "DrumStaff"
377   \accepts "GrandStaff"
378   \accepts "PianoStaff"
379   \accepts "TabStaff"
380   \accepts "Lyrics"
381   \accepts "ChordNames"
382   \accepts "FiguredBass"
383   \accepts "ChoirStaff"
384   \accepts "StaffGroup"
385
386   \description "Groups staves while adding a bracket on the left
387 side, grouping the staves together.  The bar lines of the contained
388 staves are connected vertically.  @code{StaffGroup} only consists of
389 a collection of staves, with a bracket in front and spanning bar lines."
390 }
391
392 \context {
393   \type "Engraver_group"
394   \name Dynamics
395   \alias Voice
396   \consists "Output_property_engraver"
397   \consists "Bar_engraver"
398   \consists "Piano_pedal_engraver"
399   \consists "Script_engraver"
400   \consists "New_dynamic_engraver"
401   \consists "Dynamic_align_engraver"
402   \consists "Text_engraver"
403   \consists "Text_spanner_engraver"
404   \consists "Axis_group_engraver"
405   \consists "Tweak_engraver"
406
407   pedalSustainStrings = #'("Ped." "*Ped." "*")
408   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
409   \override VerticalAxisGroup #'staff-affinity = #CENTER
410   \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing =
411     #'((basic-distance . 5)
412        (padding . 0.5))
413   \override TextScript #'font-shape = #'italic
414   \override DynamicLineSpanner #'Y-offset = #0
415   \override DynamicText #'X-offset =
416   #(ly:make-simple-closure
417     `(,+
418       ,(ly:make-simple-closure
419          (list ly:self-alignment-interface::centered-on-note-columns))
420       ,(ly:make-simple-closure
421         (list ly:self-alignment-interface::x-aligned-on-self))))
422
423   \description "Holds a single line of dynamics, which will be
424 centered between the staves surrounding this context."
425 }
426
427
428 \context{
429   \type "Engraver_group"
430
431   \description "Corresponds to a voice with lyrics.  Handles the
432 printing of a single line of lyrics."
433
434   \name "Lyrics"
435   \consists "Lyric_engraver"
436   \consists "Extender_engraver"
437   \consists "Hyphen_engraver"
438   \consists "Stanza_number_engraver"
439   \consists "Instrument_name_engraver"
440   \consists "Font_size_engraver"
441   \consists "Hara_kiri_engraver"
442   \consists "Pure_from_neighbor_engraver"
443   searchForVoice = ##f
444   %% explicitly set instrument, so it is not inherited from the parent
445   instrumentName = #'()
446   shortInstrumentName = #'()
447
448   \override VerticalAxisGroup #'remove-first = ##t
449   \override VerticalAxisGroup #'remove-empty = ##t
450   \override VerticalAxisGroup #'staff-affinity = #UP
451   \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing =
452     #'((basic-distance . 5.5)
453        (padding . 0.5)
454        (stretchability . 1))
455   \override VerticalAxisGroup #'nonstaff-nonstaff-spacing =
456      #'((basic-distance . 0)
457         (minimum-distance . 2.8)
458         (padding . 0.2)
459         (stretchability . 0))
460   \override VerticalAxisGroup #'nonstaff-unrelatedstaff-spacing #'padding = #1.5
461   \override InstrumentName #'self-alignment-Y = ##f
462
463   %% sync with define-grobs.scm ;
464   \override InstrumentName #'font-size = #1.0
465
466   %% make sure that barlines aren't collapsed, when
467   %% Bar_engraver is there.
468   \override BarLine #'bar-extent = #'(-0.05 . 0.05)
469
470 }
471
472 \context {
473   \type "Engraver_group"
474   \name NoteNames
475   \description "A context for printing the names of notes."
476   \consists "Axis_group_engraver"
477
478   \override VerticalAxisGroup #'staff-affinity = #UP
479   \override VerticalAxisGroup #'nonstaff-nonstaff-spacing =
480     #'((basic-distance . 0)
481        (minimum-distance . 2.8)
482        (padding . 0.2)
483        (stretchability . 0))
484   \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing =
485     #'((basic-distance . 5.5)
486        (padding . 0.5)
487        (stretchability . 1))
488   \override VerticalAxisGroup
489     #'nonstaff-unrelatedstaff-spacing #'padding = 1.5
490
491   \consists "Tie_engraver"
492   \consists "Note_name_engraver"
493   \consists "Separating_line_group_engraver"
494 }
495
496 \context {
497   \type "Engraver_group"
498   \name ChordNames
499   \description "Typesets chord names."
500
501   \consists "Output_property_engraver"
502   \consists "Separating_line_group_engraver"
503   \consists "Chord_name_engraver"
504   \consists "Hara_kiri_engraver"
505 %  \consists "Note_spacing_engraver"
506   \override VerticalAxisGroup #'remove-first = ##t
507   \override VerticalAxisGroup #'remove-empty = ##t
508   \override VerticalAxisGroup #'staff-affinity = #DOWN
509   \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing #'padding = #0.5
510   \override VerticalAxisGroup #'nonstaff-nonstaff-spacing #'padding = #0.5
511 }
512
513 \context {
514   \type "Score_engraver"
515   \name "Score"
516
517   \description "This is the top level notation context.  No
518 other context can contain a @code{Score} context.  This context
519 handles the administration of time signatures.  It also makes sure
520 that items such as clefs, time signatures, and key-signatures are
521 aligned across staves.
522
523 You cannot explicitly instantiate a @code{Score} context (since it
524 is not contained in any other context).  It is instantiated
525 automatically when an output definition (a @code{\score} or
526 @code{\layout} block) is processed."
527
528   \consists "Paper_column_engraver"
529   \consists "Repeat_acknowledge_engraver"
530   \consists "Staff_collecting_engraver"
531
532   \alias "Timing"
533
534   %% An alias for Timing is established by the Timing_translator in
535   %% whatever context it is initialized, and the timing variables are
536   %% then copied from wherever Timing had been previously established.
537   %% The alias at Score level provides a target for initializing
538   %% Timing variables in layout definitions before any
539   %% Timing_translator has been run.
540
541   % timing translator must come BEFORE bar number engraver
542   \consists "Timing_translator"
543   \consists "Default_bar_line_engraver"
544   \consists "Output_property_engraver"
545   \consists "System_start_delimiter_engraver"
546   \consists "Mark_engraver"
547   \consists "Volta_engraver"
548   \consists "Metronome_mark_engraver"
549   \consists "Break_align_engraver"
550   \consists "Spacing_engraver"
551   \consists "Grace_spacing_engraver"
552   \consists "Vertical_align_engraver"
553   \consists "Stanza_number_align_engraver"
554   \consists "Bar_number_engraver"
555   \consists "Parenthesis_engraver"
556   \consists "Concurrent_hairpin_engraver"
557   \consists "Beam_collision_engraver"
558
559   \defaultchild "Staff"
560
561   \accepts "FretBoards"
562   \accepts "Staff"
563   \accepts "RhythmicStaff"
564   \accepts "TabStaff"
565   \accepts "VaticanaStaff"
566   \accepts "GregorianTranscriptionStaff"
567   \accepts "MensuralStaff"
568   \accepts "PetrucciStaff"
569   \accepts "StaffGroup"
570   \accepts "DrumStaff"
571   \accepts "KievanStaff"
572   \accepts "Lyrics"
573   \accepts "ChordNames"
574   \accepts "GrandStaff"
575   \accepts "ChoirStaff"
576   \accepts "PianoStaff"
577   \accepts "Devnull"
578   \accepts "NoteNames"
579   \accepts "FiguredBass"
580
581   noteToFretFunction = #determine-frets
582   predefinedDiagramTable = ##f
583   soloText = #"Solo"
584   soloIIText = #"Solo II"
585   aDueText = #"a2"
586   printPartCombineTexts = ##t
587   partCombineTextsOnNote = ##t
588   systemStartDelimiter =#'SystemStartBar
589
590   drumStyleTable = #drums-style
591
592   melismaBusyProperties = #default-melisma-properties
593   tieWaitForNote = ##f
594   clefGlyph = #"clefs.G"
595   clefPosition = #-2
596   middleCClefPosition = #-6
597   middleCPosition = #-6
598   firstClef = ##t
599
600   crescendoSpanner = #'hairpin
601   decrescendoSpanner = #'hairpin
602
603   defaultBarType = #"|"
604   doubleRepeatType = #":|:"
605   barNumberVisibility = #first-bar-number-invisible-and-no-parenthesized-bar-numbers
606   barNumberFormatter = #robust-bar-number-function
607   automaticBars = ##t
608
609   explicitClefVisibility = #all-visible
610   explicitCueClefVisibility = #end-of-line-invisible
611   explicitKeySignatureVisibility = #all-visible
612   implicitTimeSignatureVisibility = #end-of-line-invisible
613
614   repeatCountVisibility = #all-repeat-counts-visible
615
616   timeSignatureSettings = #default-time-signature-settings
617   timeSignatureFraction = #'(4 . 4)
618
619 %% These defaults should be the same as the rules established in
620 %%   scm/time-signature-settings.scm for 4/4 time
621   measureLength = #(ly:make-moment 4 4)
622   baseMoment = #(ly:make-moment 1  4)
623   beatStructure = #'(1 1 1 1)
624   beamExceptions = #'((end . (((1 . 8) . (4 4))
625                               ((1 . 12) . (3 3 3 3)))))
626   beamWholeMeasure = ##t
627   beamHalfMeasure = ##f
628
629   autoBeaming = ##t
630   autoBeamCheck = #default-auto-beam-check
631
632   scriptDefinitions = #default-script-alist
633
634   pedalSustainStrings = #'("Ped." "*Ped." "*")
635   pedalSustainStyle = #'text
636   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
637   pedalUnaCordaStyle = #'text
638
639 %% These are in ordinary italic font, including the *,
640 %% but they are unlikely to be used,
641 %% as the default pedal-style for SostenutoPedal is 'mixed':
642 %% i.e.  Sost. Ped_____________________
643   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
644   pedalSostenutoStyle = #'mixed
645
646   harmonicAccidentals = ##t
647   fingeringOrientations = #'(up down)
648   stringNumberOrientations = #'(up down)
649   strokeFingerOrientations = #'(right)
650
651   lyricMelismaAlignment = #LEFT
652   markFormatter = #format-mark-letters
653   rehearsalMark = #1
654   subdivideBeams = ##f
655   extraNatural = ##t
656   autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0))
657   autoCautionaries = #'()
658
659   printKeyCancellation = ##t
660   keyAlterationOrder = #`(
661     (6 . ,FLAT) (2  . ,FLAT) (5 . ,FLAT ) (1  . ,FLAT) (4  . ,FLAT) (0  . ,FLAT) (3  . ,FLAT)
662     (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
663     (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
664     (3  . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (1 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
665   )
666
667   barCheckSynchronize = ##f
668
669 %% chord names:
670   chordNameFunction = #ignatzek-chord-names
671   minorChordModifier = #(make-simple-markup "m")
672   additionalPitchPrefix = #"" % was "add"
673   majorSevenSymbol = #whiteTriangleMarkup
674   chordNameLowercaseMinor = ##f
675   chordNameSeparator = #(make-hspace-markup 0.5)
676   slashChordSeparator = #(make-simple-markup "/")
677   chordNameExceptions = #ignatzekExceptions
678   chordNoteNamer = #'()
679   chordRootNamer = #note-name->markup
680   chordPrefixSpacer = #0
681   chordNameExceptionsFull = #fullJazzExceptions
682   chordNameExceptionsPartial = #partialJazzExceptions
683   noChordSymbol = #(make-simple-markup "N.C.")
684
685   bassStaffProperties = #'((assign clefGlyph "clefs.F")
686   (assign clefPosition 2)
687   (assign middleCPosition 6)
688   (assign middleCClefPosition 6))
689 %% tablature:
690   stringOneTopmost = ##t
691   highStringOne = ##t
692
693 %% One may change the string tunings as follows :
694 %% The length of the list must be equal to the number of strings
695   stringTunings = #guitar-tuning
696   tablatureFormat = #fret-number-tablature-format
697   tabStaffLineLayoutFunction = #tablature-position-on-lines
698
699 %%
700   figuredBassFormatter = #format-bass-figure
701   metronomeMarkFormatter = #format-metronome-markup
702
703
704   %% See also make-voice-props-set
705   graceSettings = #`(
706     (Voice Stem direction ,UP)
707     (Voice Stem font-size -3)
708     (Voice Flag font-size -3)
709     (Voice NoteHead font-size -3)
710     (Voice TabNoteHead font-size -4)
711     (Voice Dots font-size -3)
712     (Voice Stem length-fraction 0.8)
713     (Voice Stem no-stem-extend #t)
714     (Voice Beam beam-thickness 0.384)
715     (Voice Beam length-fraction 0.8)
716     (Voice Accidental font-size -4)
717     (Voice AccidentalCautionary font-size -4)
718     (Voice Slur direction ,DOWN)
719     (Voice Script font-size -3)
720     (Voice Fingering font-size -8)
721     (Voice StringNumber font-size -8)
722   )
723
724   keepAliveInterfaces = #'(
725     bass-figure-interface
726     chord-name-interface
727     cluster-beacon-interface
728     fret-diagram-interface
729     lyric-syllable-interface
730     note-head-interface
731     tab-note-head-interface
732     lyric-interface
733     percent-repeat-item-interface
734     percent-repeat-interface
735
736     ;; need this, as stanza numbers are items, and appear only once.
737     stanza-number-interface
738   )
739   % \quoteDuring is supposed to quote everything, cueDuring only the essentials
740   quotedEventTypes = #'(StreamEvent)
741   quotedCueEventTypes = #'(
742     note-event
743     rest-event
744     tie-event
745     beam-event
746     tuplet-span-event)
747   instrumentTransposition = #(ly:make-pitch 0 0 0)
748
749   topLevelAlignment = ##t
750
751   timing = ##t
752 }
753
754
755
756
757 \context {
758   \type "Engraver_group"
759   \name "FiguredBass"
760   \description "A context for printing a figured bass line."
761
762   \consists "Figured_bass_engraver"
763   \consists "Separating_line_group_engraver"
764   \consists "Hara_kiri_engraver"
765
766   \override VerticalAxisGroup #'remove-empty = ##t
767   \override VerticalAxisGroup #'remove-first = ##t
768   \override VerticalAxisGroup #'staff-affinity = #UP
769   \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing #'padding = #0.5
770   \override VerticalAxisGroup #'nonstaff-nonstaff-spacing #'padding = #0.5
771 }
772
773 \context {
774   \name "Devnull"
775   \type "Engraver_group"
776
777 %% don't want to route anything out of here:
778   \alias "Staff"
779   \alias "Voice"
780   \description "Silently discards all musical information given to this
781 context."
782 }
783
784 \context {
785   \Voice
786   \name "TabVoice"
787   \alias "Voice"
788   \consists "Tab_note_heads_engraver"
789   \consists "Tab_tie_follow_engraver"
790
791   \remove "Note_heads_engraver"
792   \remove "Fingering_engraver"
793   \remove "New_fingering_engraver"
794   \remove "Pitched_trill_engraver"
795
796   \description "Context for drawing notes in a Tab staff."
797
798   %% TabStaff increase the staff-space, which in turn
799   %% increases beam thickness and spacing; beams are
800   %% too big. We have to adjust the beam settings:
801   \override Beam #'beam-thickness = #0.32
802   \override Beam #'length-fraction = #0.62
803   %% the same goes for tremolo beams
804   \override StemTremolo #'beam-thickness = #0.32
805   %% NOTE: in lily/stem-tremolo.cc, we have length-fraction = 1,
806   %% and the tablature staff space is scaled (1.5 by default),
807   %% so we use the inversion of the scale factor:
808   \override StemTremolo #'length-fraction = #(lambda (grob)
809                                                (/ 1 (ly:staff-symbol-staff-space grob)))
810   \override StemTremolo #'beam-width = #stem-tremolo::calc-tab-width
811
812   %% No accidental in tablature !
813   \remove "Accidental_engraver"
814   %% make the Stems as short as possible to minimize their influence
815   %% on the slur::calc-control-points routine
816   \override Stem #'no-stem-extend = ##t
817   \override Flag #'style = #'no-flag
818   \override Stem #'details = #'((lengths 0 0 0 0 0 0)
819                                 (beamed-lengths 0 0 0)
820                                 (beamed-minimum-free-lengths 0 0 0)
821                                 (beamed-extreme-minimum-free-lengths 0 0)
822                                 (stem-shorten 0 0))
823   %% after all, the stubs of the stems may still be visible, so ...
824   \override Stem #'stencil = ##f
825   \override Flag #'stencil = ##f
826   %% automatic beams should be suppressed for similar reasons ...
827   autoBeaming = ##f
828   %% remove beams, dots and rests ...
829   \override Beam #'stencil = ##f
830   \override StemTremolo #'stencil = ##f
831   \override Dots #'stencil = ##f
832   \override Rest #'stencil = ##f
833   \override MultiMeasureRest #'stencil = ##f
834   \override MultiMeasureRestNumber #'stencil = ##f
835   \override MultiMeasureRestText #'stencil = ##f
836   %% ... all kinds of ties/slurs
837   \override Tie  #'stencil = ##f
838   \override RepeatTie #'stencil = ##f
839   \override LaissezVibrerTie #'stencil = ##f
840   \override Slur #'stencil = #slur::draw-tab-slur
841   \override PhrasingSlur #'stencil = ##f
842   %% 'tied to' fret numbers become invisible or parenthesized, respectively)
843   \override Tie #'after-line-breaking = #tie::handle-tab-note-head
844   \override RepeatTie #'after-line-breaking = #repeat-tie::handle-tab-note-head
845   %% ... and all kinds of markups, spanners etc.
846   \override TupletBracket #'stencil = ##f
847   \override TupletNumber #'stencil = ##f
848   \override DynamicText #'stencil = ##f
849   \override DynamicTextSpanner #'stencil = ##f
850   \override TextSpanner #'stencil = ##f
851   \override Hairpin #'stencil = ##f
852   \override Script #'stencil = ##f
853   \override TextScript #'stencil = ##f
854   \override Glissando #'stencil = #glissando::draw-tab-glissando
855   %% the direction for glissando lines will be automatically corrected
856   \override Glissando #'extra-dy = #glissando::calc-tab-extra-dy
857   \override Glissando #'bound-details #'right = #`((attach-dir . ,LEFT)
858                                                    (padding . 0.3))
859   \override Glissando #'bound-details #'left = #`((attach-dir . ,RIGHT)
860                                                    (padding . 0.3))
861   %% dead notes
862   \override TabNoteHead #'glyph-name = #tab-note-head::calc-glyph-name
863   \override TabNoteHead #'stencil = #tab-note-head::whiteout-if-style-set
864 }
865
866 \context {
867   \Staff
868   \alias "Staff"
869   \name "TabStaff"
870   \denies "Voice"
871   \consists "Tab_staff_symbol_engraver"
872
873   \description "Context for generating tablature. It accepts only @code{TabVoice}
874 contexts and handles the line spacing, the tablature clef etc. properly."
875
876   \accepts "TabVoice"
877   \defaultchild "TabVoice"
878
879   %% 6 strings, bigger spacing
880   \override StaffSymbol #'staff-space = #1.5
881
882   %% Don't draw stems over the tablature figures !
883   \override Stem #'avoid-note-head = ##t
884
885   %% No accidental in tablature !
886   \remove "Accidental_engraver"
887   \remove "Key_engraver"
888
889   \remove "Ottava_spanner_engraver"
890   %% the clef handler
891   \override Clef #'stencil = #clef::print-modern-tab-if-set
892   %% no time signature
893   \override TimeSignature #'stencil = ##f
894   %% no arpeggios
895   \override Arpeggio #'stencil = ##f
896   %% we ignore collision warnings that may occur due to
897   %% stem overlapping, because we have no stems ;-)
898   \override NoteColumn #'ignore-collision = ##t
899   %% Special "TAB" clef
900   clefGlyph = #"clefs.tab"
901   clefPosition = #0
902   %% Change string if note results in negative fret number
903   handleNegativeFrets = #'recalculate
904   %% Allow open strings even if minimumFret is set
905   restrainOpenStrings = ##f
906 }
907
908 \context {
909   \Voice
910   \name "VaticanaVoice"
911   \alias "Voice"
912   \description "Same as @code{Voice} context, except that it is
913 accommodated for typesetting Gregorian Chant in the notational style
914 of Editio Vaticana."
915
916   \remove "Slur_engraver"
917   \remove "Stem_engraver"
918   \remove "Ligature_bracket_engraver"
919   \consists "Vaticana_ligature_engraver"
920   \remove "Text_spanner_engraver"
921   \consists "Episema_engraver"
922
923   %% Set default head for notes outside of \[ \].
924   \override NoteHead #'style = #'vaticana.punctum
925
926   %% Put some space before and after divisiones.
927   %% FIXME: This does not seem to show any effect.
928   \override Script #'padding = #0.5
929
930   %% There are no beams in Gregorian Chant notation.
931   autoBeaming = ##f
932 }
933
934 \context {
935   \Staff
936   \name "VaticanaStaff"
937   \alias "Staff"
938   \denies "Voice"
939   \accepts "VaticanaVoice"
940   \defaultchild "VaticanaVoice"
941
942   \description "Same as @code{Staff} context, except that it is
943 accommodated for typesetting Gregorian Chant in the notational style
944 of Editio Vaticana."
945
946   \remove "Time_signature_engraver"
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 #'line-count = #4
955   \override StaffSymbol #'thickness = #0.6
956
957   %% FIXME: unit on StaffSymbol's width should be \linewidth.
958   %% \override StaffSymbol #'width = #60.0
959
960   %% Choose vaticana do clef on 3rd line as default.
961   clefGlyph = #"clefs.vaticana.do"
962   middleCPosition = #1
963   middleCClefPosition = #1
964   clefPosition = #1
965   clefOctavation = #0
966
967   %% Select vaticana style font.
968   \override KeySignature #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
969   \override Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
970   \override Custos #'style = #'vaticana
971   \override Custos #'neutral-position = #3
972   \override Custos #'neutral-direction = #DOWN
973   \override Dots #'style = #'vaticana
974 }
975
976 \context {
977   \Voice
978   \name "GregorianTranscriptionVoice"
979   \alias "Voice"
980   \consists "Episema_engraver"
981
982   %% Removing ligature bracket engraver without replacing it by some
983   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
984   %% warning for every "\[" and "\]".  Therefore, we make the grob
985   %% transparent instead.
986   \override LigatureBracket #'transparent = ##t
987
988   %% Put some space before and after divisiones.
989   %% FIXME: This does not seem to show any effect.
990   \override Script #'padding = #0.5
991
992   %% There are no beams in Gregorian Chant notation.
993   autoBeaming = ##f
994
995 }
996
997 \context {
998   \Staff
999   \name "GregorianTranscriptionStaff"
1000   \alias "Staff"
1001   \denies "Voice"
1002   \accepts "GregorianTranscriptionVoice"
1003   \defaultchild "GregorianTranscriptionVoice"
1004
1005   %% We can not remove Bar_engraver; otherwise clefs and custodes will
1006   %% not show up any more among other line breaking issues.
1007   %% Instead, we make the grob transparent.
1008   \override BarLine #'transparent = ##t
1009 }
1010
1011 \context {
1012   \Voice
1013   \name "MensuralVoice"
1014   \alias "Voice"
1015   \description "Same as @code{Voice} context, except that it is
1016 accommodated for typesetting a piece in mensural style."
1017
1018   \remove "Slur_engraver"
1019   \remove "Ligature_bracket_engraver"
1020   \consists "Mensural_ligature_engraver"
1021
1022   %% Set default head for notes outside of \[ \].
1023   \override NoteHead #'style = #'mensural
1024   \override Rest #'style = #'mensural
1025   \override Flag #'style = #'mensural
1026
1027   %% There are no beams in mensural notation.
1028   autoBeaming = ##f
1029 }
1030
1031 \context {
1032   \Staff
1033   \name "MensuralStaff"
1034   \alias "Staff"
1035   \denies "Voice"
1036   \defaultchild "MensuralVoice"
1037   \accepts "MensuralVoice"
1038   \description "Same as @code{Staff} context, except that it is
1039 accommodated for typesetting a piece in mensural style."
1040
1041   \consists "Custos_engraver"
1042
1043   %% We can not remove Bar_engraver; otherwise clefs and custodes will
1044   %% not show up any more among other line breaking issues.
1045   %% Instead, we make the grob transparent.
1046   \override BarLine #'transparent = ##t
1047
1048   \override StaffSymbol #'thickness = #0.6
1049
1050   %% FIXME: unit on StaffSymbol's width should be \linewidth.
1051   %% \override StaffSymbol #'width = #60.0
1052
1053   %% Choose mensural g clef on 2nd line as default.
1054   clefGlyph = #"clefs.mensural.g"
1055   middleCClefPosition = #-6
1056   middleCPosition = #-6
1057   clefPosition = #-2
1058   clefOctavation = #0
1059
1060   %% Select mensural style font.
1061   \override TimeSignature #'style = #'mensural
1062   \override KeySignature #'glyph-name-alist = #alteration-mensural-glyph-name-alist
1063   \override Accidental #'glyph-name-alist = #alteration-mensural-glyph-name-alist
1064   \override Custos #'style = #'mensural
1065   \override Custos #'neutral-position = #3
1066   \override Custos #'neutral-direction = #DOWN
1067
1068   %% Accidentals are valid only once (same as
1069   %% \accidentalStyle "forget")
1070   extraNatural = ##f
1071   autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave -1))
1072   autoCautionaries = #'()
1073   printKeyCancellation = ##f
1074 }
1075
1076 \context {
1077   \Voice
1078   \name "PetrucciVoice"
1079   \alias "Voice"
1080   \description "Same as @code{Voice} context, except that it is
1081 accommodated for typesetting a piece in Petrucci style."
1082
1083   \remove "Ligature_bracket_engraver"
1084   \consists "Mensural_ligature_engraver"
1085
1086   %% Set glyph styles.
1087   \override NoteHead #'style = #'petrucci
1088   \override Rest #'style = #'mensural
1089
1090   % Thickens and shortens stems.
1091   \override Stem #'thickness = #1.7
1092   \override Stem #'length = #5
1093
1094   %% There are no beams in Petrucci notation.
1095   autoBeaming = ##f
1096 }
1097
1098 \context {
1099   \Staff
1100   \name "PetrucciStaff"
1101   \alias "Staff"
1102   \denies "Voice"
1103   \defaultchild "PetrucciVoice"
1104   \accepts "PetrucciVoice"
1105   \description "Same as @code{Staff} context, except that it is
1106 accommodated for typesetting a piece in Petrucci style."
1107
1108   \consists "Custos_engraver"
1109
1110   \override StaffSymbol #'thickness = #1.3
1111
1112   %% Choose Petrucci g clef on 2nd line as default.
1113   clefGlyph = #"clefs.petrucci.g"
1114   middleCClefPosition = #-6
1115   middleCPosition = #-6
1116   clefPosition = #-2
1117   clefOctavation = #0
1118
1119   \override Custos #'style = #'mensural
1120   \override Custos #'neutral-position = #3
1121   \override Custos #'neutral-direction = #DOWN
1122
1123   %% Accidentals are valid only once (if the following note is different)
1124   extraNatural = ##f
1125   autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0)
1126                              ,neo-modern-accidental-rule)
1127   autoCautionaries = #'()
1128   printKeyCancellation = ##f
1129 }
1130
1131 \context {
1132  \Voice
1133  \name "KievanVoice"
1134  \alias "Voice"
1135  \description "Same as @code{Voice} context, except that it is
1136 accommodated for typesetting a piece in Kievan style."
1137
1138  %% Set glyph styles.
1139  \override NoteHead #'style = #'kievan
1140  \override Rest #'style = #'mensural
1141  \override Accidental #'glyph-name-alist = #alteration-kievan-glyph-name-alist
1142  \override Dots #'style = #'kievan
1143  \override Slur #'stencil = ##f
1144
1145  %% There are beams in Kievan notation, but they are invoked manually
1146  autoBeaming = ##f
1147  \override Beam #'beam-thickness = #0.32
1148  \override Beam #'length-fraction = #0.62
1149 }
1150
1151 \context {
1152  \Staff
1153  \name "KievanStaff"
1154  \alias "Staff"
1155  \denies "Voice"
1156  \defaultchild "KievanVoice"
1157  \accepts "KievanVoice"
1158  \description "Same as @code{Staff} context, except that it is
1159 accommodated for typesetting a piece in Kievan style."
1160
1161  \remove "Time_signature_engraver"
1162
1163  %% Choose Kievan tsefaut clef
1164  clefGlyph = #"clefs.kievan.do"
1165  middleCClefPosition = #0
1166  middleCPosition = #0
1167  clefPosition = #0
1168  clefOctavation = #0
1169
1170  %% Accidentals are valid only once (if the following note is different)
1171  extraNatural = ##f
1172  autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0)
1173                             ,neo-modern-accidental-rule)
1174  autoCautionaries = #'()
1175  printKeyCancellation = ##f
1176
1177 }
1178
1179 %% Keep the old definitions in here for compatibility (they erase previous
1180 %% settings to the corresponding context!).
1181 %% For new scores, one should simply insert the \RemoveEmptyStaves settings
1182 %% into the desired context. That's just as easy, requires only one line more
1183 %% (the \*Staff), but preserves previous context mods.
1184 %% TODO: DEPRECATED_2.13.17, remove at some point in the future
1185 RemoveEmptyStaffContext = \context {
1186   \Staff
1187   \RemoveEmptyStaves
1188 }
1189
1190 AncientRemoveEmptyStaffContext = \context {
1191   \VaticanaStaff
1192   \RemoveEmptyStaves
1193 }
1194
1195 RemoveEmptyDrumStaffContext = \context {
1196   \DrumStaff
1197   \RemoveEmptyStaves
1198 }
1199
1200 RemoveEmptyRhythmicStaffContext = \context {
1201   \RhythmicStaff
1202   \RemoveEmptyStaves
1203 }
1204
1205 RemoveEmptyTabStaffContext = \context {
1206   \TabStaff
1207   \RemoveEmptyStaves
1208 }