2 % setup for Request->Element conversion. Guru-only
5 StaffContext=\translator {
6 \type "Engraver_group_engraver";
8 \consists "Output_property_engraver";
11 Generic_property_list = #generic-staff-properties
12 \consists "Property_engraver";
14 \consists "Multi_measure_rest_engraver";
15 \consists "Bar_engraver";
16 % Bar_engraver must be first so default bars aren't overwritten
19 voltaPadding = #5 % urg, in \pt
20 voltaMinimumSpace = #25 % urg, in \pt
22 StaffMinimumVerticalExtent = #(cons -4.0 4.0)
24 \consists "Repeat_engraver";
27 % name, glyph id, c0 position
28 supportedClefTypes = #'(
33 ("french" . ("G" -4 ))
34 ("soprano" . ("C" -4 ))
35 ("mezzosoprano" . ("C" -2 ))
38 ("baritone" . ("C" 4 ))
39 ("varbaritone" . ("F" 0))
44 clefPitches = #'(("G" . -4)
48 \consists "Clef_engraver";
49 \consists "Key_engraver";
50 \consists "Time_signature_engraver";
51 \consists "Staff_symbol_engraver";
52 \consists "Collision_engraver";
53 \consists "Rest_collision_engraver";
54 \consists "Local_key_engraver";
56 \consistsend "Axis_group_engraver";
61 The Instrument_name_engraver puts the name of the instrument
62 (\property Staff.instrument; Staff.instr for subsequent lines)
63 to the left of a staff.
64 Usually, you only want this in the full score, not in the parts.
66 \consists "Instrument_name_engraver";
69 defaultClef = #"treble"
71 \consists "Separating_line_group_engraver";
74 dynamicStyle = #"dynamic"
77 \translator{\StaffContext }
79 \type "Engraver_group_engraver";
81 alignmentReference = \center;
82 \consists "System_start_delimiter_engraver";
83 systemStartDelimiterGlyph = #'bracket
88 \accepts "RhythmicStaff";
89 \accepts "GrandStaff";
90 \accepts "PianoStaff";
94 \accepts "ChordNames";
98 RhythmicStaffContext=\translator{
99 \type "Engraver_group_engraver";
100 numberOfStaffLines = #1
101 \consists "Property_engraver";
102 \consists "Output_property_engraver";
104 Generic_property_list = #generic-staff-properties
106 barSize = 4.0 * \interline ;
107 \consists "Pitch_squash_engraver";
108 \consists "Separating_line_group_engraver";
111 voltaPadding = #5 % urg, in \pt
112 voltaMinimumSpace = #15 % urg, in \pt
113 \consists "Repeat_engraver";
114 \consists "Bar_engraver";
115 \consists "Time_signature_engraver";
116 \consists "Staff_symbol_engraver";
117 \consistsend "Axis_group_engraver";
120 \translator{\RhythmicStaffContext}
122 VoiceContext = \translator {
123 \type "Engraver_group_engraver";
126 dynamicPadding = #3 % urg, in \pt
127 dynamicMinimumSpace = #6 % urg, in \pt
129 Generic_property_list = #generic-voice-properties
130 \consists "Output_property_engraver";
132 \consists "Dynamic_engraver"; % must come before text_engraver.
133 \consists "Property_engraver";
135 \consists "Breathing_sign_engraver";
136 \consists "Rest_engraver";
137 \consists "Dot_column_engraver";
138 \consists "Stem_engraver";
139 \consists "Beam_engraver";
140 \consists "Auto_beam_engraver";
141 \include "auto-beam-settings.ly";
143 \consists "Chord_tremolo_engraver";
144 \consists "Melisma_engraver";
145 textScriptPadding = #3.0
146 \consists "Text_engraver";
149 startSustain = #"Ped."
151 stopStartSustain = #"*Ped."
152 startUnaChorda = #"una chorda"
153 stopUnaChorda = #"tre chorde"
154 \consists "Piano_pedal_engraver";
155 \consists "Script_engraver";
156 \consists "Script_column_engraver";
157 \consists "Rhythmic_column_engraver";
158 \consists "Slur_engraver";
159 \consists "Tie_engraver";
160 \consists "Tuplet_engraver";
161 \consists "Grace_position_engraver";
162 \consists "Skip_req_swallow_translator";
163 \accepts Thread; % bug if you leave out this!
167 GraceContext=\translator {
168 \type "Grace_engraver_group";
170 \consists "Output_property_engraver";
172 Generic_property_list = #generic-grace-properties
174 \consists "Note_heads_engraver";
175 \consists "Local_key_engraver";
176 \consists "Stem_engraver";
177 \consists "Beam_engraver";
178 \consists "Slur_engraver";
180 \consists "Auto_beam_engraver";
181 \include "auto-beam-settings.ly";
182 \consists "Align_note_column_engraver";
184 \consists "Rhythmic_column_engraver";
185 \consists "Dynamic_engraver";
186 \consists "Text_engraver";
188 \consists "Property_engraver";
192 weAreGraceContext = ##t
196 verticalDirection = \up ;
197 graceAccidentalSpace= 1.5 * \staffspace;
200 \translator{\GraceContext}
201 \translator {\VoiceContext}
203 ThreadContext = \translator{
204 \type Engraver_group_engraver;
205 \consists "Note_heads_engraver" ;
206 \consists "Output_property_engraver";
207 Generic_property_list = #generic-thread-properties
208 \consists "Property_engraver";
212 \translator{\ThreadContext}
213 GrandStaffContext=\translator{
214 \type "Engraver_group_engraver";
216 \consists "Span_bar_engraver";
217 \consists "System_start_delimiter_engraver";
218 systemStartDelimiterGlyph = #'brace
220 \consists "Property_engraver";
221 Generic_property_list = #generic-grand-staff-properties
224 \translator{\GrandStaffContext}
226 PianoStaffContext = \translator{\GrandStaffContext
227 alignmentReference = \center;
229 \consists "Vertical_align_engraver";
230 minVerticalAlign = 3.0*\staffheight;
231 maxVerticalAlign = 3.0*\staffheight;
233 % \consistsend "Axis_group_engraver";
237 \translator{\PianoStaffContext}
238 StaffGroupContext= \translator {
239 \type "Engraver_group_engraver";
240 \consists "Span_bar_engraver";
241 \consists "Output_property_engraver";
242 \consists "System_start_delimiter_engraver";
243 systemStartDelimiterGlyph = #'bracket
251 \accepts "RhythmicStaff";
252 \accepts "GrandStaff";
253 \accepts "PianoStaff";
256 \accepts "ChordNames";
259 \translator { \StaffGroupContext }
262 LyricsVoiceContext= \translator{
263 \type "Engraver_group_engraver";
264 \consistsend "Axis_group_engraver";
267 \consists "Separating_line_group_engraver";
268 \consists "Lyric_engraver";
269 \consists "Extender_engraver";
270 \consists "Hyphen_engraver";
272 \translator{ \LyricsVoiceContext }
274 LyricsContext = \translator {
275 \type "Engraver_group_engraver";
277 \consists Vertical_align_engraver; %need this for getting folded repeats right.
278 Generic_property_list = #generic-lyrics-properties
279 \consists "Property_engraver";
280 \consistsend "Axis_group_engraver";
282 \accepts "LyricVoice";
284 \translator { \LyricsContext }
286 ChordNameVoiceContext = \translator {
287 \type "Engraver_group_engraver";
288 \name ChordNameVoice ;
290 \consists "Output_property_engraver";
291 \consistsend "Axis_group_engraver";
292 \consists "Separating_line_group_engraver";
293 \consists "Chord_name_engraver";
295 \translator {\ChordNameVoiceContext}
297 ChordNameContext = \translator {
298 \type "Engraver_group_engraver";
301 Generic_property_list = #generic-chord-staff-properties
302 \consists "Property_engraver";
303 \consists "Output_property_engraver";
304 \accepts "ChordNameVoice";
305 \consistsend "Axis_group_engraver";
307 \translator { \ChordNameContext }
310 ScoreWithNumbers = \translator {
311 \type "Score_engraver";
313 % uncomment to bar numbers on a whole system.
314 \consists "Bar_number_engraver";
317 StupidScore = \translator {
318 \type "Score_engraver";
320 \consists "Note_heads_engraver";
325 BarNumberingStaffContext = \translator {
327 \consists "Mark_engraver";
330 HaraKiriStaffContext = \translator {
332 \remove "Axis_group_engraver";
333 \consistsend "Hara_kiri_engraver";
334 \consists "Instrument_name_engraver";
338 The HaraKiriStaffContexts doesn't override \name,
339 so it is still named `Staff'.
341 %\translator { \HaraKiriStaffContext }
344 OrchestralPartStaffContext = \translator {
346 \consists "Mark_engraver";
349 ScoreContext = \translator {
350 \type Score_engraver;
353 marginScriptPadding = #10 % urg, in \pt
355 \consists "Timing_engraver";
356 \consists "Output_property_engraver";
358 %bracketCollapseHeight = #10 % \pt
359 \consists "System_start_delimiter_engraver";
361 % \consists "Score_priority_engraver";
362 \consists "Break_align_engraver";
363 breakAlignOrder = #'(
373 \consists "Spacing_engraver";
375 \consists "Vertical_align_engraver";
376 \consists "Bar_number_engraver";
377 alignmentReference = \down;
378 defaultClef = #"treble"
379 defaultBarType = #"|"
380 systemStartDelimiterGlyph = #'bar-line
382 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
383 % default settings, mainly for breakable items
384 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
385 basicBarNumberProperties = #`(
387 (visibility-lambda . ,begin-of-line-visible)
389 basicMarkProperties = #'(
391 (visibility-lambda . end-of-line-invisible)
393 leftEdgeBasicProperties = #'(
394 (break-align-symbol . Left_edge_item)
398 staffSymbolBasicProperties = #'(
402 basicTimeSignatureProperties = #`(
403 (break-align-symbol . Time_signature)
404 (visibility-lambda . ,all-visible)
407 basicBarlineProperties = #`(
408 (break-align-symbol . Staff_bar)
409 (visibility-lambda . ,begin-of-line-invisible)
412 basicSystemStartDelimiterProperties = #'(
413 (collapse-height . 1.0)
415 basicKeyProperties = #`(
416 (break-align-symbol . Key_item)
417 (visibility-lambda . ,begin-of-line-visible)
420 basicClefItemProperties = #`(
422 (break-align-symbol . Clef_item)
423 (visibility-lambda . ,begin-of-line-visible)
426 basicBeamProperties = #`(
427 (beam-thickness . 0.42) ; interline!
429 basicStemTremoloProperties = #'(
430 (beam-width . 4.0) ; interline!
431 (beam-thickness . 0.42) ; interline!
434 basicBreathingSignProperties = #'(
435 (break-align-symbol . Breathing_sign)
437 (visibility-lambda . ,begin-of-line-invisible)
439 basicOctavateEightProperties = #'(
440 (self-alignment-X . 0)
444 basicDynamicLineSpannerProperties = #`(
447 basicDynamicTextProperties = # `(
449 (script-priority . 100)
450 (self-alignment-Y . 0)
452 basicLyricTextProperties = #`(
455 basicRestCollisionProperties = #`(
458 basicCollisionProperties = #`(
462 basicSingleMaltGroupingItemProperties = #'(
465 basicBreakAlignProperties = #'(
468 basicInstrumentNameProperties = #`(
470 (break-align-symbol . Instrument_name)
471 (visibility-lambda . ,begin-of-line-visible)
473 basicLocalKeyProperties = #`(
475 (right-padding . 0.4)
479 \accepts "StaffGroup";
480 \accepts "RhythmicStaff";
482 \accepts "ChordNames";
483 \accepts "GrandStaff";
484 \accepts "ChoirStaff";
485 \accepts "PianoStaff";
486 \accepts "NoteNames";
489 markVisibilityFunction = #end-of-line-invisible
492 \translator { \ScoreContext }
494 OrchestralScoreContext= \translator {
497 barScriptPadding = #2.0 % dimension \pt
498 markScriptPadding = #4.0
500 \consists "Mark_engraver";
504 \type "Engraver_group_engraver";
506 \consistsend "Axis_group_engraver";
507 \consists "Note_name_engraver";