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 "Piano_pedal_engraver";
148 \consists "Script_engraver";
149 \consists "Script_column_engraver";
150 \consists "Rhythmic_column_engraver";
151 \consists "Slur_engraver";
152 \consists "Tie_engraver";
153 \consists "Tuplet_engraver";
154 \consists "Grace_position_engraver";
155 \consists "Skip_req_swallow_translator";
156 \accepts Thread; % bug if you leave out this!
160 GraceContext=\translator {
161 \type "Grace_engraver_group";
163 \consists "Output_property_engraver";
165 Generic_property_list = #generic-grace-properties
167 \consists "Note_heads_engraver";
168 \consists "Local_key_engraver";
169 \consists "Stem_engraver";
170 \consists "Beam_engraver";
171 \consists "Slur_engraver";
173 \consists "Auto_beam_engraver";
174 \include "auto-beam-settings.ly";
175 \consists "Align_note_column_engraver";
177 \consists "Rhythmic_column_engraver";
178 \consists "Dynamic_engraver";
179 \consists "Text_engraver";
181 \consists "Property_engraver";
185 weAreGraceContext = ##t
189 verticalDirection = \up ;
190 graceAccidentalSpace= 1.5 * \staffspace;
193 \translator{\GraceContext}
194 \translator {\VoiceContext}
196 ThreadContext = \translator{
197 \type Engraver_group_engraver;
198 \consists "Note_heads_engraver" ;
199 \consists "Output_property_engraver";
200 Generic_property_list = #generic-thread-properties
201 \consists "Property_engraver";
205 \translator{\ThreadContext}
206 GrandStaffContext=\translator{
207 \type "Engraver_group_engraver";
209 \consists "Span_bar_engraver";
210 \consists "System_start_delimiter_engraver";
211 systemStartDelimiterGlyph = #'brace
213 \consists "Property_engraver";
214 Generic_property_list = #generic-grand-staff-properties
217 \translator{\GrandStaffContext}
219 PianoStaffContext = \translator{\GrandStaffContext
220 alignmentReference = \center;
222 \consists "Vertical_align_engraver";
223 minVerticalAlign = 3.0*\staffheight;
224 maxVerticalAlign = 3.0*\staffheight;
226 % \consistsend "Axis_group_engraver";
230 \translator{\PianoStaffContext}
231 StaffGroupContext= \translator {
232 \type "Engraver_group_engraver";
233 \consists "Span_bar_engraver";
234 \consists "Output_property_engraver";
235 \consists "System_start_delimiter_engraver";
236 systemStartDelimiterGlyph = #'bracket
239 \consistsend "Axis_group_engraver" ;
244 \accepts "RhythmicStaff";
245 \accepts "GrandStaff";
246 \accepts "PianoStaff";
249 \accepts "ChordNames";
252 \translator { \StaffGroupContext }
255 LyricsVoiceContext= \translator{
256 \type "Engraver_group_engraver";
257 \consistsend "Axis_group_engraver";
260 \consists "Separating_line_group_engraver";
261 \consists "Lyric_engraver";
262 \consists "Extender_engraver";
263 \consists "Hyphen_engraver";
265 \translator{ \LyricsVoiceContext }
267 LyricsContext = \translator {
268 \type "Engraver_group_engraver";
270 \consists Vertical_align_engraver; %need this for getting folded repeats right.
271 Generic_property_list = #generic-lyrics-properties
272 \consists "Property_engraver";
273 \consistsend "Axis_group_engraver";
275 \accepts "LyricVoice";
277 \translator { \LyricsContext }
279 ChordNameVoiceContext = \translator {
280 \type "Engraver_group_engraver";
281 \name ChordNameVoice ;
283 \consists "Output_property_engraver";
284 \consistsend "Axis_group_engraver";
285 \consists "Separating_line_group_engraver";
286 \consists "Chord_name_engraver";
288 \translator {\ChordNameVoiceContext}
290 ChordNameContext = \translator {
291 \type "Engraver_group_engraver";
294 \consists "Output_property_engraver";
295 \accepts "ChordNameVoice";
296 \consistsend "Axis_group_engraver";
298 \translator { \ChordNameContext }
301 ScoreWithNumbers = \translator {
302 \type "Score_engraver";
304 % uncomment to bar numbers on a whole system.
305 \consists "Bar_number_engraver";
308 StupidScore = \translator {
309 \type "Score_engraver";
311 \consists "Note_heads_engraver";
316 BarNumberingStaffContext = \translator {
318 \consists "Mark_engraver";
319 \consists "Bar_number_engraver";
322 HaraKiriStaffContext = \translator {
324 \remove "Axis_group_engraver";
325 \consistsend "Hara_kiri_engraver";
326 \consists "Instrument_name_engraver";
330 The HaraKiriStaffContexts doesn't override \name,
331 so it is still named `Staff'.
333 %\translator { \HaraKiriStaffContext }
336 OrchestralPartStaffContext = \translator {
338 \consists "Mark_engraver";
339 \consists "Bar_number_engraver";
342 ScoreContext = \translator {
343 \type Score_engraver;
346 marginScriptPadding = #10 % urg, in \pt
348 \consists "Timing_engraver";
349 \consists "Output_property_engraver";
351 %bracketCollapseHeight = #10 % \pt
352 \consists "System_start_delimiter_engraver";
354 % \consists "Score_priority_engraver";
355 \consists "Break_align_engraver";
356 breakAlignOrder = #'(
366 \consists "Spacing_engraver";
367 \consists "Vertical_align_engraver";
368 alignmentReference = \down;
369 defaultClef = #"treble"
370 defaultBarType = #"|"
372 \accepts "StaffGroup";
373 \accepts "RhythmicStaff";
375 \accepts "ChordNames";
376 \accepts "GrandStaff";
377 \accepts "ChoirStaff";
378 \accepts "PianoStaff";
379 \accepts "NoteNames";
381 markVisibilityFunction = #end-of-line-invisible
382 barNumberVisibilityFunction = #begin-of-line-visible
385 \translator { \ScoreContext }
387 OrchestralScoreContext= \translator {
390 barScriptPadding = #2.0 % dimension \pt
391 markScriptPadding = #4.0
393 \consists "Bar_number_engraver";
394 \consists "Mark_engraver";
398 \type "Engraver_group_engraver";
400 \consistsend "Axis_group_engraver";
401 \consists "Note_name_engraver";