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
21 \consists "Repeat_engraver";
24 % name, glyph id, c0 position
25 supportedClefTypes = #'(
30 ("french" . ("G" -4 ))
31 ("soprano" . ("C" -4 ))
32 ("mezzosoprano" . ("C" -2 ))
35 ("baritone" . ("C" 4 ))
36 ("varbaritone" . ("F" 0))
41 clefPitches = #'(("G" . -4)
45 \consists "Clef_engraver";
46 \consists "Key_engraver";
47 \consists "Time_signature_engraver";
48 \consists "Staff_symbol_engraver";
49 \consists "Collision_engraver";
50 \consists "Rest_collision_engraver";
51 \consists "Local_key_engraver";
53 \consistsend "Axis_group_engraver";
58 The Staff_margin_engraver puts the name of the instrument
59 (\property Staff.instrument; Staff.instr for subsequent lines)
60 to the left of a staff.
61 Usually, you only want this in the full score, not in the parts.
63 \consists "Staff_margin_engraver";
66 defaultClef = #"treble"
68 \consists "Separating_line_group_engraver";
71 dynamicStyle = #"dynamic"
74 \translator{\StaffContext }
76 \type "Engraver_group_engraver";
78 alignmentReference = \center;
79 \consists "Staff_group_bar_engraver";
83 \accepts "RhythmicStaff";
84 \accepts "GrandStaff";
85 \accepts "PianoStaff";
89 \accepts "ChordNames";
93 RhythmicStaffContext=\translator{
94 \type "Engraver_group_engraver";
95 numberOfStaffLines = #1
96 \consists "Property_engraver";
97 \consists "Output_property_engraver";
99 Generic_property_list = #generic-staff-properties
101 barSize = #'staff-height
102 \consists "Pitch_squash_engraver";
103 \consists "Separating_line_group_engraver";
106 voltaPadding = #5 % urg, in \pt
107 voltaMinimumSpace = #15 % urg, in \pt
108 \consists "Repeat_engraver";
109 \consists "Bar_engraver";
110 \consists "Time_signature_engraver";
111 \consists "Staff_symbol_engraver";
112 \consistsend "Axis_group_engraver";
115 \translator{\RhythmicStaffContext}
117 VoiceContext = \translator {
118 \type "Engraver_group_engraver";
121 dynamicPadding = #3 % urg, in \pt
122 dynamicMinimumSpace = #6 % urg, in \pt
124 Generic_property_list = #generic-voice-properties
125 \consists "Output_property_engraver";
127 \consists "Dynamic_engraver"; % must come before text_engraver.
128 \consists "Property_engraver";
130 \consists "Breathing_sign_engraver";
131 \consists "Rest_engraver";
132 \consists "Dot_column_engraver";
133 \consists "Stem_engraver";
134 \consists "Beam_engraver";
135 \consists "Auto_beam_engraver";
136 \include "auto-beam-settings.ly";
138 \consists "Chord_tremolo_engraver";
139 \consists "Melisma_engraver";
140 textScriptPadding = #3.0
141 \consists "Text_engraver";
142 \consists "Script_engraver";
143 \consists "Script_column_engraver";
144 \consists "Rhythmic_column_engraver";
145 \consists "Slur_engraver";
146 \consists "Tie_engraver";
147 \consists "Tuplet_engraver";
148 \consists "Grace_position_engraver";
149 \consists "Skip_req_swallow_translator";
150 \accepts Thread; % bug if you leave out this!
154 GraceContext=\translator {
155 \type "Grace_engraver_group";
157 \consists "Output_property_engraver";
159 Generic_property_list = #generic-grace-properties
161 \consists "Note_heads_engraver";
162 \consists "Local_key_engraver";
163 \consists "Stem_engraver";
164 \consists "Beam_engraver";
165 \consists "Slur_engraver";
167 \consists "Auto_beam_engraver";
168 \include "auto-beam-settings.ly";
169 \consists "Align_note_column_engraver";
171 \consists "Rhythmic_column_engraver";
172 \consists "Dynamic_engraver";
173 \consists "Text_engraver";
175 \consists "Property_engraver";
179 weAreGraceContext = ##t
183 verticalDirection = \up ;
184 graceAccidentalSpace= 1.5 * \staffspace;
187 \translator{\GraceContext}
188 \translator {\VoiceContext}
190 ThreadContext = \translator{
191 \type Engraver_group_engraver;
192 \consists "Note_heads_engraver" ;
193 \consists "Output_property_engraver";
194 Generic_property_list = #generic-thread-properties
195 \consists "Property_engraver";
199 \translator{\ThreadContext}
200 GrandStaffContext=\translator{
201 \type "Engraver_group_engraver";
203 \consists "Span_bar_engraver";
204 \consists "Piano_bar_engraver";
205 \consists "Property_engraver";
206 Generic_property_list = #generic-grand-staff-properties
209 \translator{\GrandStaffContext}
211 PianoStaffContext = \translator{\GrandStaffContext
212 alignmentReference = \center;
214 \consists "Vertical_align_engraver";
215 minVerticalAlign = 3.0*\staffheight;
216 maxVerticalAlign = 3.0*\staffheight;
218 % \consistsend "Axis_group_engraver";
222 \translator{\PianoStaffContext}
223 StaffGroupContext= \translator {
224 \type "Engraver_group_engraver";
225 \consists "Span_bar_engraver";
226 \consists "Output_property_engraver";
227 \consists "Staff_group_bar_engraver";
231 \accepts "RhythmicStaff";
232 \accepts "GrandStaff";
233 \accepts "PianoStaff";
236 \accepts "ChordNames";
239 \translator { \StaffGroupContext }
242 LyricsVoiceContext= \translator{
243 \type "Engraver_group_engraver";
244 \consistsend "Axis_group_engraver";
247 \consists "Separating_line_group_engraver";
248 \consists "Lyric_engraver";
249 \consists "Extender_engraver";
250 \consists "Hyphen_engraver";
252 \translator{ \LyricsVoiceContext }
254 LyricsContext = \translator {
255 \type "Engraver_group_engraver";
257 \consists Vertical_align_engraver; %need this for getting folded repeats right.
258 Generic_property_list = #generic-lyrics-properties
259 \consists "Property_engraver";
260 \consistsend "Axis_group_engraver";
262 \accepts "LyricVoice";
264 \translator { \LyricsContext }
266 ChordNameVoiceContext = \translator {
267 \type "Engraver_group_engraver";
268 \name ChordNameVoice ;
270 \consists "Output_property_engraver";
271 \consistsend "Axis_group_engraver";
272 \consists "Separating_line_group_engraver";
273 \consists "Chord_name_engraver";
275 \translator {\ChordNameVoiceContext}
277 ChordNameContext = \translator {
278 \type "Engraver_group_engraver";
281 \consists "Output_property_engraver";
282 \accepts "ChordNameVoice";
283 \consistsend "Axis_group_engraver";
285 \translator { \ChordNameContext }
288 ScoreWithNumbers = \translator {
289 \type "Score_engraver";
291 % uncomment to bar numbers on a whole system.
292 \consists "Bar_number_engraver";
295 StupidScore = \translator {
296 \type "Score_engraver";
298 \consists "Note_heads_engraver";
303 BarNumberingStaffContext = \translator {
305 \consists "Mark_engraver";
306 \consists "Bar_number_engraver";
309 HaraKiriStaffContext = \translator {
311 \remove "Axis_group_engraver";
312 \consistsend "Hara_kiri_engraver";
313 \consists "Staff_margin_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";
326 \consists "Bar_number_engraver";
329 ScoreContext = \translator {
330 \type Score_engraver;
333 marginScriptPadding = #10 % urg, in \pt
335 \consists "Timing_engraver";
336 \consists "Output_property_engraver";
338 %bracketCollapseHeight = #10 % \pt
339 \consists "Span_score_bar_engraver";
340 % \consists "Score_priority_engraver";
341 \consists "Break_align_engraver";
342 breakAlignOrder = #'(
351 \consists "Spacing_engraver";
352 \consists "Vertical_align_engraver";
353 alignmentReference = \down;
354 defaultClef = #"treble"
355 defaultBarType = #"|"
357 \accepts "StaffGroup";
358 \accepts "RhythmicStaff";
360 \accepts "ChordNames";
361 \accepts "GrandStaff";
362 \accepts "ChoirStaff";
363 \accepts "PianoStaff";
364 \accepts "NoteNames";
366 markVisibilityFunction = #end-of-line-invisible
367 barNumberVisibilityFunction = #begin-of-line-visible
368 marginVisibilityFunction = #begin-of-line-visible
371 \translator { \ScoreContext }
373 OrchestralScoreContext= \translator {
376 barScriptPadding = #2.0 % dimension \pt
377 markScriptPadding = #4.0
379 \consists "Bar_number_engraver";
380 \consists "Mark_engraver";
384 \type "Engraver_group_engraver";
386 \consistsend "Axis_group_engraver";
387 \consists "Note_name_engraver";