7 \description "Hard coded entry point for LilyPond. Cannot be tuned."
8 \grobdescriptions #all-grob-descriptions
12 \type "Engraver_group_engraver"
15 \consists "Output_property_engraver"
16 \consists "Bar_engraver"
17 %% Bar_engraver must be first so default bars aren't overwritten
20 \consists "Font_size_engraver"
21 \consists "Volta_engraver"
22 \consists "Separating_line_group_engraver"
23 \consists "Dot_column_engraver"
25 %% perhaps move to Voice context?
26 \consists "Ottava_spanner_engraver"
27 \consists "Clef_engraver"
28 \consists "Key_engraver"
29 \consists "Time_signature_engraver"
30 \consists "Ledger_line_engraver"
31 \consists "Staff_symbol_engraver"
32 \consists "Collision_engraver"
33 \consists "Rest_collision_engraver"
34 \consists "Accidental_engraver"
35 \consists "Piano_pedal_engraver"
36 \consists "Instrument_name_engraver"
37 \consists "String_number_engraver"
38 \consists "Axis_group_engraver"
40 minimumVerticalExtent = #'(-4 . 4)
41 extraVerticalExtent = ##f
43 localKeySignature = #'()
46 %% explicitly set instrument, so we don't get
47 %% weird effects when doing instrument names for
56 \description "Handles clefs, bar lines, keys, accidentals. It can contain
57 @code{Voice} contexts."
63 \type "Engraver_group_engraver"
67 \remove "Accidental_engraver"
68 \remove "Ottava_spanner_engraver"
69 \remove "Key_engraver"
70 \remove "Piano_pedal_engraver"
71 \remove "String_number_engraver"
73 \description "Handles typesetting for percussion."
78 clefGlyph = #"clefs.percussion"
80 \override Script #'staff-padding = #0.75
85 \type "Engraver_group_engraver"
87 \consists "System_start_delimiter_engraver"
88 systemStartDelimiter = #'SystemStartBracket
92 \accepts "RhythmicStaff"
103 \accepts "InnerChoirStaff"
104 \accepts "InnerStaffGroup"
105 \description "Identical to @code{StaffGroup} except that the
106 contained staves are not connected vertically."
112 \type "Engraver_group_engraver"
114 \consists "Output_property_engraver"
116 minimumVerticalExtent = ##f
117 extraVerticalExtent = ##f
119 localKeySignature = #'()
121 \consists "Pitch_squash_engraver"
122 squashedPosition = #0
123 \consists "Separating_line_group_engraver"
127 \override BarLine #'bar-size = #4
128 \override VoltaBracket #'minimum-space = #15
129 \override VoltaBracket #'padding = #5
130 \override StaffSymbol #'line-count = #1
132 \override Stem #'neutral-direction = #1
133 \override Beam #'neutral-direction = #1
134 %% \consists "Repeat_engraver"
135 \consists "Dot_column_engraver"
136 \consists "Volta_engraver"
137 \consists "Bar_engraver"
138 \consists "Time_signature_engraver"
139 \consists "Staff_symbol_engraver"
140 \consists "Ledger_line_engraver"
141 \consists "Instrument_name_engraver"
142 \consists "Axis_group_engraver"
146 A context like @code{Staff} but for printing rhythms. Pitches are
147 ignored; the notes are printed on one line.
153 \type "Engraver_group_engraver"
157 Corresponds to a voice on a staff. This context handles the
158 conversion of dynamic signs, stems, beams, super- and subscripts,
159 slurs, ties, and rests.
161 You have to instantiate this explicitly if you want to have
162 multiple voices on the same staff."
164 localKeySignature = #'()
165 \consists "Font_size_engraver"
167 \consists "Output_property_engraver"
168 \consists "Arpeggio_engraver"
169 \consists "Multi_measure_rest_engraver"
170 \consists "Text_spanner_engraver"
171 \consists "Trill_spanner_engraver"
172 \consists "Grob_pq_engraver"
173 \consists "Forbid_line_break_engraver"
175 \consists "Note_head_line_engraver"
176 \consists "Glissando_engraver"
177 \consists "Ligature_bracket_engraver"
178 \consists "Breathing_sign_engraver"
179 %% \consists "Rest_engraver"
180 \consists "Note_heads_engraver"
181 \consists "Rest_engraver"
183 \consists "Stem_engraver"
184 \consists "Beam_engraver"
185 \consists "Grace_beam_engraver"
186 \consists "Auto_beam_engraver"
187 \consists "New_fingering_engraver"
188 \consists "Chord_tremolo_engraver"
189 \consists "Percent_repeat_engraver"
190 \consists "Slash_repeat_engraver"
191 \consists "Melisma_translator"
192 \consists "Part_combine_engraver"
194 \consists "Text_engraver"
195 \consists "Dynamic_engraver"
196 \consists "Fingering_engraver"
198 \consists "Script_engraver"
199 \consists "Script_column_engraver"
200 \consists "Rhythmic_column_engraver"
201 \consists "Phrasing_slur_engraver"
202 \consists "Cluster_spanner_engraver"
203 \consists "Slur_engraver"
204 \consists "Tie_engraver"
205 \consists "Tuplet_engraver"
206 \consists "Grace_engraver"
208 \consists "Skip_event_swallow_translator"
217 \override Stem #'lengths = #'(2.5 2.5 3.0 3.0)
225 \description "A voice on a percussion staff."
226 \remove "Arpeggio_engraver"
227 \consists "Multi_measure_rest_engraver"
228 \consists "Text_spanner_engraver"
229 \consists "Grob_pq_engraver"
231 \remove "Note_head_line_engraver"
232 \remove "Glissando_engraver"
233 \remove "Ligature_bracket_engraver"
234 \remove "Note_heads_engraver"
235 \consists "Rest_engraver"
236 \consists "Drum_notes_engraver"
237 \remove "New_fingering_engraver"
239 \remove "Fingering_engraver"
241 \remove "Cluster_spanner_engraver"
242 \consists "Tuplet_engraver"
244 \consists "Skip_event_swallow_translator"
248 \type "Engraver_group_engraver"
250 localKeySignature = #'()
252 \description " A group of staffs, with a brace on the left
253 side, grouping the staves together. The bar lines of the
254 contained staves are connected vertically. "
256 \consists "Span_bar_engraver"
257 \consists "Span_arpeggio_engraver"
258 \consists "System_start_delimiter_engraver"
259 systemStartDelimiter = #'SystemStartBrace
270 "Just like @code{GrandStaff} but with a forced distance between
271 the staves, so cross staff beaming and slurring can be used."
273 verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
274 \override VerticalAlignment #'forced-distance = #12
275 \override VerticalAlignment #'self-alignment-Y = #0
277 \consists "Vertical_align_engraver"
278 \consists "Instrument_name_engraver"
285 \type "Engraver_group_engraver"
286 \name InnerStaffGroup
288 \consists "Span_bar_engraver"
289 \consists "Span_arpeggio_engraver"
290 \consists "Output_property_engraver"
291 systemStartDelimiter = #'SystemStartBracket
293 \consists "System_start_delimiter_engraver"
295 \accepts "RhythmicStaff"
297 \accepts "GrandStaff"
298 \accepts "PianoStaff"
301 \accepts "ChordNames"
310 "Groups staffs while adding a bracket on the left side, grouping
311 the staves together. The bar lines of the contained staves are
312 connected vertically. "
314 \accepts "InnerChoirStaff"
315 \accepts "ChoirStaff"
316 \accepts "InnerStaffGroup"
317 \accepts "FiguredBass"
322 \type "Engraver_group_engraver"
323 minimumVerticalExtent = #'(-1.2 . 2.4)
324 extraVerticalExtent = ##f
327 \description " Corresponds to a voice with lyrics. Handles the
328 printing of a single line of lyrics. "
331 \consists "Separating_line_group_engraver"
332 \consists "Lyric_engraver"
333 \consists "Extender_engraver"
334 \consists "Hyphen_engraver"
335 \consists "Stanza_number_engraver"
336 \consists "Vocal_name_engraver"
337 \consists "Skip_event_swallow_translator"
338 \consists "Font_size_engraver"
339 \consists "Hara_kiri_engraver"
340 \override SeparationItem #'padding = #0.2
344 \type "Engraver_group_engraver"
346 \consists "Axis_group_engraver"
348 minimumVerticalExtent = ##f
349 extraVerticalExtent = ##f
353 \consists "Rest_swallow_translator"
354 \consists "Skip_event_swallow_translator"
355 \consists "Tie_engraver"
356 \consists "Note_name_engraver"
357 \consists "Separating_line_group_engraver"
361 \type "Engraver_group_engraver"
363 \description "Typesets chord names."
365 \consists "Volta_engraver"
367 \consists "Rest_swallow_translator"
368 \consists "Output_property_engraver"
369 \consists "Separating_line_group_engraver"
370 \consists "Chord_name_engraver"
371 \consists "Skip_event_swallow_translator"
372 \consists "Hara_kiri_engraver"
374 voltaOnThisStaff = ##f
375 minimumVerticalExtent = #'(0 . 2.5)
376 extraVerticalExtent = ##f
377 \override SeparatingGroupSpanner #'padding = #0.8
382 RemoveEmptyStaffContext= \context {
384 \remove "Axis_group_engraver"
385 \consists "Hara_kiri_engraver"
386 \override Beam #'auto-knee-gap = #'()
389 AncientRemoveEmptyStaffContext = \context {
390 %% why not add by default?
392 \RemoveEmptyStaffContext
393 \accepts "VaticanaVoice"
394 \accepts "GregorianTranscriptionVoice"
395 \accepts "MensuralVoice"
402 \description "This is the top level notation context. No
403 other context can contain a @code{Score} context. This context
404 handles the administration of time signatures. It also makes sure
405 that items such as clefs, time signatures, and key-signatures are
406 aligned across staves.
408 You cannot explicitly instantiate a Score context (since it is
409 not contained in any other context). It is instantiated
410 automatically when an output definition (a @code{\score} or
411 @code{\layout} block) is processed."
413 \consists "Repeat_acknowledge_engraver"
414 \consists "Staff_collecting_engraver"
416 %% move the alias along with the engraver.
418 \consists "Timing_engraver"
420 \consists "Output_property_engraver"
421 \consists "System_start_delimiter_engraver"
422 \consists "Mark_engraver"
423 \consists "Metronome_mark_engraver"
424 \consists "Break_align_engraver"
425 \consists "Spacing_engraver"
426 \consists "Vertical_align_engraver"
427 \consists "Stanza_number_align_engraver"
428 \consists "Bar_number_engraver"
429 \consists "Span_arpeggio_engraver"
433 \accepts "VaticanaStaff"
434 \accepts "GregorianTranscriptionStaff"
435 \accepts "MensuralStaff"
436 \accepts "StaffGroup"
437 \accepts "RhythmicStaff"
440 \accepts "ChordNames"
441 \accepts "GrandStaff"
442 \accepts "ChoirStaff"
443 \accepts "PianoStaff"
446 \accepts "FiguredBass"
449 soloIIText = #"Solo II"
451 printPartCombineTexts = ##t
452 systemStartDelimiter =#'SystemStartBar
454 drumStyleTable = #drums-style
456 melismaBusyProperties = #default-melisma-properties
458 clefGlyph = #"clefs.G"
460 middleCPosition = #-6
462 defaultBarType = #"|"
463 barNumberVisibility = #default-bar-number-visibility
466 explicitClefVisibility = #all-visible
467 explicitKeySignatureVisibility = #all-visible
468 autoBeamSettings = #default-auto-beam-settings
470 autoBeamCheck = #default-auto-beam-check
471 scriptDefinitions = #default-script-alist
473 verticalAlignmentChildCallback = #Align_interface::alignment_callback
475 pedalSustainStrings = #'("Ped." "*Ped." "*")
476 pedalSustainStyle = #'text
477 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
478 pedalUnaCordaStyle = #'text
480 %% These are in ordinary italic font, including the *,
481 %% but they are unlikely to be used,
482 %% as the default pedal-style for SostenutoPedal is 'mixed':
483 %% i.e. Sost. Ped_____________________
484 pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
485 pedalSostenutoStyle = #'mixed
488 harmonicAccidentals = ##t
489 fingeringOrientations = #'(up down)
490 stringNumberOrientations = #'(up down)
491 tupletNumberFormatFunction = #denominator-tuplet-formatter
492 markFormatter = #format-mark-letters
497 autoAccidentals = #'(Staff (same-octave . 0))
498 autoCautionaries = #'()
500 printKeyCancellation = ##t
501 keyAccidentalOrder = #`(
502 (6 . ,FLAT) (2 . ,FLAT) (5 . ,FLAT ) (1 . ,FLAT) (4 . ,FLAT) (0 . ,FLAT) (3 . ,FLAT)
503 (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
504 (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
505 (3 . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
508 barCheckSynchronize = ##f
511 chordNameFunction = #ignatzek-chord-names
512 majorSevenSymbol = #whiteTriangleMarkup
513 chordNameSeparator = #(make-simple-markup "/")
514 chordNameExceptions = #ignatzekExceptions
515 chordNoteNamer = #'()
516 chordRootNamer = #note-name->markup
517 chordPrefixSpacer = #0
518 chordNameExceptionsFull = #fullJazzExceptions
519 chordNameExceptionsPartial = #partialJazzExceptions
522 bassStaffProperties = #'((assign clefGlyph "clefs.F")
523 (assign clefPosition 2)
524 (assign middleCPosition 6))
526 stringOneTopmost = ##t
529 %% One may change the strings tuning as following :
530 %% The lenght of the list must be equal to the number of string
531 stringTunings = #guitar-tuning
532 tablatureFormat = #fret-number-tablature-format
535 bassFigureFormatFunction = #format-bass-figure
536 metronomeMarkFormatter = #format-metronome-markup
538 (Voice Stem direction 1)
539 ;; TODO: should take from existing definition.
540 ;; c&p from define-grobs.scm
542 (Voice Stem lengths ,(map (lambda (x) (* 0.8 x)) '(3.5 3.5 3.5 4.5 5.0)))
543 (Voice Stem stem-shorten (0.4 0.4))
544 (Voice Stem font-size -3)
545 (Voice NoteHead font-size -3)
546 (Voice Dots font-size -3)
547 (Voice Stem beamed-lengths
548 ,(map (lambda (x) (* 0.8 x)) '(3.3 3.3 4.0)))
549 (Voice Stem beamed-minimum-free-lengths
550 ,(map (lambda (x) (* 0.8 x)) '(2.5 2.0 1.5)))
551 (Voice Stem beamed-extreme-minimum-free-lengths
552 ,(map (lambda (x) (* 0.8 x)) '(1.83 1.5)))
554 (Voice Stem no-stem-extend #t)
555 (Voice Beam thickness 0.384)
556 (Voice Beam space-function ,(lambda (beam mult)
557 (* 0.8 (Beam::space_function
559 (Voice Accidental font-size -4)
560 (Voice Slur direction -1)
563 keepAliveInterfaces = #'(rhythmic-grob-interface lyric-interface percent-repeat-interface)
564 quotedEventTypes = #'(note-event rest-event time-scaled-music tie-event)
565 instrumentTransposition = #(ly:make-pitch 0 0 0)
567 verticallySpacedContexts = #'(Staff)
570 EasyNotation = \context { %% TODO: why \context override?
572 \override NoteHead #'print-function = #Note_head::brew_ez_stencil
573 \override NoteHead #'Y-extent-callback = #'()
574 \override NoteHead #'X-extent-callback = #'()
580 \type "Engraver_group_engraver"
582 \consists "Figured_bass_engraver"
583 \consists "Rest_swallow_translator"
584 \consists "Note_swallow_translator"
585 \consists "Skip_event_swallow_translator"
586 \consists "Separating_line_group_engraver"
588 \consists "Hara_kiri_engraver"
593 \type "Engraver_group_engraver"
595 %% don't want to route anything out of here:
598 \consists "Swallow_engraver"
599 \description "Silently discards all musical information given to this context. "
605 \consists "Tab_note_heads_engraver"
606 \remove "Note_heads_engraver"
607 \remove "Fingering_engraver"
608 \remove "New_fingering_engraver"
610 \description "Context for drawing notes in a Tab staff. "
611 \override Slur #'font-family = #'roman
612 \override Slur #'print-function = #hammer-print-function
613 \override Slur #'direction = #-1
615 %% Draws all stems/beams out of the staff (and not in the middle of the staff !)
616 %% This feature is now disabled because most of the tab does not use it.
617 %%\override Beam #'damping = #100000
618 %%\override Stem #'up-to-staff = ##t
620 %% TabStaff increase the staff-space, which in turn
621 %% increases beam thickness and spacing; beams are
622 %% too big. We have to adjust the beam settings:
623 \override Beam #'thickness = #0.32
624 \override Beam #'space-function =
625 #(lambda (beam mult) (* 0.62 (Beam::space_function beam mult)))
627 %% No accidental in tablature !
628 \remove Accidental_engraver
636 \remove "Staff_symbol_engraver"
637 \consists "Tab_staff_symbol_engraver"
639 \description "Context for generating tablature. [DOCME]"
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 \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
718 \remove "Time_signature_engraver"
719 \consists "Custos_engraver"
721 %% We can not remove Bar_engraver; otherwise clefs and custodes will
722 %% not show up any more among other line breaking issues.
723 %% Instead, we make the grob transparent.
724 \override BarLine #'transparent = ##t
726 \override StaffSymbol #'line-count = #4
727 \override StaffSymbol #'thickness = #0.6
729 %% FIXME: unit on StaffSymbol's width should be \linewidth.
730 %% \override StaffSymbol #'width = #60.0
732 %% Choose vaticana do clef on 3rd line as default.
733 clefGlyph = #"clefs.vaticana.do"
738 %% Select vaticana style font.
739 \override KeySignature #'style = #'vaticana
740 \override Accidental #'style = #'vaticana
741 \override Custos #'style = #'vaticana
742 \override Custos #'neutral-position = #3
743 \override Custos #'neutral-direction = #-1
745 %% Score.timing = ##f
746 %% Score.barAlways = ##t
751 \name "GregorianTranscriptionVoice"
754 %% Removing ligature bracket engraver without replacing it by some
755 %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
756 %% warning for every "\[" and "\]". Therefore, we make the grob
757 %% transparent instead.
758 \override LigatureBracket #'transparent = ##t
760 %% Put some space before and after divisiones.
761 %% FIXME: This does not seem to show any effect.
762 \override Script #'padding = #0.5
764 %% There are no beams in Gregorian Chant notation.
767 %% Prepare TextSpanner for \episem{Initium|Finis} use.
769 %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
770 %% always produce dashed lines, regardless of the style property.
772 %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
773 %% required to force the articulation signs being placed vertically
774 %% tightly to the correpsonding note heads.
776 \override TextSpanner #'dash-fraction = #'()
777 \override TextSpanner #'style = #'line
778 \override TextSpanner #'edge-height = #'(0 . 0)
779 \override TextSpanner #'padding = #-0.1
780 \override TextSpanner #'enclose-bounds = #1
781 \override TextSpanner #'edge-text = #'("" . "")
786 \name "GregorianTranscriptionStaff"
789 \accepts "GregorianTranscriptionVoice"
791 %% We can not remove Bar_engraver; otherwise clefs and custodes will
792 %% not show up any more among other line breaking issues.
793 %% Instead, we make the grob transparent.
794 \override BarLine #'transparent = ##t
799 \name "MensuralVoice"
801 \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style."
803 \remove "Slur_engraver"
804 \remove "Ligature_bracket_engraver"
805 \consists "Mensural_ligature_engraver"
807 %% Set default head for notes outside of \[ \].
808 \override NoteHead #'style = #'mensural
810 %% There are no beams in mensural notation.
816 \name "MensuralStaff"
819 \accepts "MensuralVoice"
820 \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting a piece in mensural style."
822 \consists "Custos_engraver"
824 %% We can not remove Bar_engraver; otherwise clefs and custodes will
825 %% not show up any more among other line breaking issues.
826 %% Instead, we make the grob transparent.
827 \override BarLine #'transparent = ##t
829 \override StaffSymbol #'thickness = #0.6
831 %% FIXME: unit on StaffSymbol's width should be \linewidth.
832 %% \override StaffSymbol #'width = #60.0
834 %% Choose petrucci g clef on 2nd line as default.
835 clefGlyph = #"clefs.petrucci.g"
836 middleCPosition = #-6
840 %% Select mensural style font.
841 \override TimeSignature #'style = #'mensural
842 \override KeySignature #'style = #'mensural
843 \override Accidental #'style = #'mensural
844 \override Custos #'style = #'mensural
845 \override Custos #'neutral-position = #3
846 \override Custos #'neutral-direction = #-1
848 %% Score.timing = ##f
849 %% Score.barAlways = ##t
853 RemoveEmptyRhythmicStaffContext= \context {
855 \remove "Axis_group_engraver"
856 \consists "Hara_kiri_engraver"