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
54 \description "Handles clefs, bar lines, keys, accidentals. It can contain
55 @code{Voice} contexts."
61 \type "Engraver_group_engraver"
65 \remove "Accidental_engraver"
66 \remove "Ottava_spanner_engraver"
67 \remove "Key_engraver"
68 \remove "Piano_pedal_engraver"
69 \remove "String_number_engraver"
71 \description "Handles typesetting for percussion."
76 clefGlyph = #"clefs.percussion"
78 \override Script #'staff-padding = #0.75
83 \type "Engraver_group_engraver"
85 \consists "System_start_delimiter_engraver"
86 systemStartDelimiter = #'SystemStartBracket
90 \accepts "RhythmicStaff"
101 \accepts "InnerChoirStaff"
102 \accepts "InnerStaffGroup"
103 \description "Identical to @code{StaffGroup} except that the
104 contained staves are not connected vertically."
110 \type "Engraver_group_engraver"
112 \consists "Output_property_engraver"
114 minimumVerticalExtent = ##f
115 extraVerticalExtent = ##f
117 localKeySignature = #'()
119 \consists "Pitch_squash_engraver"
120 squashedPosition = #0
121 \consists "Separating_line_group_engraver"
125 \override BarLine #'bar-size = #4
126 \override VoltaBracket #'minimum-space = #15
127 \override VoltaBracket #'padding = #5
128 \override StaffSymbol #'line-count = #1
130 \override Stem #'neutral-direction = #1
131 \override Beam #'neutral-direction = #1
132 % \consists "Repeat_engraver"
133 \consists "Dot_column_engraver"
134 \consists "Volta_engraver"
135 \consists "Bar_engraver"
136 \consists "Time_signature_engraver"
137 \consists "Staff_symbol_engraver"
138 \consists "Ledger_line_engraver"
139 \consists "Instrument_name_engraver"
140 \consists "Axis_group_engraver"
143 A context like @code{Staff} but for printing rhythms. Pitches are
144 ignored; the notes are printed on one line.
150 \type "Engraver_group_engraver"
154 Corresponds to a voice on a staff. This context handles the
155 conversion of dynamic signs, stems, beams, super- and subscripts,
156 slurs, ties, and rests.
158 You have to instantiate this explicitly if you want to have
159 multiple voices on the same staff."
161 localKeySignature = #'()
162 \consists "Font_size_engraver"
164 \consists "Output_property_engraver"
165 \consists "Arpeggio_engraver"
166 \consists "Multi_measure_rest_engraver"
167 \consists "Text_spanner_engraver"
168 \consists "Trill_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"
191 \consists "Text_engraver"
192 \consists "Dynamic_engraver"
193 \consists "Fingering_engraver"
195 \consists "Script_engraver"
196 \consists "Script_column_engraver"
197 \consists "Rhythmic_column_engraver"
198 \consists "Phrasing_slur_engraver"
199 \consists "Cluster_spanner_engraver"
200 \consists "Slur_engraver"
201 \consists "Tie_engraver"
202 \consists "Tuplet_engraver"
203 \consists "Grace_engraver"
205 \consists "Skip_event_swallow_translator"
213 \description "A voice on a percussion staff."
214 \remove "Arpeggio_engraver"
215 \consists "Multi_measure_rest_engraver"
216 \consists "Text_spanner_engraver"
217 \consists "Grob_pq_engraver"
219 \remove "Note_head_line_engraver"
220 \remove "Glissando_engraver"
221 \remove "Ligature_bracket_engraver"
222 \remove "Note_heads_engraver"
223 \consists "Rest_engraver"
224 \consists "Drum_notes_engraver"
225 \remove "New_fingering_engraver"
227 \remove "Fingering_engraver"
229 \remove "Cluster_spanner_engraver"
230 \consists "Tuplet_engraver"
232 \consists "Skip_event_swallow_translator"
236 \type "Engraver_group_engraver"
238 localKeySignature = #'()
240 \description " A group of staffs, with a brace on the left
241 side, grouping the staves together. The bar lines of the
242 contained staves are connected vertically. "
244 \consists "Span_bar_engraver"
245 \consists "Span_arpeggio_engraver"
246 \consists "System_start_delimiter_engraver"
247 systemStartDelimiter = #'SystemStartBrace
258 "Just like @code{GrandStaff} but with a forced distance between
259 the staves, so cross staff beaming and slurring can be used."
261 verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
262 \override VerticalAlignment #'forced-distance = #12
263 \override VerticalAlignment #'self-alignment-Y = #0
265 \consists "Vertical_align_engraver"
266 \consists "Instrument_name_engraver"
273 \type "Engraver_group_engraver"
274 \name InnerStaffGroup
276 \consists "Span_bar_engraver"
277 \consists "Span_arpeggio_engraver"
278 \consists "Output_property_engraver"
279 systemStartDelimiter = #'SystemStartBracket
281 \consists "System_start_delimiter_engraver"
283 \accepts "RhythmicStaff"
285 \accepts "GrandStaff"
286 \accepts "PianoStaff"
289 \accepts "ChordNames"
298 "Groups staffs while adding a bracket on the left side, grouping
299 the staves together. The bar lines of the contained staves are
300 connected vertically. "
302 \accepts "InnerChoirStaff"
303 \accepts "ChoirStaff"
304 \accepts "InnerStaffGroup"
305 \accepts "FiguredBass"
310 \type "Engraver_group_engraver"
311 minimumVerticalExtent = #'(-1.2 . 2.4)
312 extraVerticalExtent = ##f
315 \description " Corresponds to a voice with lyrics. Handles the
316 printing of a single line of lyrics. "
319 \consists "Separating_line_group_engraver"
320 \consists "Lyric_engraver"
321 \consists "Extender_engraver"
322 \consists "Hyphen_engraver"
323 \consists "Stanza_number_engraver"
324 \consists "Vocal_name_engraver"
325 \consists "Skip_event_swallow_translator"
326 \consists "Font_size_engraver"
327 \consists "Hara_kiri_engraver"
328 \override SeparationItem #'padding = #0.2
332 \type "Engraver_group_engraver"
334 \consists "Axis_group_engraver"
336 minimumVerticalExtent = ##f
337 extraVerticalExtent = ##f
341 \consists "Rest_swallow_translator"
342 \consists "Skip_event_swallow_translator"
343 \consists "Tie_engraver"
344 \consists "Note_name_engraver"
345 \consists "Separating_line_group_engraver"
349 \type "Engraver_group_engraver"
351 \description "Typesets chord names."
353 \consists "Volta_engraver"
355 \consists "Rest_swallow_translator"
356 \consists "Output_property_engraver"
357 \consists "Separating_line_group_engraver"
358 \consists "Chord_name_engraver"
359 \consists "Skip_event_swallow_translator"
360 \consists "Hara_kiri_engraver"
362 voltaOnThisStaff = ##f
363 minimumVerticalExtent = #'(0 . 2.5)
364 extraVerticalExtent = ##f
365 \override SeparatingGroupSpanner #'padding = #0.8
370 RemoveEmptyStaffContext= \context {
372 \remove "Axis_group_engraver"
373 \consists "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"
383 \accepts "MensuralVoice"
390 \description "This is the top level notation context. No
391 other context can contain a @code{Score} context. This context
392 handles the administration of time signatures. It also makes sure
393 that items such as clefs, time signatures, and key-signatures are
394 aligned across staves.
396 You cannot explicitly instantiate a Score context (since it is
397 not contained in any other context). It is instantiated
398 automatically when an output definition (a @code{\score} or
399 @code{\layout} block) is processed."
401 \consists "Repeat_acknowledge_engraver"
402 \consists "Staff_collecting_engraver"
404 % move the alias along with the engraver.
406 \consists "Timing_engraver"
408 \consists "Output_property_engraver"
409 \consists "System_start_delimiter_engraver"
410 \consists "Mark_engraver"
411 \consists "Metronome_mark_engraver"
412 \consists "Break_align_engraver"
413 \consists "Spacing_engraver"
414 \consists "Vertical_align_engraver"
415 \consists "Stanza_number_align_engraver"
416 \consists "Bar_number_engraver"
417 \consists "Span_arpeggio_engraver"
421 \accepts "VaticanaStaff"
422 \accepts "GregorianTranscriptionStaff"
423 \accepts "MensuralStaff"
424 \accepts "StaffGroup"
425 \accepts "RhythmicStaff"
428 \accepts "ChordNames"
429 \accepts "GrandStaff"
430 \accepts "ChoirStaff"
431 \accepts "PianoStaff"
434 \accepts "FiguredBass"
437 soloIIText = #"Solo II"
439 printPartCombineTexts = ##t
440 systemStartDelimiter =#'SystemStartBar
442 drumStyleTable = #drums-style
444 melismaBusyProperties = #default-melisma-properties
446 clefGlyph = #"clefs.G"
448 middleCPosition = #-6
450 defaultBarType = #"|"
451 barNumberVisibility = #default-bar-number-visibility
454 explicitClefVisibility = #all-visible
455 explicitKeySignatureVisibility = #all-visible
456 autoBeamSettings = #default-auto-beam-settings
458 scriptDefinitions = #default-script-alist
460 verticalAlignmentChildCallback = #Align_interface::alignment_callback
462 pedalSustainStrings = #'("Ped." "*Ped." "*")
463 pedalSustainStyle = #'text
464 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
465 pedalUnaCordaStyle = #'text
467 %% These are in ordinary italic font, including the *,
468 %% but they are unlikely to be used,
469 %% as the default pedal-style for SostenutoPedal is 'mixed':
470 %% i.e. Sost. Ped_____________________
471 pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
472 pedalSostenutoStyle = #'mixed
475 harmonicAccidentals = ##t
476 fingeringOrientations = #'(up down)
477 tupletNumberFormatFunction = #denominator-tuplet-formatter
478 markFormatter = #format-mark-letters
483 autoAccidentals = #'(Staff (same-octave . 0))
484 autoCautionaries = #'()
486 printKeyCancellation = ##t
487 keyAccidentalOrder = #`(
488 (6 . ,FLAT) (2 . ,FLAT) (5 . ,FLAT ) (1 . ,FLAT) (4 . ,FLAT) (0 . ,FLAT) (3 . ,FLAT)
489 (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
490 (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
491 (3 . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
496 this order is more complex, see wansek p254 and further.
498 for instance, order of clef and :|: depends on function of the clef
500 (clef of start-repeat) :|: (change-clef)
506 barCheckSynchronize = ##f
509 chordNameFunction = #ignatzek-chord-names
510 majorSevenSymbol = #whiteTriangleMarkup
511 chordNameSeparator = #(make-simple-markup "/")
512 chordNameExceptions = #ignatzekExceptions
513 chordNoteNamer = #'()
514 chordRootNamer = #note-name->markup
515 chordNameExceptionsFull = #fullJazzExceptions
516 chordNameExceptionsPartial = #partialJazzExceptions
519 bassStaffProperties = #'((assign clefGlyph "clefs.F")
520 (assign clefPosition 2)
521 (assign middleCPosition 6))
523 stringOneTopmost = ##t
526 %% One may change the strings tuning as following :
527 %% The lenght of the list must be equal to the number of string
528 stringTunings = #guitar-tuning
529 tablatureFormat = #fret-number-tablature-format
532 bassFigureFormatFunction = #format-bass-figure
533 metronomeMarkFormatter = #format-metronome-markup
535 (Voice Stem direction 1)
536 ;; TODO: should take from existing definition.
537 ;; c&p from define-grobs.scm
539 (Voice Stem lengths ,(map (lambda (x) (* 0.8 x)) '(3.5 3.5 3.5 4.5 5.0)))
540 (Voice Stem stem-shorten (0.4 0.4))
541 (Voice Stem font-size -3)
542 (Voice NoteHead font-size -3)
543 (Voice Dots font-size -3)
544 (Voice Stem beamed-lengths
545 ,(map (lambda (x) (* 0.8 x)) '(3.3 3.3 4.0)))
546 (Voice Stem beamed-minimum-free-lengths
547 ,(map (lambda (x) (* 0.8 x)) '(2.5 2.0 1.5)))
548 (Voice Stem beamed-extreme-minimum-free-lengths
549 ,(map (lambda (x) (* 0.8 x)) '(1.83 1.5)))
551 (Voice Stem no-stem-extend #t)
552 (Voice Beam thickness 0.384)
553 (Voice Beam space-function ,(lambda (beam mult)
554 (* 0.8 (Beam::space_function
556 (Voice Accidental font-size -4)
557 (Voice Slur direction -1)
560 quotedEventTypes = #'(note-event rest-event time-scaled-music tie-event)
561 instrumentTransposition = #(ly:make-pitch 0 0 0)
563 verticallySpacedContexts = #'(Staff)
566 EasyNotation = \context { % TODO: why \context override?
568 \override NoteHead #'print-function = #Note_head::brew_ez_stencil
569 \override NoteHead #'Y-extent-callback = #'()
570 \override NoteHead #'X-extent-callback = #'()
576 \type "Engraver_group_engraver"
578 \consists "Figured_bass_engraver"
579 \consists "Rest_swallow_translator"
580 \consists "Note_swallow_translator"
581 \consists "Skip_event_swallow_translator"
582 \consists "Separating_line_group_engraver"
584 \consists "Hara_kiri_engraver"
589 \type "Engraver_group_engraver"
591 %% don't want to route anything out of here:
594 \consists "Swallow_engraver"
595 \description "Silently discards all musical information given to this context. "
601 \consists "Tab_note_heads_engraver"
602 \remove "Note_heads_engraver"
603 \remove "Fingering_engraver"
604 \remove "New_fingering_engraver"
606 \description "Context for drawing notes in a Tab staff. "
607 \override Slur #'font-family = #'roman
608 \override Slur #'print-function = #hammer-print-function
609 \override Slur #'direction = #-1
611 % Draws all stems/beams out of the staff (and not in the middle of the staff !)
612 % This feature is now disabled because most of the tab does not use it.
613 %\override Beam #'damping = #100000
614 %\override Stem #'up-to-staff = ##t
616 % TabStaff increase the staff-space, which in turn
617 % increases beam thickness and spacing; beams are
618 % too big. We have to adjust the beam settings:
619 \override Beam #'thickness = #0.32
620 \override Beam #'space-function =
621 #(lambda (beam mult) (* 0.62 (Beam::space_function beam mult)))
623 % No accidental in tablature !
624 \remove Accidental_engraver
632 \remove "Staff_symbol_engraver"
633 \consists "Tab_staff_symbol_engraver"
635 \description "Context for generating tablature. [DOCME]"
640 \override StaffSymbol #'staff-space = #1.5
642 % Don't draw stems over the tablature figures !
643 \override Stem #'avoid-note-head = ##t
645 % No accidental in tablature !
646 \remove "Accidental_engraver"
647 \remove "Key_engraver"
648 \remove "String_number_engraver"
650 clefGlyph = #"clefs.tab"
654 % TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
655 % but this does not work (is this a bug or intended behaviour?):
657 % If I try to do so, I get "error: unknown escaped string:
658 % `\VaticanaStaff'" in params-init.ly. If I also move
659 % "\context { \Vaticana*Context }" from params-init.ly to the end
660 % of gregorian-init.ly, then I get "error: parse error, unexpected
661 % TRANSLATOR: \context { \VaticanaStaff }" in
662 % gregorian-init.ly. --jr
666 \name "VaticanaVoice"
668 \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
670 \remove "Slur_engraver"
671 \remove "Stem_engraver"
672 \remove "Ligature_bracket_engraver"
673 \consists "Vaticana_ligature_engraver"
675 % Set default head for notes outside of \[ \].
676 \override NoteHead #'style = #'vaticana.punctum
678 % Put some space before and after divisiones.
679 % FIXME: This does not seem to show any effect.
680 \override Script #'padding = #0.5
682 % There are no beams in Gregorian Chant notation.
685 % Prepare TextSpanner for \episem{Initium|Finis} use.
687 % N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
688 % always produce dashed lines, regardless of the style property.
690 % FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
691 % required to force the articulation signs being placed vertically
692 % tightly to the correpsonding note heads.
694 \override TextSpanner #'dash-fraction = #'()
695 \override TextSpanner #'style = #'line
696 \override TextSpanner #'edge-height = #'(0 . 0)
697 \override TextSpanner #'padding = #-0.1
698 \override TextSpanner #'enclose-bounds = #1
699 \override TextSpanner #'edge-text = #'("" . "")
704 \name "VaticanaStaff"
707 \accepts "VaticanaVoice"
708 \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
710 \remove "Time_signature_engraver"
711 \consists "Custos_engraver"
713 % We can not remove Bar_engraver; otherwise clefs and custodes will
714 % not show up any more among other line breaking issues.
715 % Instead, we make the grob transparent.
716 \override BarLine #'transparent = ##t
718 \override StaffSymbol #'line-count = #4
719 \override StaffSymbol #'thickness = #0.6
721 % FIXME: unit on StaffSymbol's width should be \linewidth.
722 % \override StaffSymbol #'width = #60.0
724 % Choose vaticana do clef on 3rd line as default.
725 clefGlyph = #"clefs.vaticana.do"
730 % Select vaticana style font.
731 \override KeySignature #'style = #'vaticana
732 \override Accidental #'style = #'vaticana
733 \override Custos #'style = #'vaticana
734 \override Custos #'neutral-position = #3
735 \override Custos #'neutral-direction = #-1
738 % Score.barAlways = ##t
743 \name "GregorianTranscriptionVoice"
746 % Removing ligature bracket engraver without replacing it by some
747 % other ligature engraver would cause a "Junking event: `LigatureEvent'"
748 % warning for every "\[" and "\]". Therefore, we make the grob
749 % transparent instead.
750 \override LigatureBracket #'transparent = ##t
752 % Put some space before and after divisiones.
753 % FIXME: This does not seem to show any effect.
754 \override Script #'padding = #0.5
756 % There are no beams in Gregorian Chant notation.
759 % Prepare TextSpanner for \episem{Initium|Finis} use.
761 % N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
762 % always produce dashed lines, regardless of the style property.
764 % FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
765 % required to force the articulation signs being placed vertically
766 % tightly to the correpsonding note heads.
768 \override TextSpanner #'dash-fraction = #'()
769 \override TextSpanner #'style = #'line
770 \override TextSpanner #'edge-height = #'(0 . 0)
771 \override TextSpanner #'padding = #-0.1
772 \override TextSpanner #'enclose-bounds = #1
773 \override TextSpanner #'edge-text = #'("" . "")
777 \name "GregorianTranscriptionStaff"
780 \accepts "GregorianTranscriptionVoice"
782 % We can not remove Bar_engraver; otherwise clefs and custodes will
783 % not show up any more among other line breaking issues.
784 % Instead, we make the grob transparent.
785 \override BarLine #'transparent = ##t
790 \name "MensuralVoice"
792 \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style."
794 \remove "Slur_engraver"
795 \remove "Ligature_bracket_engraver"
796 \consists "Mensural_ligature_engraver"
798 % Set default head for notes outside of \[ \].
799 \override NoteHead #'style = #'mensural
801 % There are no beams in mensural notation.
807 \name "MensuralStaff"
810 \accepts "MensuralVoice"
811 \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting a piece in mensural style."
813 \consists "Custos_engraver"
815 % We can not remove Bar_engraver; otherwise clefs and custodes will
816 % not show up any more among other line breaking issues.
817 % Instead, we make the grob transparent.
818 \override BarLine #'transparent = ##t
820 \override StaffSymbol #'thickness = #0.6
822 % FIXME: unit on StaffSymbol's width should be \linewidth.
823 % \override StaffSymbol #'width = #60.0
825 % Choose petrucci g clef on 2nd line as default.
826 clefGlyph = #"clefs.petrucci.g"
827 middleCPosition = #-6
831 % Select mensural style font.
832 \override TimeSignature #'style = #'mensural
833 \override KeySignature #'style = #'mensural
834 \override Accidental #'style = #'mensural
835 \override Custos #'style = #'mensural
836 \override Custos #'neutral-position = #3
837 \override Custos #'neutral-direction = #-1
840 % Score.barAlways = ##t