4 % setup for Request->Element conversion. Guru-only
7 StaffContext=\translator {
8 \type "Engraver_group_engraver";
10 \consists "Output_property_engraver";
11 Generic_property_list = #generic-staff-properties
12 \consists "Property_engraver";
14 \consists "Multi_measure_rest_engraver";
16 \consists "Bar_engraver";
17 % Bar_engraver must be first so default bars aren't overwritten
21 % \consists "Repeat_engraver";
22 \consists "Volta_engraver";
23 \consists "Separating_line_group_engraver";
27 \consists "Clef_engraver";
28 \consists "Key_engraver";
29 \consists "Time_signature_engraver";
30 \consists "Staff_symbol_engraver";
31 \consists "Collision_engraver";
32 \consists "Rest_collision_engraver";
33 \consists "Local_key_engraver";
34 \consists "Piano_pedal_engraver";
35 \consists "Arpeggio_engraver";
37 \consistsend "Axis_group_engraver";
40 The Instrument_name_engraver puts the name of the instrument
41 (\property Staff.instrument; Staff.instr for subsequent lines)
42 to the left of a staff.
44 This is commented out, so you don't get funny things on the
46 \consists "Instrument_name_engraver";
54 ChoirStaffContext = \translator {
55 \type "Engraver_group_engraver";
57 alignmentReference = \center;
58 \consists "System_start_delimiter_engraver";
59 systemStartDelimiterGlyph = #'bracket
62 \accepts "RhythmicStaff";
63 \accepts "GrandStaff";
64 \accepts "PianoStaff";
66 \accepts "ChordNames";
70 RhythmicStaffContext=\translator{
71 \type "Engraver_group_engraver";
73 \consists "Property_engraver";
74 \consists "Output_property_engraver";
76 Generic_property_list = #generic-staff-properties
78 \consists "Pitch_squash_engraver";
79 \consists "Separating_line_group_engraver";
81 Bar \push #'bar-size = #4
82 VoltaBracket \push #'minimum-space = #15 % urg, in \pt
83 VoltaBracket \push #'padding = #5 % urg, in \pt
84 StaffSymbol \push #'line-count = #1
86 % \consists "Repeat_engraver";
87 \consists "Volta_engraver";
88 \consists "Bar_engraver";
89 \consists "Time_signature_engraver";
90 \consists "Staff_symbol_engraver";
91 \consistsend "Axis_group_engraver";
96 VoiceContext = \translator {
97 \type "Engraver_group_engraver";
100 Generic_property_list = #generic-voice-properties
102 \consists "Output_property_engraver";
104 \consists "Dynamic_engraver"; % must come before text_engraver.
105 \consists "Property_engraver";
107 \consists "Breathing_sign_engraver";
108 \consists "Rest_engraver";
109 \consists "Dot_column_engraver";
110 \consists "Stem_engraver";
111 \consists "Beam_engraver";
112 \consists "Auto_beam_engraver";
114 \consists "Chord_tremolo_engraver";
115 \consists "Melisma_engraver";
116 \consists "Text_engraver";
117 \consists "A2_engraver";
118 \consists "Voice_devnull_engraver";
120 \consists "Script_engraver";
121 \consists "Script_column_engraver";
122 \consists "Rhythmic_column_engraver";
123 \consists "Slur_engraver";
124 \consists "Tie_engraver";
125 \consists "Tuplet_engraver";
126 \consists "Grace_position_engraver";
127 \consists "Skip_req_swallow_translator";
128 \accepts Thread; % bug if you leave out this!
132 GraceContext=\translator {
133 \type "Grace_engraver_group";
135 \consists "Output_property_engraver";
137 Generic_property_list = #generic-grace-properties
139 \consists "Note_heads_engraver";
140 \consists "Local_key_engraver";
141 \consists "Stem_engraver";
142 \consists "Beam_engraver";
143 \consists "Slur_engraver";
145 \consists "Auto_beam_engraver";
146 \consists "Align_note_column_engraver";
148 \consists "Rhythmic_column_engraver";
150 \consists "Dynamic_engraver";% in Grace ???
151 \consists "Text_engraver"; % in Grace ???
153 \consists "Property_engraver";
155 Stem \push #'style = #"grace"
156 Stem \push #'flag-style = #"grace"
157 Stem \push #'stem-length = #6.0
158 Stem \push #'direction = #1
160 NoteHead \push #'font-size = #-1
161 Stem \push #'font-size = #-1
162 Stem \push #'stem-shorten = #'(0)
163 Beam \push #'font-size = #-1
164 TextScript \push #'font-size = #-1
165 Slur \push #'font-size = #-1
166 Accidentals \push #'font-size = #-1
167 Beam \push #'beam-thickness = #0.3
168 Beam \push #'beam-space-function = #(lambda (x) 0.5)
170 Stem \push #'lengths = #(map (lambda (x) (* 0.8 x)) '(3.5 3.5 3.5 4.5 5.0))
171 Stem \push #'beamed-lengths =
173 Stem \push #'minimum-beamed-lengths
174 = #(map (lambda (x) (* 0.8 x)) '(0.0 2.5 2.0 1.5))
176 weAreGraceContext = ##t
177 graceAccidentalSpace= 1.5 ; % in staff space
180 ThreadContext = \translator{
181 \type Engraver_group_engraver;
182 \consists "Thread_devnull_engraver";
183 \consists "Note_heads_engraver";
184 \consists "Output_property_engraver";
185 Generic_property_list = #generic-thread-properties
186 \consists "Property_engraver";
190 GrandStaffContext=\translator{
191 \type "Engraver_group_engraver";
193 \consists "Span_bar_engraver";
194 \consists "Span_arpeggio_engraver";
195 \consists "System_start_delimiter_engraver";
196 systemStartDelimiterGlyph = #'brace
198 \consists "Property_engraver";
199 Generic_property_list = #generic-grand-staff-properties
203 PianoStaffContext = \translator{
207 \consists "Vertical_align_engraver";
209 alignmentReference = \center;
210 VerticalAlignment \push #'threshold = #'(12 . 12)
212 % \consistsend "Axis_group_engraver";
215 StaffGroupContext= \translator {
216 \type "Engraver_group_engraver";
219 \consists "Span_bar_engraver";
220 \consists "Span_arpeggio_engraver";
221 \consists "Output_property_engraver";
222 systemStartDelimiterGlyph = #'bracket
223 \consists "System_start_delimiter_engraver";
225 \accepts "RhythmicStaff";
226 \accepts "GrandStaff";
227 \accepts "PianoStaff";
230 \accepts "ChordNames";
235 LyricsVoiceContext= \translator{
236 \type "Engraver_group_engraver";
237 \consistsend "Axis_group_engraver";
238 LyricVoiceMinimumVerticalExtent = #(cons -1.2 1.2)
241 \consists "Separating_line_group_engraver";
242 \consists "Lyric_engraver";
243 \consists "Extender_engraver";
244 \consists "Hyphen_engraver";
245 \consists "Stanza_number_engraver";
246 phrasingPunctuation = #".,;:!?\""
249 NoteNamesContext = \translator {
250 \type "Engraver_group_engraver";
252 \consistsend "Axis_group_engraver";
253 \consists "Note_name_engraver";
254 \consists "Separating_line_group_engraver";
257 LyricsContext = \translator {
258 \type "Engraver_group_engraver";
260 \consists Vertical_align_engraver; %need this for getting folded repeats right.
261 Generic_property_list = #generic-lyrics-properties
262 \consists "Property_engraver";
263 \consistsend "Axis_group_engraver";
265 \accepts "LyricVoice";
268 ChordNameVoiceContext = \translator {
269 \type "Engraver_group_engraver";
270 \name ChordNameVoice ;
272 \consists "Output_property_engraver";
273 \consistsend "Axis_group_engraver";
274 \consists "Separating_line_group_engraver";
275 \consists "Chord_name_engraver";
277 ChordNameContext = \translator {
278 \type "Engraver_group_engraver";
281 Generic_property_list = #generic-chord-staff-properties
282 \consists "Property_engraver";
283 \consists "Output_property_engraver";
284 \accepts "ChordNameVoice";
285 \consistsend "Axis_group_engraver";
289 ScoreWithNumbers = \translator {
290 \type "Score_engraver";
292 % uncomment to bar numbers on a whole system.
293 \consists "Bar_number_engraver";
296 StupidScore = \translator {
297 \type "Score_engraver";
299 \consists "Note_heads_engraver";
304 BarNumberingStaffContext = \translator {
306 \consists "Mark_engraver";
309 HaraKiriStaffContext = \translator {
311 \remove "Axis_group_engraver";
312 \consistsend "Hara_kiri_engraver";
313 \consists "Instrument_name_engraver";
317 The HaraKiriStaffContexts doesn't override \name,
318 so it is still named `Staff'.
320 %\translator { \HaraKiriStaffContext }
323 OrchestralPartStaffContext = \translator {
325 \consists "Mark_engraver";
328 ScoreContext = \translator {
329 \type Score_engraver;
333 \consists "Repeat_acknowledge_engraver";
334 \consists "Timing_engraver";
335 \consists "Output_property_engraver";
336 \consists "System_start_delimiter_engraver";
337 \consists "Mark_engraver";
338 \consists "Break_align_engraver";
339 \consists "Spacing_engraver";
340 \consists "Vertical_align_engraver";
342 \consists "Lyric_phrasing_engraver";
343 \consists "Bar_number_engraver";
344 \consists "Span_arpeggio_engraver";
348 \accepts "StaffGroup";
349 \accepts "RhythmicStaff";
351 \accepts "ChordNames";
352 \accepts "GrandStaff";
353 \accepts "ChoirStaff";
354 \accepts "PianoStaff";
355 \accepts "NoteNames";
358 soloIIText = #"Solo II"
361 splitInterval = #'(0 . 1)
362 changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
364 defaultClef = #"treble"
366 StaffMinimumVerticalExtent = #(cons -4.0 4.0)
369 voltaVisibility = ##t
370 % name, glyph id, c0 position
371 supportedClefTypes = #'(
372 ("treble" . ("clefs-G" -2))
373 ("violin" . ("clefs-G" -2))
374 ("G" . ("clefs-G" -2))
375 ("G2" . ("clefs-G" -2))
376 ("french" . ("clefs-G" -4 ))
377 ("soprano" . ("clefs-C" -4 ))
378 ("mezzosoprano" . ("clefs-C" -2 ))
379 ("alto" . ("clefs-C" 0 ))
380 ("tenor" . ("clefs-C" 2 ))
381 ("baritone" . ("clefs-C" 4 ))
382 ("varbaritone" . ("clefs-F" 0))
383 ("bass" . ("clefs-F" 2 ))
384 ("F" . ( "clefs-F" 2))
385 ("subbass" . ("clefs-F" 4))
387 % where is c0 in this clef?
388 clefPitches = #'(("clefs-G" . -4)
393 automaticPhrasing = ##t;
394 alignmentReference = \down;
395 defaultClef = #"treble"
396 defaultBarType = #"|"
397 systemStartDelimiterGlyph = #'bar-line
398 explicitClefVisibility = #all-visible
399 explicitKeySignatureVisibility = #all-visible
401 scriptDefinitions = #default-script-alist
403 startSustain = #"Ped."
405 stopStartSustain = #"*Ped."
406 startUnaChorda = #"una chorda"
407 stopUnaChorda = #"tre chorde"
408 % should make separate lists for stopsustain and startsustain
412 % what order to print accs. We could compute this,
413 % but computing is more work than putting it here.
415 % Flats come first, then sharps.
416 keyAccidentalOrder = #'(
417 (6 . -1) (2 . -1) (5 . -1 ) (1 . -1) (4 . -1) (0 . -1) (3 . -1)
418 (3 . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
420 breakAlignOrder = #'(
432 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
433 % TODO: uniform naming.;
434 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
438 % distances are given in stafflinethickness (thicknesses) and
439 % staffspace (distances)
442 (interfaces . (arpeggio-interface))
443 (molecule-callback . ,Arpeggio::brew_molecule)
447 (interfaces . (bar-interface staff-bar-interface))
448 (break-align-symbol . Staff_bar)
450 (break-glyph-function . ,default-break-barline)
451 (barsize-procedure . ,Bar::get_staff_bar_size)
452 (molecule-callback . ,Bar::brew_molecule)
453 (visibility-lambda . ,all-visible)
455 (before-line-breaking-callback . ,Bar::before_line_breaking)
457 ;; Ross. page 151 lists other values, we opt for a leaner look
461 (hair-thickness . 1.6)
462 (thick-thickness . 6.0)
467 (molecule-callback . ,Text_item::brew_molecule)
469 (visibility-lambda . ,begin-of-line-visible)
475 Beam = #basic-beam-properties
479 (interfaces . (break-align-interface))
482 (X-offset-callbacks . (,Break_align_interface::self_align_callback))
483 (space-alist . ,default-break-align-space-alist)
484 (name . "BreakAlignment")
487 BreakAlignGroup = #`(
488 (interfaces . (axis-group-interface))
490 (X-offset-callbacks . (,Break_align_interface::alignment_callback))
492 (name . "BreakAlignGroup")
496 (interfaces . (breathing-sign-interface))
497 (break-align-symbol . Breathing_sign)
499 (molecule-callback . ,Breathing_sign::brew_molecule)
500 (Y-offset-callbacks . (,Breathing_sign::offset_callback))
501 (visibility-lambda . ,begin-of-line-invisible)
502 (name . "BreathingSign")
506 (interfaces . (clef-interface))
507 (molecule-callback . ,Score_element::brew_molecule)
508 (before-line-breaking-callback . ,Clef::before_line_breaking)
510 (break-align-symbol . Clef_item)
511 (visibility-lambda . ,begin-of-line-visible)
512 (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
517 (molecule-callback . ,Chord_name::brew_molecule)
518 (interfaces . (chord-name-interface))
519 (after-line-breaking-callback . ,Chord_name::after_line_breaking)
520 (chord-name-function . ,default-chord-name-function)
526 (interfaces . (collision-interface))
528 (name . "NoteCollision")
532 (molecule-callback . ,Crescendo::brew_molecule)
533 (interfaces . (crescendo-interface dynamic-interface))
535 (shorten-for-letter . 4.0)
537 (dash-thickness . 1.2)
540 (self-alignment-Y . 0)
541 (Y-offset-callbacks . (,Side_position::aligned_on_self))
545 (interfaces . (dot-column-interface axis-group-interface ))
551 (interfaces . (dot-interface))
552 (molecule-callback . ,Dots::brew_molecule)
555 (Y-offset-callbacks . (,Dots::quantised_position_callback ,Staff_symbol_referencer::callback))
562 (interfaces . (dynamic-interface))
563 (Y-offset-callbacks . (,Side_position::aligned_on_self))
565 (molecule-callback . ,Text_item::brew_molecule)
566 (script-priority . 100)
567 (self-alignment-Y . 0)
568 (name . "DynamicText")
571 DynamicLineSpanner = #`(
572 (interfaces . (dynamic-interface axis-group-interface side-position-interface))
576 (name . "dynamic alignment")
580 (break-align-symbol . Left_edge_item)
586 (interfaces . (finger-interface text-script-interface text-item-interface side-position-interface))
587 (molecule-callback . ,Text_item::brew_molecule)
589 (self-alignment-X . 0)
594 (interfaces . (axis-group-interface align-interface))
596 (horizontal-space . 1.2)
598 (before-line-breaking-callback . ,Grace_align_item::before_line_breaking)
599 (name . "GraceAlignment")
602 HaraKiriVerticalGroup = #`(
603 (Y-offset-callbacks . (,Hara_kiri_group_spanner::force_hara_kiri_callback))
604 (Y-extent-callback . ,Hara_kiri_group_spanner::y_extent)
605 (interfaces . (hara-kiri-group-interface))
607 (name . "HaraKiriVerticalGroup")
611 (interfaces . (lyric-hyphen-interface))
614 (minimum-length . 0.5)
615 (molecule-callback . ,Hyphen_spanner::brew_molecule)
616 (Y-extent-callback . ,Score_element::point_dimension_callback)
617 (name . "LyricHyphen")
621 (interfaces . (instrument-name-interface))
623 (Y-offset-callbacks . (,Side_position::centered_on_parent))
624 (molecule-callback . ,Text_item::brew_molecule)
625 (break-align-symbol . Instrument_name)
626 (visibility-lambda . ,begin-of-line-visible)
627 (name . "InstrumentName")
631 (interfaces . (key-item-interface))
632 (molecule-callback . ,Key_item::brew_molecule)
633 (break-align-symbol . Key_item)
634 (visibility-lambda . ,begin-of-line-visible)
636 (name . "KeySignature")
640 (molecule-callback . ,Local_key_item::brew_molecule)
642 (right-padding . 0.4)
643 (interfaces . (accidentals-interface))
644 (name . "Accidentals")
649 (interfaces . (axis-group-interface))
650 (name . "LineOfScore")
654 (interfaces . (lyric-extender-interface))
655 (molecule-callback . ,Lyric_extender::brew_molecule)
656 (height . 0.8) ; stafflinethickness;
657 (right-trim-amount . 0.5)
658 (Y-extent-callback . ,Score_element::point_dimension_callback)
659 (name . "LyricExtender")
663 (interfaces . (lyric-syllable-interface text-item-interface))
664 (molecule-callback . ,Text_item::brew_molecule)
665 (X-offset-callbacks . (,Side_position::aligned_on_self))
666 (self-alignment-X . 0)
673 (interfaces . (mark-interface side-position-interface))
674 (molecule-callback . ,Text_item::brew_molecule)
676 (visibility-lambda . ,end-of-line-invisible)
678 (name . "RehearsalMark")
681 MultiMeasureRest = #`(
682 (interfaces . (multi-measure-rest-interface))
683 (spacing-procedure . ,Multi_measure_rest::set_spacing_rods)
684 (molecule-callback . ,Multi_measure_rest::brew_molecule)
687 (padding . 2.0) ; staffspace
688 (minimum-width . 12.5) ; staffspace
689 (name . "MultiMeasureRest")
693 (interfaces . (axis-group-interface note-column-interface))
695 (name . "NoteColumn")
699 (interfaces . (note-head-interface rhythmic-head-interface))
701 (molecule-callback . ,Note_head::brew_molecule)
702 (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
707 (molecule-callback . ,Text_item::brew_molecule)
712 (self-alignment-X . 0)
714 (visibility-lambda . ,begin-of-line-visible)
715 (X-offset-callbacks .
716 (,Side_position::centered_on_parent
717 ,Side_position::aligned_on_self
718 ,Side_position::aligned_side
720 (molecule-callback . ,Text_item::brew_molecule)
722 (name . "OctavateEight")
726 (interfaces . (paper-column-interface axis-group-interface))
729 (name . "PaperColumn")
733 (interfaces . (rest-interface rhythmic-head-interface))
734 (after-line-breaking-callback . ,Rest::after_line_breaking)
735 (molecule-callback . ,Rest::brew_molecule)
736 (minimum-beam-collision-distance . 1.5)
741 (interfaces . (rest-collision-interface))
742 (minimum-distance . 0.75)
743 (name . "RestCollision")
747 (molecule-callback . ,Script::brew_molecule)
748 (interfaces . (script-interface side-position-interface))
749 (X-offset-callbacks . (,Side_position::centered_on_parent))
754 (before-line-breaking-callback . ,Script_column::before_line_breaking)
755 (name . "ScriptColumn")
758 Slur = #default-basic-slur-properties
761 (spacing-procedure . ,Spacing_spanner::set_springs)
763 ;; assume that notes at least this long are present.
764 (maximum-duration-for-spacing . ,(make-moment 1 8))
765 (name . "SpacingSpanner")
768 (interfaces . (span-arpeggio-interface))
769 (molecule-callback . ,Span_arpeggio::brew_molecule)
770 (name . "SpanArpeggio")
773 (interfaces . (bar-interface span-bar-interface))
774 (break-align-symbol . Staff_bar)
775 (barsize-procedure . ,Span_bar::get_bar_size)
776 (molecule-callback . ,Bar::brew_molecule)
777 (visibility-lambda . ,begin-of-line-invisible)
778 (X-extent-callback . ,Span_bar::width_callback)
779 (Y-offset-callbacks . (,Span_bar::center_on_spanned_callback))
783 (before-line-breaking-callback . ,Span_bar::before_line_breaking)
787 ;; Ross. page 151 lists other values, we opt for a leaner look
791 (hair-thickness . 1.6)
792 (thick-thickness . 6.0)
798 (molecule-callback . ,Text_item::brew_molecule)
799 (break-align-symbol . Clef_item)
800 (visibility-lambda . ,begin-of-line-visible)
801 (name . "StanzaNumber")
805 (interfaces . (staff-symbol-interface ))
806 (molecule-callback . ,Staff_symbol::brew_molecule)
809 (name . "StaffSymbol")
812 SystemStartDelimiter = #`(
813 (molecule-callback . ,System_start_delimiter::brew_molecule)
814 (after-line-breaking-callback . ,System_start_delimiter::after_line_breaking)
815 (collapse-height . 1.0)
821 (bracket-thick . 0.25)
822 (bracket-width . 2.0)
823 (name . "SystemStartDelimiter")
827 (molecule-callback . ,Text_item::brew_molecule)
828 (no-spacing-rods . #t)
829 (interfaces . (text-script-interface text-item-interface side-position-interface))
831 (name . "TextScript")
835 (interfaces . (tie-interface))
836 (molecule-callback . ,Tie::brew_molecule)
837 (spacing-procedure . ,Tie::set_spacing_rods)
838 (staffline-clearance . 0.24)
839 (details . ((ratio . 0.333) (height-limit . 1.0)))
842 (minimum-length . 2.5)
847 (after-line-breaking-callback . ,Tie_column::after_line_breaking)
848 (interfaces . (tie-column-interface))
853 (interfaces . (time-signature-interface))
854 (molecule-callback . ,Time_signature::brew_molecule)
855 (break-align-symbol . Time_signature)
856 (visibility-lambda . ,all-visible)
858 (name . "TimeSignature")
865 (after-line-breaking-callback . ,Tuplet_spanner::after_line_breaking)
866 (molecule-callback . ,Tuplet_spanner::brew_molecule)
867 (interfaces . (tuplet-spanner-interface))
868 (name "TupletBracket")
872 (molecule-callback . ,Text_item::brew_molecule)
873 (X-offset-callbacks . (,Side_position::aligned_on_self))
874 (Y-offset-callbacks .
875 (,Side_position::aligned_side
876 ,Side_position::centered_on_parent))
879 (no-spacing-rods . #t)
880 (self-alignment-X . 0)
881 (name . "SostenutoPedal")
886 (interfaces . (stem-interface))
887 (before-line-breaking-callback . ,Stem::before_line_breaking)
888 (molecule-callback . ,Stem::brew_molecule)
890 (beamed-lengths . (0.0 2.5 2.0 1.5))
891 (beamed-minimum-lengths . (0.0 1.5 1.25 1.0))
893 ;; Stems in unnatural (forced) direction should be shortened,
894 ;; according to [Roush & Gourlay]. Their suggestion to knock off
895 ;; a whole staffspace seems a bit drastical: we'll do half.
897 (lengths . (3.5 3.5 3.5 4.5 5.0))
898 (stem-shorten . (0.5))
899 ; if stem is on middle line, choose this direction.
900 (default-neutral-direction . 1)
901 (X-offset-callbacks . (,Stem::off_callback))
906 (molecule-callback . ,Stem_tremolo::brew_molecule)
907 (beam-width . 2.0) ; staff-space
908 (beam-thickness . 0.42) ; staff-space
909 (beam-space-function . ,default-beam-space-function)
910 (name . "StemTremolo")
914 (interfaces . (separation-item-interface))
915 (name . "SeparationItem")
918 SeparatingGroupSpanner = #`(
919 (interfaces . (separation-spanner-interface))
920 (spacing-procedure . ,Separating_group_spanner::set_spacing_rods)
921 (name . "SeparatingGroupSpanner")
925 (interfaces . (sustain-pedal-interface side-position-interface))
926 (no-spacing-rods . #t)
927 (molecule-callback . ,Sustain_pedal::brew_molecule)
928 (self-alignment-X . 0)
929 (X-offset-callbacks . (,Side_position::aligned_on_self))
930 (Y-offset-callbacks .
931 (,Side_position::aligned_side
932 ,Side_position::centered_on_parent))
934 (name . "SustainPedal")
938 (molecule-callback . ,Text_item::brew_molecule)
940 (no-spacing-rods . #t)
941 (self-alignment-X . 0)
942 (X-offset-callbacks . (,Side_position::aligned_on_self))
943 (Y-offset-callbacks .
944 (,Side_position::aligned_side
945 ,Side_position::centered_on_parent))
947 (name . "UnaChordaPedal")
951 (molecule-callback . ,Volta_spanner::brew_molecule)
952 (interfaces . (volta-spanner-interface side-position-interface))
955 (thickness . 1.6) ; stafflinethickness
956 (height . 2.0) ; staffspace;
958 (name . "VoltaBracket")
961 VerticalAlignment = #`(
963 (interfaces . (align-interface axis-group-interface))
964 (Y-extent-callback . ,Axis_group_interface::group_extent_callback)
965 (X-extent-callback . #f)
967 (name . "VerticalAlignment")
970 VerticalAxisGroup = #`(
972 (interfaces . (axis-group-interface))
973 (name . "VerticalAxisGroup")
977 \include "auto-beam-settings.ly";
981 OrchestralScoreContext= \translator {