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
18 \consists "Repeat_engraver";
21 % name, glyph id, c0 position
22 supportedClefTypes = #'(
27 ("french" . ("G" -4 ))
28 ("soprano" . ("C" -4 ))
29 ("mezzosoprano" . ("C" -2 ))
32 ("baritone" . ("C" 4 ))
33 ("varbaritone" . ("F" 0))
38 clefPitches = #'(("G" . -4)
42 \consists "Clef_engraver";
43 \consists "Key_engraver";
44 \consists "Time_signature_engraver";
45 \consists "Staff_symbol_engraver";
46 \consists "Collision_engraver";
47 \consists "Rest_collision_engraver";
48 \consists "Local_key_engraver";
50 \consistsend "Axis_group_engraver";
55 The Staff_margin_engraver puts the name of the instrument
56 (\property Staff.instrument; Staff.instr for subsequent lines)
57 to the left of a staff.
58 Usually, you only want this in the full score, not in the parts.
60 \consists "Staff_margin_engraver";
63 defaultClef = #"treble"
65 \consists "Separating_line_group_engraver";
68 dynamicStyle = #"dynamic"
71 \translator{\StaffContext }
73 \type "Engraver_group_engraver";
75 alignmentReference = \center;
76 \consists "Staff_group_bar_engraver";
80 \accepts "RhythmicStaff";
81 \accepts "GrandStaff";
82 \accepts "PianoStaff";
86 \accepts "ChordNames";
90 RhythmicStaffContext=\translator{
91 \type "Engraver_group_engraver";
92 numberOfStaffLines = #1
93 \consists "Property_engraver";
94 \consists "Output_property_engraver";
96 Generic_property_list = #generic-staff-properties
98 barSize = #'staff-height
99 \consists "Pitch_squash_engraver";
100 \consists "Separating_line_group_engraver";
103 \consists "Repeat_engraver";
104 \consists "Bar_engraver";
105 \consists "Time_signature_engraver";
106 \consists "Staff_symbol_engraver";
107 \consistsend "Axis_group_engraver";
110 \translator{\RhythmicStaffContext}
112 VoiceContext = \translator {
113 \type "Engraver_group_engraver";
116 dynamicPadding = #5 % urg, in \pt
117 Generic_property_list = #generic-voice-properties
118 \consists "Output_property_engraver";
120 \consists "Dynamic_engraver"; % must come before text_engraver.
121 \consists "Property_engraver";
123 \consists "Breathing_sign_engraver";
124 \consists "Rest_engraver";
125 \consists "Dot_column_engraver";
126 \consists "Stem_engraver";
127 \consists "Beam_engraver";
128 \consists "Auto_beam_engraver";
129 \include "auto-beam-settings.ly";
130 \consists "Chord_tremolo_engraver";
132 \consists "Melisma_engraver";
133 textScriptPadding = #3.0
134 \consists "Text_engraver";
135 \consists "Script_engraver";
136 \consists "Script_column_engraver";
137 \consists "Rhythmic_column_engraver";
138 \consists "Slur_engraver";
139 \consists "Tie_engraver";
140 \consists "Tuplet_engraver";
141 \consists "Grace_position_engraver";
142 \consists "Skip_req_swallow_translator";
143 \accepts Thread; % bug if you leave out this!
147 GraceContext=\translator {
148 \type "Grace_engraver_group";
150 \consists "Output_property_engraver";
152 Generic_property_list = #generic-grace-properties
154 \consists "Note_heads_engraver";
155 \consists "Local_key_engraver";
156 \consists "Stem_engraver";
157 \consists "Beam_engraver";
158 \consists "Slur_engraver";
160 \consists "Auto_beam_engraver";
161 \include "auto-beam-settings.ly";
162 \consists "Align_note_column_engraver";
164 \consists "Rhythmic_column_engraver";
165 \consists "Dynamic_engraver";
167 \consists "Property_engraver";
171 weAreGraceContext = ##t
175 verticalDirection = \up ;
176 graceAccidentalSpace= 1.5 * \staffspace;
179 \translator{\GraceContext}
180 \translator {\VoiceContext}
182 ThreadContext = \translator{
183 \type Engraver_group_engraver;
184 \consists "Note_heads_engraver" ;
185 \consists "Output_property_engraver";
186 Generic_property_list = #generic-thread-properties
187 \consists "Property_engraver";
191 \translator{\ThreadContext}
192 GrandStaffContext=\translator{
193 \type "Engraver_group_engraver";
195 \consists "Span_bar_engraver";
196 \consists "Piano_bar_engraver";
197 \consists "Property_engraver";
198 Generic_property_list = #generic-grand-staff-properties
201 \translator{\GrandStaffContext}
203 PianoStaffContext = \translator{\GrandStaffContext
204 alignmentReference = \center;
206 \consists "Vertical_align_engraver";
207 minVerticalAlign = 3.0*\staffheight;
208 maxVerticalAlign = 3.0*\staffheight;
210 % \consistsend "Axis_group_engraver";
214 \translator{\PianoStaffContext}
215 StaffGroupContext= \translator {
216 \type "Engraver_group_engraver";
217 \consists "Span_bar_engraver";
218 \consists "Output_property_engraver";
219 \consists "Staff_group_bar_engraver";
223 \accepts "RhythmicStaff";
224 \accepts "GrandStaff";
225 \accepts "PianoStaff";
228 \accepts "ChordNames";
231 \translator { \StaffGroupContext }
234 LyricsVoiceContext= \translator{
235 \type "Engraver_group_engraver";
236 \consistsend "Axis_group_engraver";
239 \consists "Separating_line_group_engraver";
240 \consists "Lyric_engraver";
241 \consists "Extender_engraver";
242 \consists "Hyphen_engraver";
244 \translator{ \LyricsVoiceContext }
246 LyricsContext = \translator {
247 \type "Engraver_group_engraver";
249 \consists Vertical_align_engraver;%need this for getting folded repeats right.
251 \consists "Property_engraver";
252 \consistsend "Axis_group_engraver";
254 \accepts "LyricVoice";
256 \translator { \LyricsContext }
258 ChordNameVoiceContext = \translator {
259 \type "Engraver_group_engraver";
260 \name ChordNameVoice ;
262 \consists "Output_property_engraver";
263 \consistsend "Axis_group_engraver";
264 \consists "Separating_line_group_engraver";
265 \consists "Chord_name_engraver";
267 \translator {\ChordNameVoiceContext}
269 ChordNameContext = \translator {
270 \type "Engraver_group_engraver";
273 \consists "Output_property_engraver";
274 \accepts "ChordNameVoice";
275 \consistsend "Axis_group_engraver";
277 \translator { \ChordNameContext }
280 ScoreWithNumbers = \translator {
281 \type "Score_engraver";
283 % uncomment to bar numbers on a whole system.
284 \consists "Bar_number_engraver";
287 StupidScore = \translator {
288 \type "Score_engraver";
290 \consists "Note_heads_engraver";
295 BarNumberingStaffContext = \translator {
297 \consists "Mark_engraver";
298 \consists "Bar_number_engraver";
301 HaraKiriStaffContext = \translator {
303 \remove "Axis_group_engraver";
304 \consistsend "Hara_kiri_engraver";
305 \consists "Staff_margin_engraver";
309 The HaraKiriStaffContexts doesn't override \name,
310 so it is still named `Staff'.
312 %\translator { \HaraKiriStaffContext }
315 OrchestralPartStaffContext = \translator {
317 \consists "Mark_engraver";
318 \consists "Bar_number_engraver";
321 ScoreContext = \translator {
322 \type Score_engraver;
325 \consists "Timing_engraver";
326 \consists "Output_property_engraver";
328 \consists "Span_score_bar_engraver";
329 % \consists "Score_priority_engraver";
330 \consists "Break_align_engraver";
331 breakAlignOrder = #'(
340 \consists "Spacing_engraver";
341 \consists "Vertical_align_engraver";
342 alignmentReference = \down;
343 defaultClef = #"treble"
344 defaultBarType = #"|"
346 \accepts "StaffGroup";
347 \accepts "RhythmicStaff";
349 \accepts "ChordNames";
350 \accepts "GrandStaff";
351 \accepts "ChoirStaff";
352 \accepts "PianoStaff";
353 \accepts "NoteNames";
355 markVisibilityFunction = #end-of-line-invisible
356 barNumberVisibilityFunction = #begin-of-line-visible
357 marginVisibilityFunction = #begin-of-line-visible
360 \translator { \ScoreContext }
362 OrchestralScoreContext= \translator {
365 barScriptPadding = #2.0 % dimension \pt
366 markScriptPadding = #4.0
368 \consists "Bar_number_engraver";
369 \consists "Mark_engraver";
373 \type "Engraver_group_engraver";
375 \consistsend "Axis_group_engraver";
376 \consists "Note_name_engraver";