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 "Ledger_line_engraver"
34 \consists "Staff_symbol_engraver"
35 \consists "Collision_engraver"
36 \consists "Rest_collision_engraver"
37 \consists "Accidental_engraver"
38 \consists "Piano_pedal_engraver"
39 \consists "Instrument_name_engraver"
40 \consists "String_number_engraver"
41 \consists "Axis_group_engraver"
43 minimumVerticalExtent = #'(-4 . 4)
44 extraVerticalExtent = ##f
46 localKeySignature = #'()
49 % explicitly set instrument, so we don't get
50 % weird effects when doing instrument names for
57 \description "Handles clefs, bar lines, keys, accidentals. It can contain
58 @code{Voice} contexts."
64 \type "Engraver_group_engraver"
68 \remove "Accidental_engraver"
69 \remove "Ottava_spanner_engraver"
70 \remove "Key_engraver"
71 \remove "Piano_pedal_engraver"
72 \remove "String_number_engraver"
74 \description "Handles typesetting for percussion."
79 clefGlyph = #"clefs-percussion"
81 \override Script #'staff-padding = #0.75
86 \type "Engraver_group_engraver"
88 \consists "System_start_delimiter_engraver"
89 systemStartDelimiter = #'SystemStartBracket
93 \accepts "RhythmicStaff"
104 \accepts "InnerChoirStaff"
105 \accepts "InnerStaffGroup"
106 \description "Identical to @code{StaffGroup} except that the
107 contained staves are not connected vertically."
113 \type "Engraver_group_engraver"
115 \consists "Output_property_engraver"
117 minimumVerticalExtent = ##f
118 extraVerticalExtent = ##f
120 localKeySignature = #'()
122 \consists "Pitch_squash_engraver"
123 squashedPosition = #0
124 \consists "Separating_line_group_engraver"
128 \override BarLine #'bar-size = #4
129 \override VoltaBracket #'minimum-space = #15
130 \override VoltaBracket #'padding = #5
131 \override StaffSymbol #'line-count = #1
133 \override Stem #'neutral-direction = #1
134 \override Beam #'neutral-direction = #1
135 % \consists "Repeat_engraver"
136 \consists "Dot_column_engraver"
137 \consists "Volta_engraver"
138 \consists "Bar_engraver"
139 \consists "Time_signature_engraver"
140 \consists "Staff_symbol_engraver"
141 \consists "Ledger_line_engraver"
142 \consists "Instrument_name_engraver"
143 \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"
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 minimumVerticalExtent = #'(-1.2 . 2.4)
315 extraVerticalExtent = ##f
318 \description " Corresponds to a voice with lyrics. Handles the
319 printing of a single line of lyrics. "
322 \consists "Separating_line_group_engraver"
323 \consists "Lyric_engraver"
324 \consists "Extender_engraver"
325 \consists "Hyphen_engraver"
326 \consists "Stanza_number_engraver"
327 \consists "Vocal_name_engraver"
328 \consists "Skip_event_swallow_translator"
329 \consists "Font_size_engraver"
330 \consists "Hara_kiri_engraver"
331 \override SeparationItem #'padding = #0.2
335 \type "Engraver_group_engraver"
337 \consists "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 "Volta_engraver"
358 \consists "Rest_swallow_translator"
359 \consists "Output_property_engraver"
360 \consists "Separating_line_group_engraver"
361 \consists "Chord_name_engraver"
362 \consists "Skip_event_swallow_translator"
363 \consists "Hara_kiri_engraver"
365 voltaOnThisStaff = ##f
366 minimumVerticalExtent = #'(0 . 2.5)
367 extraVerticalExtent = ##f
368 \override SeparatingGroupSpanner #'padding = #0.8
373 RemoveEmptyStaffContext= \context {
375 \remove "Axis_group_engraver"
376 \consists "Hara_kiri_engraver"
377 \override Beam #'auto-knee-gap = #'()
380 AncientRemoveEmptyStaffContext = \context {
381 %% why not add by default?
383 \RemoveEmptyStaffContext
384 \accepts "VaticanaVoice"
385 \accepts "GregorianTranscriptionVoice"
386 \accepts "MensuralVoice"
393 \description "This is the top level notation context. No
394 other context can contain a @code{Score} context. This context
395 handles the administration of time signatures. It also makes sure
396 that items such as clefs, time signatures, and key-signatures are
397 aligned across staves.
399 You cannot explicitly instantiate a Score context (since it is
400 not contained in any other context). It is instantiated
401 automatically when an output definition (a @code{\score} or
402 @code{\layout} block) is processed."
404 \consists "Repeat_acknowledge_engraver"
405 \consists "Staff_collecting_engraver"
407 % move the alias along with the engraver.
409 \consists "Timing_engraver"
411 \consists "Output_property_engraver"
412 \consists "System_start_delimiter_engraver"
413 \consists "Mark_engraver"
414 \consists "Metronome_mark_engraver"
415 \consists "Break_align_engraver"
416 \consists "Spacing_engraver"
417 \consists "Vertical_align_engraver"
418 \consists "Stanza_number_align_engraver"
419 \consists "Bar_number_engraver"
420 \consists "Span_arpeggio_engraver"
424 \accepts "VaticanaStaff"
425 \accepts "GregorianTranscriptionStaff"
426 \accepts "MensuralStaff"
427 \accepts "StaffGroup"
428 \accepts "RhythmicStaff"
431 \accepts "ChordNames"
432 \accepts "GrandStaff"
433 \accepts "ChoirStaff"
434 \accepts "PianoStaff"
437 \accepts "FiguredBass"
440 soloIIText = #"Solo II"
442 printPartCombineTexts = ##t
443 systemStartDelimiter =#'SystemStartBar
445 drumStyleTable = #drums-style
447 melismaBusyProperties = #default-melisma-properties
449 clefGlyph = #"clefs-G"
451 middleCPosition = #-6
453 defaultBarType = #"|"
454 barNumberVisibility = #default-bar-number-visibility
457 explicitClefVisibility = #all-visible
458 explicitKeySignatureVisibility = #all-visible
459 autoBeamSettings = #default-auto-beam-settings
461 scriptDefinitions = #default-script-alist
463 verticalAlignmentChildCallback = #Align_interface::alignment_callback
465 pedalSustainStrings = #'("Ped." "*Ped." "*")
466 pedalSustainStyle = #'text
467 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
468 pedalUnaCordaStyle = #'text
470 %% These are in ordinary italic font, including the *,
471 %% but they are unlikely to be used,
472 %% as the default pedal-style for SostenutoPedal is 'mixed':
473 %% i.e. Sost. Ped_____________________
474 pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
475 pedalSostenutoStyle = #'mixed
478 harmonicAccidentals = ##t
479 fingeringOrientations = #'(up down)
480 tupletNumberFormatFunction = #denominator-tuplet-formatter
481 markFormatter = #format-mark-letters
486 autoAccidentals = #'(Staff (same-octave . 0))
487 autoCautionaries = #'()
489 printKeyCancellation = ##t
490 keyAccidentalOrder = #`(
491 (6 . ,FLAT) (2 . ,FLAT) (5 . ,FLAT ) (1 . ,FLAT) (4 . ,FLAT) (0 . ,FLAT) (3 . ,FLAT)
492 (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
493 (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
494 (3 . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
499 this order is more complex, see wansek p254 and further.
501 for instance, order of clef and :|: depends on function of the clef
503 (clef of start-repeat) :|: (change-clef)
509 barCheckSynchronize = ##f
512 chordNameFunction = #ignatzek-chord-names
513 majorSevenSymbol = #whiteTriangleMarkup
514 chordNameSeparator = #(make-simple-markup "/")
515 chordNameExceptions = #ignatzekExceptions
516 chordNoteNamer = #'()
517 chordRootNamer = #note-name->markup
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-tunings
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 quotedEventTypes = #'(note-event rest-event time-scaled-music tie-event)
564 instrumentTransposition = #(ly:make-pitch 0 0 0)
566 verticallySpacedContexts = #'(Staff)
569 EasyNotation = \context { % TODO: why \context override?
571 \override NoteHead #'print-function = #Note_head::brew_ez_stencil
572 \override NoteHead #'Y-extent-callback = #'()
573 \override NoteHead #'X-extent-callback = #'()
579 \type "Engraver_group_engraver"
581 \consists "Figured_bass_engraver"
582 \consists "Rest_swallow_translator"
583 \consists "Note_swallow_translator"
584 \consists "Skip_event_swallow_translator"
585 \consists "Separating_line_group_engraver"
587 \consists "Hara_kiri_engraver"
592 \type "Engraver_group_engraver"
594 %% don't want to route anything out of here:
597 \consists "Swallow_engraver"
598 \description "Silently discards all musical information given to this context. "
604 \consists "Tab_note_heads_engraver"
605 \remove "Note_heads_engraver"
606 \remove "Fingering_engraver"
607 \remove "New_fingering_engraver"
609 \description "Context for drawing notes in a Tab staff. "
610 \override Slur #'font-family = #'roman
611 \override Slur #'print-function = #hammer-print-function
612 \override Slur #'direction = #-1
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 % No accidental in tablature !
620 \remove Accidental_engraver
628 \remove "Staff_symbol_engraver"
629 \consists "Tab_staff_symbol_engraver"
631 \description "Context for generating tablature. [DOCME]"
636 \override StaffSymbol #'staff-space = #1.5
638 % Don't draw stems over the tablature figures !
639 \override Stem #'avoid-note-head = ##t
641 % No accidental in tablature !
642 \remove "Accidental_engraver"
643 \remove "Key_engraver"
644 \remove "String_number_engraver"
646 clefGlyph = #"clefs-tab"
650 % TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
651 % but this does not work (is this a bug or intended behaviour?):
653 % If I try to do so, I get "error: unknown escaped string:
654 % `\VaticanaStaff'" in params-init.ly. If I also move
655 % "\context { \Vaticana*Context }" from params-init.ly to the end
656 % of gregorian-init.ly, then I get "error: parse error, unexpected
657 % TRANSLATOR: \context { \VaticanaStaff }" in
658 % gregorian-init.ly. --jr
662 \name "VaticanaVoice"
664 \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
666 \remove "Slur_engraver"
667 \remove "Stem_engraver"
668 \remove "Ligature_bracket_engraver"
669 \consists "Vaticana_ligature_engraver"
671 % Set default head for notes outside of \[ \].
672 \override NoteHead #'style = #'vaticana-punctum
674 % Put some space before and after divisiones.
675 % FIXME: This does not seem to show any effect.
676 \override Script #'padding = #0.5
678 % There are no beams in Gregorian Chant notation.
681 % Prepare TextSpanner for \episem{Initium|Finis} use.
683 % N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
684 % always produce dashed lines, regardless of the style property.
686 % FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
687 % required to force the articulation signs being placed vertically
688 % tightly to the correpsonding note heads.
690 \override TextSpanner #'dash-fraction = #'()
691 \override TextSpanner #'style = #'line
692 \override TextSpanner #'edge-height = #'(0 . 0)
693 \override TextSpanner #'padding = #-0.1
694 \override TextSpanner #'enclose-bounds = #1
695 \override TextSpanner #'edge-text = #'("" . "")
700 \name "VaticanaStaff"
703 \accepts "VaticanaVoice"
704 \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
706 \remove "Time_signature_engraver"
707 \consists "Custos_engraver"
709 % We can not remove Bar_engraver; otherwise clefs and custodes will
710 % not show up any more among other line breaking issues.
711 % Instead, we make the grob transparent.
712 \override BarLine #'transparent = ##t
714 \override StaffSymbol #'line-count = #4
715 \override StaffSymbol #'thickness = #0.6
717 % FIXME: unit on StaffSymbol's width should be \linewidth.
718 % \override StaffSymbol #'width = #60.0
720 % Choose vaticana do clef on 3rd line as default.
721 clefGlyph = #"clefs-vaticana-do"
726 % Select vaticana style font.
727 \override KeySignature #'style = #'vaticana
728 \override Accidental #'style = #'vaticana
729 \override Custos #'style = #'vaticana
730 \override Custos #'neutral-position = #3
731 \override Custos #'neutral-direction = #-1
734 % Score.barAlways = ##t
739 \name "GregorianTranscriptionVoice"
742 % Removing ligature bracket engraver without replacing it by some
743 % other ligature engraver would cause a "Junking event: `LigatureEvent'"
744 % warning for every "\[" and "\]". Therefore, we make the grob
745 % transparent instead.
746 \override LigatureBracket #'transparent = ##t
748 % Put some space before and after divisiones.
749 % FIXME: This does not seem to show any effect.
750 \override Script #'padding = #0.5
752 % There are no beams in Gregorian Chant notation.
755 % Prepare TextSpanner for \episem{Initium|Finis} use.
757 % N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
758 % always produce dashed lines, regardless of the style property.
760 % FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
761 % required to force the articulation signs being placed vertically
762 % tightly to the correpsonding note heads.
764 \override TextSpanner #'dash-fraction = #'()
765 \override TextSpanner #'style = #'line
766 \override TextSpanner #'edge-height = #'(0 . 0)
767 \override TextSpanner #'padding = #-0.1
768 \override TextSpanner #'enclose-bounds = #1
769 \override TextSpanner #'edge-text = #'("" . "")
773 \name "GregorianTranscriptionStaff"
776 \accepts "GregorianTranscriptionVoice"
778 % We can not remove Bar_engraver; otherwise clefs and custodes will
779 % not show up any more among other line breaking issues.
780 % Instead, we make the grob transparent.
781 \override BarLine #'transparent = ##t
786 \name "MensuralVoice"
788 \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style."
790 \remove "Slur_engraver"
791 \remove "Ligature_bracket_engraver"
792 \consists "Mensural_ligature_engraver"
794 % Set default head for notes outside of \[ \].
795 \override NoteHead #'style = #'mensural
797 % There are no beams in mensural notation.
803 \name "MensuralStaff"
806 \accepts "MensuralVoice"
807 \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting a piece in mensural style."
809 \consists "Custos_engraver"
811 % We can not remove Bar_engraver; otherwise clefs and custodes will
812 % not show up any more among other line breaking issues.
813 % Instead, we make the grob transparent.
814 \override BarLine #'transparent = ##t
816 \override StaffSymbol #'thickness = #0.6
818 % FIXME: unit on StaffSymbol's width should be \linewidth.
819 % \override StaffSymbol #'width = #60.0
821 % Choose petrucci g clef on 2nd line as default.
822 clefGlyph = #"clefs-petrucci-g"
823 middleCPosition = #-6
827 % Select mensural style font.
828 \override TimeSignature #'style = #'mensural
829 \override KeySignature #'style = #'mensural
830 \override Accidental #'style = #'mensural
831 \override Custos #'style = #'mensural
832 \override Custos #'neutral-position = #3
833 \override Custos #'neutral-direction = #-1
836 % Score.barAlways = ##t