9 \description "Hard coded entry point for LilyPond. Cannot be tuned."
10 \grobdescriptions #all-grob-descriptions
14 \type "Engraver_group"
17 \consists "Output_property_engraver"
18 \consists "Bar_engraver"
19 %% Bar_engraver must be first so default bars aren't overwritten
22 \consists "Font_size_engraver"
23 \consists "Volta_engraver"
24 \consists "Separating_line_group_engraver"
25 \consists "Dot_column_engraver"
27 %% perhaps move to Voice context?
28 \consists "Ottava_spanner_engraver"
29 \consists "Clef_engraver"
30 \consists "Key_engraver"
31 \consists "Time_signature_engraver"
32 \consists "Ledger_line_engraver"
33 \consists "Staff_symbol_engraver"
34 \consists "Collision_engraver"
35 \consists "Rest_collision_engraver"
36 \consists "Accidental_engraver"
37 \consists "Piano_pedal_engraver"
38 \consists "Instrument_name_engraver"
39 \consists "String_number_engraver"
40 \consists "Axis_group_engraver"
42 minimumVerticalExtent = #'(-4 . 4)
43 extraVerticalExtent = ##f
45 localKeySignature = #'()
48 %% explicitly set instrument, so we don't get
49 %% weird effects when doing instrument names for
59 \description "Handles clefs, bar lines, keys, accidentals. It can contain
60 @code{Voice} contexts."
66 \type "Engraver_group"
69 \remove "Accidental_engraver"
70 \remove "Ottava_spanner_engraver"
71 \remove "Key_engraver"
72 \remove "Piano_pedal_engraver"
73 \remove "String_number_engraver"
75 \description "Handles typesetting for percussion."
79 \defaultchild DrumVoice
81 clefGlyph = #"clefs.percussion"
83 \override Script #'staff-padding = #0.75
88 \type "Engraver_group"
90 \consists "System_start_delimiter_engraver"
91 systemStartDelimiter = #'SystemStartBracket
95 \accepts "RhythmicStaff"
100 \defaultchild "Staff"
107 \defaultchild "Staff"
108 \accepts "InnerChoirStaff"
109 \accepts "InnerStaffGroup"
110 \description "Identical to @code{StaffGroup} except that the
111 contained staves are not connected vertically."
117 \type "Engraver_group"
119 minimumVerticalExtent = ##f
120 extraVerticalExtent = ##f
122 localKeySignature = #'()
125 squashedPosition = #0
129 \override BarLine #'bar-size = #4
130 \override VoltaBracket #'staff-padding = #3
131 \override StaffSymbol #'line-count = #1
133 \override Stem #'neutral-direction = #UP
134 \override Beam #'neutral-direction = #UP
136 \consists "Output_property_engraver"
137 \consists "Font_size_engraver"
138 \consists "Volta_engraver"
139 \consists "Separating_line_group_engraver"
140 \consists "Dot_column_engraver"
141 \consists "Bar_engraver"
142 \consists "Ledger_line_engraver"
143 \consists "Staff_symbol_engraver"
144 \consists "Pitch_squash_engraver"
145 \consists "Time_signature_engraver"
146 \consists "Instrument_name_engraver"
147 \consists "Axis_group_engraver"
151 \defaultchild "Voice"
154 A context like @code{Staff} but for printing rhythms. Pitches are
155 ignored; the notes are printed on one line.
161 \type "Engraver_group"
165 Corresponds to a voice on a staff. This context handles the
166 conversion of dynamic signs, stems, beams, super- and subscripts,
167 slurs, ties, and rests.
169 You have to instantiate this explicitly if you want to have
170 multiple voices on the same staff."
172 localKeySignature = #'()
173 \consists "Font_size_engraver"
175 \consists "Pitched_trill_engraver"
176 \consists "Output_property_engraver"
177 \consists "Arpeggio_engraver"
178 \consists "Multi_measure_rest_engraver"
179 \consists "Text_spanner_engraver"
180 \consists "Trill_spanner_engraver"
181 \consists "Grob_pq_engraver"
182 \consists "Forbid_line_break_engraver"
183 \consists "Laissez_vibrer_engraver"
184 \consists "Note_head_line_engraver"
185 \consists "Glissando_engraver"
186 \consists "Ligature_bracket_engraver"
187 \consists "Breathing_sign_engraver"
188 %% \consists "Rest_engraver"
189 \consists "Note_heads_engraver"
190 \consists "Rest_engraver"
192 \consists "Stem_engraver"
193 \consists "Beam_engraver"
194 \consists "Grace_beam_engraver"
195 \consists "Auto_beam_engraver"
196 \consists "New_fingering_engraver"
197 \consists "Chord_tremolo_engraver"
198 \consists "Percent_repeat_engraver"
199 \consists "Slash_repeat_engraver"
200 \consists "Melisma_translator"
201 \consists "Part_combine_engraver"
203 \consists "Text_engraver"
204 \consists "Dynamic_engraver"
205 \consists "Fingering_engraver"
207 \consists "Script_engraver"
208 \consists "Script_column_engraver"
209 \consists "Rhythmic_column_engraver"
210 \consists "Phrasing_slur_engraver"
211 \consists "Cluster_spanner_engraver"
212 \consists "Slur_engraver"
213 \consists "Tie_engraver"
214 \consists "Tuplet_engraver"
215 \consists "Grace_engraver"
217 \consists "Skip_event_swallow_translator"
226 \override Stem #'lengths = #'(2.5 2.5 3.0 3.0)
234 \description "A voice on a percussion staff."
235 \remove "Arpeggio_engraver"
236 \consists "Multi_measure_rest_engraver"
237 \consists "Text_spanner_engraver"
238 \consists "Grob_pq_engraver"
240 \remove "Note_head_line_engraver"
241 \remove "Glissando_engraver"
242 \remove "Ligature_bracket_engraver"
243 \remove "Note_heads_engraver"
244 \consists "Drum_notes_engraver"
245 \remove "New_fingering_engraver"
247 \remove "Fingering_engraver"
249 \remove "Cluster_spanner_engraver"
250 \consists "Tuplet_engraver"
252 \consists "Skip_event_swallow_translator"
256 \type "Engraver_group"
258 localKeySignature = #'()
260 \description " A group of staffs, with a brace on the left
261 side, grouping the staves together. The bar lines of the
262 contained staves are connected vertically. "
264 \consists "Span_bar_engraver"
265 \consists "Span_arpeggio_engraver"
266 \consists "System_start_delimiter_engraver"
267 systemStartDelimiter = #'SystemStartBrace
278 "Just like @code{GrandStaff} but with a forced distance between
279 the staves, so cross staff beaming and slurring can be used."
281 \override VerticalAlignment #'forced-distance = #12
282 \override VerticalAlignment #'self-alignment-Y = #0
284 \consists "Vertical_align_engraver"
285 \consists "Instrument_name_engraver"
292 \type "Engraver_group"
293 \name InnerStaffGroup
295 \consists "Span_bar_engraver"
296 \consists "Span_arpeggio_engraver"
297 \consists "Output_property_engraver"
298 systemStartDelimiter = #'SystemStartBracket
300 \consists "System_start_delimiter_engraver"
302 \defaultchild "Staff"
304 \accepts "RhythmicStaff"
306 \accepts "GrandStaff"
307 \accepts "PianoStaff"
310 \accepts "ChordNames"
319 "Groups staffs while adding a bracket on the left side, grouping
320 the staves together. The bar lines of the contained staves are
321 connected vertically. "
323 \accepts "InnerChoirStaff"
324 \accepts "ChoirStaff"
325 \accepts "InnerStaffGroup"
326 \accepts "FiguredBass"
331 \type "Engraver_group"
332 minimumVerticalExtent = #'(-1.2 . 2.4)
333 extraVerticalExtent = ##f
336 \description " Corresponds to a voice with lyrics. Handles the
337 printing of a single line of lyrics. "
340 \consists "Separating_line_group_engraver"
341 \consists "Lyric_engraver"
342 \consists "Extender_engraver"
343 \consists "Hyphen_engraver"
344 \consists "Stanza_number_engraver"
345 \consists "Vocal_name_engraver"
346 \consists "Skip_event_swallow_translator"
347 \consists "Font_size_engraver"
348 \consists "Hara_kiri_engraver"
349 \override RemoveEmptyVerticalGroup #'remove-first = ##t
350 \override SeparationItem #'padding = #0.2
354 \type "Engraver_group"
356 \consists "Axis_group_engraver"
358 minimumVerticalExtent = ##f
359 extraVerticalExtent = ##f
363 \consists "Rest_swallow_translator"
364 \consists "Skip_event_swallow_translator"
365 \consists "Tie_engraver"
366 \consists "Note_name_engraver"
367 \consists "Separating_line_group_engraver"
371 \type "Engraver_group"
373 \description "Typesets chord names."
375 \consists "Volta_engraver"
377 \consists "Rest_swallow_translator"
378 \consists "Output_property_engraver"
379 \consists "Separating_line_group_engraver"
380 \consists "Chord_name_engraver"
381 \consists "Skip_event_swallow_translator"
382 \consists "Hara_kiri_engraver"
384 voltaOnThisStaff = ##f
385 minimumVerticalExtent = #'(0 . 2.5)
386 extraVerticalExtent = ##f
387 \override SeparatingGroupSpanner #'padding = #0.8
388 \override RemoveEmptyVerticalGroup #'remove-first = ##t
393 RemoveEmptyStaffContext= \context {
395 \remove "Axis_group_engraver"
396 \consists "Hara_kiri_engraver"
397 \override Beam #'auto-knee-gap = #'()
400 AncientRemoveEmptyStaffContext = \context {
401 %% why not add by default?
403 \RemoveEmptyStaffContext
404 \accepts "VaticanaVoice"
405 \accepts "GregorianTranscriptionVoice"
406 \accepts "MensuralVoice"
413 \description "This is the top level notation context. No
414 other context can contain a @code{Score} context. This context
415 handles the administration of time signatures. It also makes sure
416 that items such as clefs, time signatures, and key-signatures are
417 aligned across staves.
419 You cannot explicitly instantiate a Score context (since it is
420 not contained in any other context). It is instantiated
421 automatically when an output definition (a @code{\score} or
422 @code{\layout} block) is processed."
425 \consists "Paper_column_engraver"
426 \consists "Vertically_spaced_contexts_engraver"
427 \consists "Repeat_acknowledge_engraver"
428 \consists "Staff_collecting_engraver"
430 %% move the alias along with the engraver.
432 \consists "Timing_translator"
433 \consists "Default_bar_line_engraver"
434 \consists "Output_property_engraver"
435 \consists "System_start_delimiter_engraver"
436 \consists "Mark_engraver"
437 \consists "Metronome_mark_engraver"
438 \consists "Break_align_engraver"
439 \consists "Spacing_engraver"
440 \consists "Vertical_align_engraver"
441 \consists "Stanza_number_align_engraver"
442 \consists "Bar_number_engraver"
443 \consists "Span_arpeggio_engraver"
445 \defaultchild "Staff"
447 \accepts "RhythmicStaff"
449 \accepts "VaticanaStaff"
450 \accepts "GregorianTranscriptionStaff"
451 \accepts "MensuralStaff"
452 \accepts "StaffGroup"
455 \accepts "ChordNames"
456 \accepts "GrandStaff"
457 \accepts "ChoirStaff"
458 \accepts "PianoStaff"
461 \accepts "FiguredBass"
464 soloIIText = #"Solo II"
466 printPartCombineTexts = ##t
467 systemStartDelimiter =#'SystemStartBar
469 drumStyleTable = #drums-style
471 melismaBusyProperties = #default-melisma-properties
473 clefGlyph = #"clefs.G"
475 middleCPosition = #-6
478 defaultBarType = #"|"
479 barNumberVisibility = #first-bar-number-invisible
482 explicitClefVisibility = #all-visible
483 explicitKeySignatureVisibility = #all-visible
484 autoBeamSettings = #default-auto-beam-settings
486 autoBeamCheck = #default-auto-beam-check
487 scriptDefinitions = #default-script-alist
489 pedalSustainStrings = #'("Ped." "*Ped." "*")
490 pedalSustainStyle = #'text
491 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
492 pedalUnaCordaStyle = #'text
494 %% These are in ordinary italic font, including the *,
495 %% but they are unlikely to be used,
496 %% as the default pedal-style for SostenutoPedal is 'mixed':
497 %% i.e. Sost. Ped_____________________
498 pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
499 pedalSostenutoStyle = #'mixed
502 harmonicAccidentals = ##t
503 fingeringOrientations = #'(up down)
504 stringNumberOrientations = #'(up down)
505 tupletNumberFormatFunction = #denominator-tuplet-formatter
506 markFormatter = #format-mark-letters
511 autoAccidentals = #'(Staff (same-octave . 0))
512 autoCautionaries = #'()
514 printKeyCancellation = ##t
515 keyAlterationOrder = #`(
516 (6 . ,FLAT) (2 . ,FLAT) (5 . ,FLAT ) (1 . ,FLAT) (4 . ,FLAT) (0 . ,FLAT) (3 . ,FLAT)
517 (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
518 (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
519 (3 . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
522 barCheckSynchronize = ##f
525 chordNameFunction = #ignatzek-chord-names
526 majorSevenSymbol = #whiteTriangleMarkup
527 chordNameSeparator = #(make-simple-markup "/")
528 chordNameExceptions = #ignatzekExceptions
529 chordNoteNamer = #'()
530 chordRootNamer = #note-name->markup
531 chordPrefixSpacer = #0
532 chordNameExceptionsFull = #fullJazzExceptions
533 chordNameExceptionsPartial = #partialJazzExceptions
536 bassStaffProperties = #'((assign clefGlyph "clefs.F")
537 (assign clefPosition 2)
538 (assign middleCPosition 6))
540 stringOneTopmost = ##t
543 %% One may change the strings tuning as following :
544 %% The lenght of the list must be equal to the number of string
545 stringTunings = #guitar-tuning
546 tablatureFormat = #fret-number-tablature-format
549 newFiguredBassFormatter = #format-new-bass-figure
550 metronomeMarkFormatter = #format-metronome-markup
552 (Voice Stem direction 1)
553 (Voice Stem font-size -3)
554 (Voice NoteHead font-size -3)
555 (Voice Dots font-size -3)
556 (Voice Stem length-fraction 0.8)
557 (Voice Stem no-stem-extend #t)
558 (Voice Beam thickness 0.384)
559 (Voice Beam space-function ,(lambda (beam mult)
560 (* 0.8 (Beam::space_function
562 (Voice Accidental font-size -4)
563 (Voice Slur direction -1)
566 keepAliveInterfaces = #'(rhythmic-grob-interface lyric-interface percent-repeat-interface)
567 quotedEventTypes = #'(note-event rest-event time-scaled-music tie-event)
568 instrumentTransposition = #(ly:make-pitch 0 0 0)
570 verticallySpacedContexts = #'(Staff)
579 \type "Engraver_group"
582 %% \consists "Figured_bass_engraver"
583 \consists "New_figured_bass_engraver"
584 \consists "Note_swallow_translator"
585 \consists "Skip_event_swallow_translator"
586 \consists "Separating_line_group_engraver"
587 \consists "Hara_kiri_engraver"
588 \override RemoveEmptyVerticalGroup #'remove-first = ##t
589 minimumVerticalExtent = #'(-0.5 . 2.5)
594 \type "Engraver_group"
596 %% don't want to route anything out of here:
599 \consists "Swallow_engraver"
600 \description "Silently discards all musical information given to this context. "
607 \consists "Tab_note_heads_engraver"
608 \remove "Note_heads_engraver"
609 \remove "Fingering_engraver"
610 \remove "New_fingering_engraver"
612 \description "Context for drawing notes in a Tab staff. "
614 %% Draws all stems/beams out of the staff (and not in the middle of the staff !)
615 %% This feature is now disabled because most of the tab does not use it.
616 %%\override Beam #'damping = #100000
617 %%\override Stem #'up-to-staff = ##t
619 %% TabStaff increase the staff-space, which in turn
620 %% increases beam thickness and spacing; beams are
621 %% too big. We have to adjust the beam settings:
622 \override Beam #'thickness = #0.32
623 \override Beam #'space-function =
624 #(lambda (beam mult) (* 0.62 (Beam::space_function beam mult)))
626 %% No accidental in tablature !
627 \remove Accidental_engraver
635 \remove "Staff_symbol_engraver"
636 \consists "Tab_staff_symbol_engraver"
638 \description "Context for generating tablature. [DOCME]"
641 \defaultchild "TabVoice"
644 \override StaffSymbol #'staff-space = #1.5
646 %% Don't draw stems over the tablature figures !
647 \override Stem #'avoid-note-head = ##t
649 %% No accidental in tablature !
650 \remove "Accidental_engraver"
651 \remove "Key_engraver"
652 \remove "String_number_engraver"
653 %% Special "TAB" clef
654 clefGlyph = #"clefs.tab"
658 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
659 %% but this does not work (is this a bug or intended behaviour?):
661 %% If I try to do so, I get "error: unknown escaped string:
662 %% `\VaticanaStaff'" in params-init.ly. If I also move
663 %% "\context { \Vaticana*Context }" from params-init.ly to the end
664 %% of gregorian-init.ly, then I get "error: parse error, unexpected
665 %% TRANSLATOR: \context { \VaticanaStaff }" in
666 %% gregorian-init.ly. --jr
670 \name "VaticanaVoice"
672 \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
674 \remove "Slur_engraver"
675 \remove "Stem_engraver"
676 \remove "Ligature_bracket_engraver"
677 \consists "Vaticana_ligature_engraver"
679 %% Set default head for notes outside of \[ \].
680 \override NoteHead #'style = #'vaticana.punctum
682 %% Put some space before and after divisiones.
683 %% FIXME: This does not seem to show any effect.
684 \override Script #'padding = #0.5
686 %% There are no beams in Gregorian Chant notation.
689 %% Prepare TextSpanner for \episem{Initium|Finis} use.
691 %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
692 %% always produce dashed lines, regardless of the style property.
694 %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
695 %% required to force the articulation signs being placed vertically
696 %% tightly to the correpsonding note heads.
698 \override TextSpanner #'dash-fraction = #'()
699 \override TextSpanner #'style = #'line
700 \override TextSpanner #'edge-height = #'(0 . 0)
701 \override TextSpanner #'padding = #-0.1
702 \override TextSpanner #'enclose-bounds = #1
703 \override TextSpanner #'edge-text = #'("" . "")
706 %% FIXME: need something like
707 %% \remove "Bar_number_engraver" (which lives on score level)
708 %% for vaticana and gregorian transcription staves
712 \name "VaticanaStaff"
715 \accepts "VaticanaVoice"
716 \defaultchild "VaticanaVoice"
718 \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
720 \remove "Time_signature_engraver"
721 \consists "Custos_engraver"
723 %% We can not remove Bar_engraver; otherwise clefs and custodes will
724 %% not show up any more among other line breaking issues.
725 %% Instead, we make the grob transparent.
726 \override BarLine #'transparent = ##t
728 \override StaffSymbol #'line-count = #4
729 \override StaffSymbol #'thickness = #0.6
731 %% FIXME: unit on StaffSymbol's width should be \linewidth.
732 %% \override StaffSymbol #'width = #60.0
734 %% Choose vaticana do clef on 3rd line as default.
735 clefGlyph = #"clefs.vaticana.do"
740 %% Select vaticana style font.
741 \override KeySignature #'style = #'vaticana
742 \override Accidental #'style = #'vaticana
743 \override Custos #'style = #'vaticana
744 \override Custos #'neutral-position = #3
745 \override Custos #'neutral-direction = #DOWN
747 %% Score.timing = ##f
748 %% Score.barAlways = ##t
753 \name "GregorianTranscriptionVoice"
756 %% Removing ligature bracket engraver without replacing it by some
757 %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
758 %% warning for every "\[" and "\]". Therefore, we make the grob
759 %% transparent instead.
760 \override LigatureBracket #'transparent = ##t
762 %% Put some space before and after divisiones.
763 %% FIXME: This does not seem to show any effect.
764 \override Script #'padding = #0.5
766 %% There are no beams in Gregorian Chant notation.
769 %% Prepare TextSpanner for \episem{Initium|Finis} use.
771 %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
772 %% always produce dashed lines, regardless of the style property.
774 %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
775 %% required to force the articulation signs being placed vertically
776 %% tightly to the correpsonding note heads.
778 \override TextSpanner #'dash-fraction = #'()
779 \override TextSpanner #'style = #'line
780 \override TextSpanner #'edge-height = #'(0 . 0)
781 \override TextSpanner #'padding = #-0.1
782 \override TextSpanner #'enclose-bounds = #1
783 \override TextSpanner #'edge-text = #'("" . "")
788 \name "GregorianTranscriptionStaff"
791 \accepts "GregorianTranscriptionVoice"
792 \defaultchild "GregorianTranscriptionVoice"
794 %% We can not remove Bar_engraver; otherwise clefs and custodes will
795 %% not show up any more among other line breaking issues.
796 %% Instead, we make the grob transparent.
797 \override BarLine #'transparent = ##t
802 \name "MensuralVoice"
804 \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style."
806 \remove "Slur_engraver"
807 \remove "Ligature_bracket_engraver"
808 \consists "Mensural_ligature_engraver"
810 %% Set default head for notes outside of \[ \].
811 \override NoteHead #'style = #'petrucci
813 %% There are no beams in mensural notation.
819 \name "MensuralStaff"
822 \defaultchild "MensuralVoice"
823 \accepts "MensuralVoice"
824 \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting a piece in mensural style."
826 \consists "Custos_engraver"
828 %% We can not remove Bar_engraver; otherwise clefs and custodes will
829 %% not show up any more among other line breaking issues.
830 %% Instead, we make the grob transparent.
831 \override BarLine #'transparent = ##t
833 \override StaffSymbol #'thickness = #0.6
835 %% FIXME: unit on StaffSymbol's width should be \linewidth.
836 %% \override StaffSymbol #'width = #60.0
838 %% Choose petrucci g clef on 2nd line as default.
839 clefGlyph = #"clefs.petrucci.g"
840 middleCPosition = #-6
844 %% Select mensural style font.
845 \override TimeSignature #'style = #'mensural
846 \override KeySignature #'style = #'mensural
847 \override Accidental #'style = #'mensural
848 \override Custos #'style = #'mensural
849 \override Custos #'neutral-position = #3
850 \override Custos #'neutral-direction = #DOWN
852 %% Score.timing = ##f
853 %% Score.barAlways = ##t
857 RemoveEmptyRhythmicStaffContext= \context {
859 \remove "Axis_group_engraver"
860 \consists "Hara_kiri_engraver"