7 \description "Hard coded entry point for LilyPond. Cannot be tuned."
8 \grobdescriptions #all-grob-descriptions
12 \type "Engraver_group_engraver"
16 \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"
24 \consists "Volta_engraver"
25 \consists "Separating_line_group_engraver"
26 \consists "Dot_column_engraver"
28 % perhaps move to Voice context?
29 \consists "Ottava_spanner_engraver"
30 \consists "Clef_engraver"
31 \consists "Key_engraver"
32 \consists "Time_signature_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 \consistsend "Axis_group_engraver"
42 minimumVerticalExtent = #'(-6 . 6)
43 extraVerticalExtent = ##f
45 localKeySignature = #'()
48 % explicitly set instrument, so we don't get
49 % 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 "Instrument_name_engraver"
141 \consistsend "Axis_group_engraver"
144 A context like @code{Staff} but for printing rhythms. Pitches are
145 ignored; the notes are printed on one line.
151 \type "Engraver_group_engraver"
155 Corresponds to a voice on a staff. This context handles the
156 conversion of dynamic signs, stems, beams, super- and subscripts,
157 slurs, ties, and rests.
159 You have to instantiate this explicitly if you want to have
160 multiple voices on the same staff."
162 localKeySignature = #'()
163 \consists "Font_size_engraver"
165 \consists "Output_property_engraver"
166 \consists "Arpeggio_engraver"
167 \consists "Multi_measure_rest_engraver"
168 \consists "Text_spanner_engraver"
169 \consists "Grob_pq_engraver"
170 \consists "Forbid_line_break_engraver"
172 \consists "Note_head_line_engraver"
173 \consists "Glissando_engraver"
174 \consists "Ligature_bracket_engraver"
175 \consists "Breathing_sign_engraver"
176 % \consists "Rest_engraver"
177 \consists "Note_heads_engraver"
178 \consists "Rest_engraver"
180 \consists "Stem_engraver"
181 \consists "Beam_engraver"
182 \consists "Grace_beam_engraver"
183 \consists "Auto_beam_engraver"
184 \consists "New_fingering_engraver"
185 \consists "Chord_tremolo_engraver"
186 \consists "Percent_repeat_engraver"
187 \consists "Slash_repeat_engraver"
188 \consists "Melisma_translator"
189 \consists "Part_combine_engraver"
192 Must come before text_engraver, but after note_column engraver.
195 \consists "Text_engraver"
196 \consists "Dynamic_engraver"
197 \consists "Fingering_engraver"
199 \consists "Script_engraver"
200 \consists "Script_column_engraver"
201 \consists "Rhythmic_column_engraver"
202 \consists "Phrasing_slur_engraver"
203 \consists "Cluster_spanner_engraver"
204 \consists "Slur_engraver"
205 \consists "Tie_engraver"
206 \consists "Tuplet_engraver"
208 \consists "Skip_event_swallow_translator"
216 \description "A voice on a percussion staff."
217 \remove "Arpeggio_engraver"
218 \consists "Multi_measure_rest_engraver"
219 \consists "Text_spanner_engraver"
220 \consists "Grob_pq_engraver"
222 \remove "Note_head_line_engraver"
223 \remove "Glissando_engraver"
224 \remove "Ligature_bracket_engraver"
225 \remove "Note_heads_engraver"
226 \consists "Rest_engraver"
227 \consists "Drum_notes_engraver"
228 \remove "New_fingering_engraver"
230 \remove "Fingering_engraver"
232 \remove "Cluster_spanner_engraver"
233 \consists "Tuplet_engraver"
235 \consists "Skip_event_swallow_translator"
239 \type "Engraver_group_engraver"
241 localKeySignature = #'()
243 \description " A group of staffs, with a brace on the left
244 side, grouping the staves together. The bar lines of the
245 contained staves are connected vertically. "
247 \consists "Span_bar_engraver"
248 \consists "Span_arpeggio_engraver"
249 \consists "System_start_delimiter_engraver"
250 systemStartDelimiter = #'SystemStartBrace
261 "Just like @code{GrandStaff} but with a forced distance between
262 the staves, so cross staff beaming and slurring can be used."
264 verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
265 \override VerticalAlignment #'forced-distance = #12
266 \override VerticalAlignment #'self-alignment-Y = #0
268 \consists "Vertical_align_engraver"
269 \consists "Instrument_name_engraver"
276 \type "Engraver_group_engraver"
277 \name InnerStaffGroup
279 \consists "Span_bar_engraver"
280 \consists "Span_arpeggio_engraver"
281 \consists "Output_property_engraver"
282 systemStartDelimiter = #'SystemStartBracket
284 \consists "System_start_delimiter_engraver"
286 \accepts "RhythmicStaff"
288 \accepts "GrandStaff"
289 \accepts "PianoStaff"
292 \accepts "ChordNames"
301 "Groups staffs while adding a bracket on the left side, grouping
302 the staves together. The bar lines of the contained staves are
303 connected vertically. "
305 \accepts "InnerChoirStaff"
306 \accepts "ChoirStaff"
307 \accepts "InnerStaffGroup"
308 \accepts "FiguredBass"
313 \type "Engraver_group_engraver"
314 \consistsend "Hara_kiri_engraver"
315 minimumVerticalExtent = #'(-1.2 . 2.4)
316 extraVerticalExtent = ##f
319 \description " Corresponds to a voice with lyrics. Handles the
320 printing of a single line of lyrics. "
323 \consists "Separating_line_group_engraver"
324 \consists "Lyric_engraver"
325 \consists "Extender_engraver"
326 \consists "Hyphen_engraver"
327 \consists "Stanza_number_engraver"
328 \consists "Vocal_name_engraver"
329 \consists "Skip_event_swallow_translator"
330 \consists "Font_size_engraver"
331 \override SeparationItem #'padding = #0.2
335 \type "Engraver_group_engraver"
337 \consistsend "Axis_group_engraver"
339 minimumVerticalExtent = ##f
340 extraVerticalExtent = ##f
344 \consists "Rest_swallow_translator"
345 \consists "Skip_event_swallow_translator"
346 \consists "Tie_engraver"
347 \consists "Note_name_engraver"
348 \consists "Separating_line_group_engraver"
352 \type "Engraver_group_engraver"
354 \description "Typesets chord names."
356 \consists "Rest_swallow_translator"
357 \consists "Output_property_engraver"
358 \consists "Separating_line_group_engraver"
359 \consists "Chord_name_engraver"
360 \consists "Skip_event_swallow_translator"
361 \consistsend "Hara_kiri_engraver"
363 minimumVerticalExtent = #'(0 . 2.5)
364 extraVerticalExtent = ##f
365 \override SeparatingGroupSpanner #'padding = #0.8
370 RemoveEmptyStaffContext= \context {
372 \remove "Axis_group_engraver"
373 \consistsend "Hara_kiri_engraver"
374 \override Beam #'auto-knee-gap = #'()
377 AncientRemoveEmptyStaffContext = \context {
378 %% why not add by default?
380 \RemoveEmptyStaffContext
381 \accepts "VaticanaVoice"
382 \accepts "GregorianTranscriptionVoice"
389 \description "This is the top level notation context. No
390 other context can contain a @code{Score} context. This context
391 handles the administration of time signatures. It also makes sure
392 that items such as clefs, time signatures, and key-signatures are
393 aligned across staves.
395 You cannot explicitly instantiate a Score context (since it is
396 not contained in any other context). It is instantiated
397 automatically when an output definition (a @code{\score} or
398 @code{\paper} block) is processed."
400 \consists "Repeat_acknowledge_engraver"
401 \consists "Staff_collecting_engraver"
403 % move the alias along with the engraver.
405 \consists "Timing_engraver"
407 \consists "Output_property_engraver"
408 \consists "System_start_delimiter_engraver"
409 \consists "Mark_engraver"
410 \consists "Metronome_mark_engraver"
411 \consists "Break_align_engraver"
412 \consists "Spacing_engraver"
413 \consists "Vertical_align_engraver"
414 \consists "Stanza_number_align_engraver"
415 \consists "Bar_number_engraver"
416 \consists "Span_arpeggio_engraver"
420 \accepts "VaticanaStaff"
421 \accepts "GregorianTranscriptionStaff"
422 \accepts "StaffGroup"
423 \accepts "RhythmicStaff"
426 \accepts "ChordNames"
427 \accepts "GrandStaff"
428 \accepts "ChoirStaff"
429 \accepts "PianoStaff"
432 \accepts "FiguredBass"
435 soloIIText = #"Solo II"
438 systemStartDelimiter =#'SystemStartBar
440 drumStyleTable = #drums-style
442 melismaBusyProperties = #default-melisma-properties
444 clefGlyph = #"clefs-G"
446 middleCPosition = #-6
448 defaultBarType = #"|"
449 barNumberVisibility = #default-bar-number-visibility
452 explicitClefVisibility = #all-visible
453 explicitKeySignatureVisibility = #all-visible
454 autoBeamSettings = #default-auto-beam-settings
456 scriptDefinitions = #default-script-alist
458 verticalAlignmentChildCallback = #Align_interface::alignment_callback
460 pedalSustainStrings = #'("Ped." "*Ped." "*")
461 pedalSustainStyle = #'text
462 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
463 pedalUnaCordaStyle = #'text
465 %% These are in ordinary italic font, including the *,
466 %% but they are unlikely to be used,
467 %% as the default pedal-style for SostenutoPedal is 'mixed':
468 %% i.e. Sost. Ped_____________________
469 pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
470 pedalSostenutoStyle = #'mixed
473 harmonicAccidentals = ##t
474 fingeringOrientations = #'(up down)
475 tupletNumberFormatFunction = #denominator-tuplet-formatter
476 markFormatter = #format-mark-letters
481 autoAccidentals = #'(Staff (same-octave . 0))
482 autoCautionaries = #'()
484 printKeyCancellation = ##t
485 keyAccidentalOrder = #`(
486 (6 . ,FLAT) (2 . ,FLAT) (5 . ,FLAT ) (1 . ,FLAT) (4 . ,FLAT) (0 . ,FLAT) (3 . ,FLAT)
487 (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
488 (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
489 (3 . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
494 this order is more complex, see wansek p254 and further.
496 for instance, order of clef and :|: depends on function of the clef
498 (clef of start-repeat) :|: (change-clef)
504 barCheckSynchronize = ##f
507 chordNameFunction = #ignatzek-chord-names
508 majorSevenSymbol = #whiteTriangleMarkup
509 chordNameSeparator = #(make-simple-markup "/")
510 chordNameExceptions = #ignatzekExceptions
511 chordNoteNamer = #'()
512 chordRootNamer = #note-name->markup
513 chordNameExceptionsFull = #fullJazzExceptions
514 chordNameExceptionsPartial = #partialJazzExceptions
517 stringOneTopmost = ##t
520 %% One may change the strings tuning as following :
521 %% The lenght of the list must be equal to the number of string
522 stringTunings = #guitar-tunings
523 tablatureFormat = #fret-number-tablature-format
526 bassFigureFormatFunction = #format-bass-figure
527 metronomeMarkFormatter = #format-metronome-markup
529 (Voice Stem direction 1)
530 ;; TODO: should take from existing definition.
531 ;; c&p from define-grobs.scm
533 (Voice Stem lengths ,(map (lambda (x) (* 0.8 x)) '(3.5 3.5 3.5 4.5 5.0)))
534 (Voice Stem stem-shorten (0.4 0))
535 (Voice Stem font-size -3)
536 (Voice NoteHead font-size -3)
537 (Voice Dots font-size -3)
538 (Voice Stem beamed-lengths
539 ,(map (lambda (x) (* 0.8 x)) '(3.3 3.3 4.0)))
540 (Voice Stem beamed-minimum-free-lengths
541 ,(map (lambda (x) (* 0.8 x)) '(2.5 2.0 1.5)))
542 (Voice Stem beamed-extreme-minimum-free-lengths
543 ,(map (lambda (x) (* 0.8 x)) '(1.83 1.5)))
545 (Voice Stem no-stem-extend #t)
546 (Voice Beam thickness 0.384)
547 (Voice Beam space-function ,(lambda (beam mult)
548 (* 0.8 (Beam::space_function
550 (Voice Accidental font-size -4)
551 (Voice Slur direction -1)
556 EasyNotation = \context { % TODO: why \context override?
558 \override NoteHead #'print-function = #Note_head::brew_ez_stencil
559 \override NoteHead #'Y-extent-callback = #'()
560 \override NoteHead #'X-extent-callback = #'()
566 \type "Engraver_group_engraver"
568 \consists "Figured_bass_engraver"
569 \consists "Rest_swallow_translator"
570 \consists "Note_swallow_translator"
571 \consists "Skip_event_swallow_translator"
572 \consists "Separating_line_group_engraver"
574 \consistsend "Hara_kiri_engraver"
579 \type "Engraver_group_engraver"
581 %% don't want to route anything out of here:
584 \consists "Swallow_engraver"
585 \description "Silently discards all musical information given to this context. "
591 \consists "Tab_note_heads_engraver"
592 \remove "Note_heads_engraver"
593 \remove "Fingering_engraver"
594 \remove "New_fingering_engraver"
596 \description "Context for drawing notes in a Tab staff. "
597 \override Slur #'font-family = #'roman
598 \override Slur #'print-function = #hammer-print-function
599 \override Slur #'direction = #-1
601 % Draws all stems/beams out of the staff (and not in the middle of the staff !)
602 % This feature is now disabled because most of the tab does not use it.
603 %\override Beam #'damping = #100000
604 %\override Stem #'up-to-staff = ##t
606 % No accidental in tablature !
607 \remove Accidental_engraver
615 \remove "Staff_symbol_engraver"
616 \consists "Tab_staff_symbol_engraver"
618 \description "Context for generating tablature. [DOCME]"
623 \override StaffSymbol #'staff-space = #1.5
625 % Don't draw stems over the tablature figures !
626 \override Stem #'avoid-note-head = ##t
628 % No accidental in tablature !
629 \remove "Accidental_engraver"
630 \remove "Key_engraver"
631 \remove "String_number_engraver"
633 clefGlyph = #"clefs-tab"
637 % TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
638 % but this does not work (is this a bug or intended behaviour?):
640 % If I try to do so, I get "error: unknown escaped string:
641 % `\VaticanaStaff'" in params-init.ly. If I also move
642 % "\context { \Vaticana*Context }" from params-init.ly to the end
643 % of gregorian-init.ly, then I get "error: parse error, unexpected
644 % TRANSLATOR: \context { \VaticanaStaff }" in
645 % gregorian-init.ly. --jr
649 \name "VaticanaVoice"
651 \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
653 \remove "Slur_engraver"
654 \remove "Stem_engraver"
655 \remove "Ligature_bracket_engraver"
656 \consists "Vaticana_ligature_engraver"
658 % Set default head for notes outside of \[ \].
659 \override NoteHead #'style = #'vaticana_punctum
661 % Put some space before and after divisiones.
662 % FIXME: This does not seem to show any effect.
663 \override Script #'padding = #0.5
665 % There are no beams in Gregorian Chant notation.
668 % Prepare TextSpanner for \episem{Initium|Finis} use.
669 \override TextSpanner #'style = #'line
670 \override TextSpanner #'edge-height = #'(0 . 0)
671 \override TextSpanner #'padding = #0.5
672 \override TextSpanner #'enclose-bounds = #1
673 \override TextSpanner #'edge-text = #'("" . "")
678 \name "VaticanaStaff"
681 \accepts "VaticanaVoice"
682 \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
684 \remove "Time_signature_engraver"
685 \consists "Custos_engraver"
687 % We can not remove Bar_engraver; otherwise clefs and custodes will
688 % not show up any more among other line breaking issues.
689 % Instead, we make the grob transparent.
690 \override BarLine #'transparent = ##t
692 \override StaffSymbol #'line-count = #4
693 \override StaffSymbol #'thickness = #0.6
695 % FIXME: unit on StaffSymbol's width should be \linewidth.
696 % \override StaffSymbol #'width = #60.0
698 % Choose vaticana do clef on 3rd line as default.
699 clefGlyph = #"clefs-vaticana_do"
704 % Select vaticana style font.
705 \override KeySignature #'style = #'vaticana
706 \override Accidental #'style = #'vaticana
707 \override Custos #'style = #'vaticana
708 \override Custos #'neutral-position = #3
709 \override Custos #'neutral-direction = #-1
712 % Score.barAlways = ##t
717 \name "GregorianTranscriptionVoice"
720 % Removing ligature bracket engraver without replacing it by some
721 % other ligature engraver would cause a "Junking event: `LigatureEvent'"
722 % warning for every "\[" and "\]". Therefore, we make the grob
723 % transparent instead.
724 \override LigatureBracket #'transparent = ##t
726 % Put some space before and after divisiones.
727 % FIXME: This does not seem to show any effect.
728 \override Script #'padding = #0.5
730 % There are no beams in Gregorian Chant notation.
733 % Prepare TextSpanner for \episem{Initium|Finis} use.
734 \override TextSpanner #'style = #'line
735 \override TextSpanner #'edge-height = #'(0 . 0)
736 \override TextSpanner #'padding = #0.5
737 \override TextSpanner #'enclose-bounds = #1
738 \override TextSpanner #'edge-text = #'("" . "")
742 \name "GregorianTranscriptionStaff"
745 \accepts "GregorianTranscriptionVoice"
747 % We can not remove Bar_engraver; otherwise clefs and custodes will
748 % not show up any more among other line breaking issues.
749 % Instead, we make the grob transparent.
750 \override BarLine #'transparent = ##t