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 = #'staff-height
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";
147 \consists "Script_engraver";
148 \consists "Script_column_engraver";
149 \consists "Rhythmic_column_engraver";
150 \consists "Slur_engraver";
151 \consists "Tie_engraver";
152 \consists "Tuplet_engraver";
153 \consists "Grace_position_engraver";
154 \consists "Skip_req_swallow_translator";
155 \accepts Thread; % bug if you leave out this!
159 GraceContext=\translator {
160 \type "Grace_engraver_group";
162 \consists "Output_property_engraver";
164 Generic_property_list = #generic-grace-properties
166 \consists "Note_heads_engraver";
167 \consists "Local_key_engraver";
168 \consists "Stem_engraver";
169 \consists "Beam_engraver";
170 \consists "Slur_engraver";
172 \consists "Auto_beam_engraver";
173 \include "auto-beam-settings.ly";
174 \consists "Align_note_column_engraver";
176 \consists "Rhythmic_column_engraver";
177 \consists "Dynamic_engraver";
178 \consists "Text_engraver";
180 \consists "Property_engraver";
184 weAreGraceContext = ##t
188 verticalDirection = \up ;
189 graceAccidentalSpace= 1.5 * \staffspace;
192 \translator{\GraceContext}
193 \translator {\VoiceContext}
195 ThreadContext = \translator{
196 \type Engraver_group_engraver;
197 \consists "Note_heads_engraver" ;
198 \consists "Output_property_engraver";
199 Generic_property_list = #generic-thread-properties
200 \consists "Property_engraver";
204 \translator{\ThreadContext}
205 GrandStaffContext=\translator{
206 \type "Engraver_group_engraver";
208 \consists "Span_bar_engraver";
209 \consists "System_start_delimiter_engraver";
210 systemStartDelimiterGlyph = #'brace
212 \consists "Property_engraver";
213 Generic_property_list = #generic-grand-staff-properties
216 \translator{\GrandStaffContext}
218 PianoStaffContext = \translator{\GrandStaffContext
219 alignmentReference = \center;
221 \consists "Vertical_align_engraver";
222 minVerticalAlign = 3.0*\staffheight;
223 maxVerticalAlign = 3.0*\staffheight;
225 % \consistsend "Axis_group_engraver";
229 \translator{\PianoStaffContext}
230 StaffGroupContext= \translator {
231 \type "Engraver_group_engraver";
232 \consists "Span_bar_engraver";
233 \consists "Output_property_engraver";
234 \consists "System_start_delimiter_engraver";
235 systemStartDelimiterGlyph = #'bracket
238 \consistsend "Axis_group_engraver" ;
243 \accepts "RhythmicStaff";
244 \accepts "GrandStaff";
245 \accepts "PianoStaff";
248 \accepts "ChordNames";
251 \translator { \StaffGroupContext }
254 LyricsVoiceContext= \translator{
255 \type "Engraver_group_engraver";
256 \consistsend "Axis_group_engraver";
259 \consists "Separating_line_group_engraver";
260 \consists "Lyric_engraver";
261 \consists "Extender_engraver";
262 \consists "Hyphen_engraver";
264 \translator{ \LyricsVoiceContext }
266 LyricsContext = \translator {
267 \type "Engraver_group_engraver";
269 \consists Vertical_align_engraver; %need this for getting folded repeats right.
270 Generic_property_list = #generic-lyrics-properties
271 \consists "Property_engraver";
272 \consistsend "Axis_group_engraver";
274 \accepts "LyricVoice";
276 \translator { \LyricsContext }
278 ChordNameVoiceContext = \translator {
279 \type "Engraver_group_engraver";
280 \name ChordNameVoice ;
282 \consists "Output_property_engraver";
283 \consistsend "Axis_group_engraver";
284 \consists "Separating_line_group_engraver";
285 \consists "Chord_name_engraver";
287 \translator {\ChordNameVoiceContext}
289 ChordNameContext = \translator {
290 \type "Engraver_group_engraver";
293 \consists "Output_property_engraver";
294 \accepts "ChordNameVoice";
295 \consistsend "Axis_group_engraver";
297 \translator { \ChordNameContext }
300 ScoreWithNumbers = \translator {
301 \type "Score_engraver";
303 % uncomment to bar numbers on a whole system.
304 \consists "Bar_number_engraver";
307 StupidScore = \translator {
308 \type "Score_engraver";
310 \consists "Note_heads_engraver";
315 BarNumberingStaffContext = \translator {
317 \consists "Mark_engraver";
318 \consists "Bar_number_engraver";
321 HaraKiriStaffContext = \translator {
323 \remove "Axis_group_engraver";
324 \consistsend "Hara_kiri_engraver";
325 \consists "Instrument_name_engraver";
329 The HaraKiriStaffContexts doesn't override \name,
330 so it is still named `Staff'.
332 %\translator { \HaraKiriStaffContext }
335 OrchestralPartStaffContext = \translator {
337 \consists "Mark_engraver";
338 \consists "Bar_number_engraver";
341 ScoreContext = \translator {
342 \type Score_engraver;
345 marginScriptPadding = #10 % urg, in \pt
347 \consists "Timing_engraver";
348 \consists "Output_property_engraver";
350 %bracketCollapseHeight = #10 % \pt
351 \consists "System_start_delimiter_engraver";
353 % \consists "Score_priority_engraver";
354 \consists "Break_align_engraver";
355 breakAlignOrder = #'(
365 \consists "Spacing_engraver";
366 \consists "Vertical_align_engraver";
367 alignmentReference = \down;
368 defaultClef = #"treble"
369 defaultBarType = #"|"
371 \accepts "StaffGroup";
372 \accepts "RhythmicStaff";
374 \accepts "ChordNames";
375 \accepts "GrandStaff";
376 \accepts "ChoirStaff";
377 \accepts "PianoStaff";
378 \accepts "NoteNames";
380 markVisibilityFunction = #end-of-line-invisible
381 barNumberVisibilityFunction = #begin-of-line-visible
384 \translator { \ScoreContext }
386 OrchestralScoreContext= \translator {
389 barScriptPadding = #2.0 % dimension \pt
390 markScriptPadding = #4.0
392 \consists "Bar_number_engraver";
393 \consists "Mark_engraver";
397 \type "Engraver_group_engraver";
399 \consistsend "Axis_group_engraver";
400 \consists "Note_name_engraver";