lilypond-1.3.10
[lilypond.git] / ly / engraver.ly
blobe33e182bbc2c17ba4d410c4ce48a7eb587f3cf4c
2 % setup for Request->Element conversion. Guru-only
5 StaffContext=\translator {
6 \type "Engraver_group_engraver";
7 \name Staff ;
9 barAuto = ##t
10 voltaVisibility = ##t
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
17 % with empty ones.
18 \consists "Repeat_engraver";
21 % name, glyph id, c0 position
22 supportedClefTypes = #'(
23 ("treble" "treble" -2)
24 ("violin" "treble" -2)
25 ("G" "treble" -2)
26 ("G2" "treble" -2)
27 ("french" "treble" -4 )
28 ("soprano" "alto" -4 )
29 ("mezzosoprano" "alto" -2 )
30 ("alto" "alto" 0 )
31 ("tenor" "alto" 2 )
32 ("baritone" "alto" 4 )
33 ("varbaritone" "bass" 0)
34 ("bass" "bass" 2 )
35 ("F" "bass" 2)
36 ("subbass" "bass" 4)
39 \consists "Clef_engraver";
40 \consists "Key_engraver";
41 \consists "Time_signature_engraver";
42 \consists "Staff_symbol_engraver";
43 \consists "Collision_engraver";
44 \consists "Rest_collision_engraver";
45 \consists "Local_key_engraver";
47 \consistsend "Axis_group_engraver";
52 The Staff_margin_engraver puts the name of the instrument
53 (\property Staff.instrument; Staff.instr for subsequent lines)
54 to the left of a staff.
57 \consists "Staff_margin_engraver";
59 defaultClef = #"treble"
61 marginBreakPriority = #-5
63 \consists "Separating_line_group_engraver";
65 \accepts "Voice";
66 dynamicStyle = #"dynamic"
69 \translator{\StaffContext }
70 \translator {
71 \type "Engraver_group_engraver";
72 \name ChoirStaff;
73 alignmentReference = \center;
74 \consists "Staff_group_bar_engraver";
77 \accepts "Staff";
78 \accepts "RhythmicStaff";
79 \accepts "GrandStaff";
80 \accepts "PianoStaff";
83 \accepts "Lyrics";
84 \accepts "ChordNames";
88 RhythmicStaffContext=\translator{
89 \type "Engraver_group_engraver";
90 numberOfStaffLines = #1
91 \consists "Property_engraver";
93 Generic_property_list = #generic-staff-properties
95 barSize = \staffheight;
96 \consists "Pitch_squash_engraver";
97 \consists "Separating_line_group_engraver";
98 \name RhythmicStaff;
100 \consists "Repeat_engraver";
101 \consists "Bar_engraver";
102 \consists "Time_signature_engraver";
103 \consists "Staff_symbol_engraver";
104 \consistsend "Axis_group_engraver";
105 \accepts "Voice";
107 \translator{\RhythmicStaffContext}
108 VoiceContext = \translator {
110 \type "Engraver_group_engraver";
111 dynamicPadding = #5.0
112 Generic_property_list = #generic-voice-properties
115 \consists "Dynamic_engraver"; % must come before text_engraver.
116 \name Voice ;
117 \consists "Property_engraver";
119 \consists "Breathing_sign_engraver";
120 \consists "Rest_engraver";
121 \consists "Dot_column_engraver";
122 \consists "Stem_engraver";
123 \consists "Beam_engraver";
124 \consists "Auto_beam_engraver";
125 \include "auto-beam-settings.ly";
126 \consists "Chord_tremolo_engraver";
128 \consists "Melisma_engraver";
129 textScriptPadding = #3.0
130 \consists "Text_engraver";
131 \consists "Script_engraver";
132 \consists "Script_column_engraver";
133 \consists "Rhythmic_column_engraver";
134 \consists "Slur_engraver";
135 \consists "Tie_engraver";
136 \consists "Tuplet_engraver";
137 \consists "Grace_position_engraver";
138 \consists "Skip_req_swallow_translator";
139 \accepts Thread; % bug if you leave out this!
140 \accepts Grace;
143 GraceContext=\translator {
144 \type "Grace_engraver_group";
145 \name "Grace";
147 Generic_property_list = #generic-grace-properties
149 \consists "Note_heads_engraver";
150 \consists "Local_key_engraver";
151 \consists "Stem_engraver";
152 \consists "Beam_engraver";
153 \consists "Slur_engraver";
155 \consists "Auto_beam_engraver";
156 \include "auto-beam-settings.ly";
157 \consists "Align_note_column_engraver";
159 \consists "Rhythmic_column_engraver";
160 \consists "Dynamic_engraver";
162 \consists "Property_engraver";
164 stemStyle = #"grace"
165 weAreGraceContext = ##t
166 fontSize = #-1
168 stemLength = #6.0
169 verticalDirection = \up ;
170 graceAccidentalSpace= 1.5 * \interline;
173 \translator{\GraceContext}
174 \translator {\VoiceContext}
176 ThreadContext = \translator{
177 \type Engraver_group_engraver;
178 \consists "Note_heads_engraver" ;
179 Generic_property_list = #generic-thread-properties
180 \consists "Property_engraver";
181 \name Thread;
184 \translator{\ThreadContext}
185 GrandStaffContext=\translator{
186 \type "Engraver_group_engraver";
187 \name GrandStaff;
188 \consists "Span_bar_engraver";
189 \consists "Piano_bar_engraver";
190 \consists "Property_engraver";
191 Generic_property_list = #generic-grand-staff-properties
192 \accepts "Staff";
194 \translator{\GrandStaffContext}
196 PianoStaffContext = \translator{\GrandStaffContext
197 alignmentReference = \center;
199 \consists "Vertical_align_engraver";
200 minVerticalAlign = 3.0*\staffheight;
201 maxVerticalAlign = 3.0*\staffheight;
203 % \consistsend "Axis_group_engraver";
204 \name "PianoStaff";
207 \translator{\PianoStaffContext}
208 StaffGroupContext= \translator {
209 \type "Engraver_group_engraver";
210 \consists "Span_bar_engraver";
212 \consists "Staff_group_bar_engraver";
213 \name StaffGroup;
214 \accepts "Staff";
215 \accepts "RhythmicStaff";
216 \accepts "GrandStaff";
217 \accepts "PianoStaff";
219 \accepts "Lyrics";
220 \accepts "ChordNames";
223 \translator { \StaffGroupContext }
225 % UGH! JUNKME
226 LyricsVoiceContext= \translator{
227 \type "Engraver_group_engraver";
228 \consistsend "Axis_group_engraver";
230 \name LyricVoice ;
231 \consists "Separating_line_group_engraver";
232 \consists "Lyric_engraver";
233 \consists "Extender_engraver";
234 \consists "Hyphen_engraver";
236 \translator{ \LyricsVoiceContext }
238 LyricsContext = \translator {
239 \type "Engraver_group_engraver";
240 \name Lyrics;
241 \consists Vertical_align_engraver;%need this for getting folded repeats right.
243 \consistsend "Axis_group_engraver";
245 \accepts "LyricVoice";
247 \translator { \LyricsContext }
249 \translator{
250 \type "Engraver_group_engraver";
252 \consistsend "Axis_group_engraver";
253 \name ChordNameVoice ;
254 \consists "Separating_line_group_engraver";
255 \consists "Chord_name_engraver";
259 ChordNameContext = \translator {
260 \type "Engraver_group_engraver";
261 \name ChordNames;
262 \accepts "ChordNameVoice";
263 \consistsend "Axis_group_engraver";
265 \translator { \ChordNameContext }
268 ScoreWithNumbers = \translator {
269 \type "Score_engraver";
271 % uncomment to bar numbers on a whole system.
272 \consists "Bar_number_engraver";
275 StupidScore = \translator {
276 \type "Score_engraver";
277 \name Score;
278 \consists "Note_heads_engraver";
283 BarNumberingStaffContext = \translator {
284 \StaffContext
285 barColumnPriority = #0
286 marginBreakPriority = #-4
287 \consists "Mark_engraver";
288 \consists "Bar_number_engraver";
291 HaraKiriStaffContext = \translator {
292 \StaffContext
293 \remove "Axis_group_engraver";
294 \consistsend "Hara_kiri_engraver";
295 \accepts "Voice";
298 OrchestralPartStaffContext = \translator {
299 \StaffContext
300 barColumnPriority = #0
301 marginBreakPriority = #-4
302 \consists "Mark_engraver";
303 \consists "Bar_number_engraver";
306 ScoreContext = \translator {
307 \type Score_engraver;
308 \name Score;
310 \consists "Timing_engraver";
312 \consists "Span_score_bar_engraver";
313 % \consists "Score_priority_engraver";
314 \consists "Break_align_engraver";
315 breakAlignOrder = #'(
316 "Span_bar"
317 "Breathing_sign"
318 "Clef_item"
319 "Key_item"
320 "Staff_bar"
321 "Time_signature"
323 \consists "Spacing_engraver";
324 \consists "Vertical_align_engraver";
325 alignmentReference = \down;
326 defaultClef = #"treble"
327 defaultBarType = #"|"
328 \accepts "Staff";
329 \accepts "StaffGroup";
330 \accepts "RhythmicStaff";
331 \accepts "Lyrics";
332 \accepts "ChordNames";
333 \accepts "GrandStaff";
334 \accepts "ChoirStaff";
335 \accepts "PianoStaff";
336 \accepts "NoteNames";
338 clefBreakPriority = #-2
339 breathingSignBreakPriority = #-4
342 \translator { \ScoreContext }
344 OrchestralScoreContext= \translator {
345 \ScoreContext
347 barScriptPadding = #2.0 % dimension \pt
348 markScriptPadding = #4.0
350 \consists "Bar_number_engraver";
351 \consists "Mark_engraver";
353 \accepts "HaraKiriStaff";
356 \translator {
357 \type "Engraver_group_engraver";
358 \name NoteNames;
359 \consistsend "Axis_group_engraver";
360 \consists "Note_name_engraver";