]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver.ly
645f0946a74151b73c768501351666359304480f
[lilypond.git] / ly / engraver.ly
1 %
2 % setup for Request->Element conversion. Guru-only
3 %
4
5 StaffContext=\translator {
6         \type "Engraver_group_engraver";
7         \name Staff ;
8         barAuto = "1";
9         voltaVisibility = "1";
10
11         \consists "Multi_measure_rest_engraver";
12         \consists "Bar_engraver";
13  % Bar_engraver must be first so default bars aren't overwritten
14 % with empty ones.
15         \consists "Repeat_engraver";
16         \consists "Clef_engraver";
17         \consists "Key_engraver";
18         \consists "Time_signature_engraver";
19         \consists "Staff_symbol_engraver";
20         \consists "Collision_engraver";
21         \consists "Rest_collision_engraver";
22         \consists "Local_key_engraver";
23
24         \consistsend "Axis_group_engraver";
25
26
27
28 %{
29         The Staff_margin_engraver puts the name of the instrument
30         (\property Staff.instrument; Staff.instr for subsequent lines)
31         to the left of a staff.
32 %}
33 %{
34         \consists "Staff_margin_engraver";
35 %}
36         defaultClef = treble;
37
38         marginBreakPriority = "-5";
39
40
41         \consists "Separating_line_group_engraver";
42         \consists "Font_size_engraver";
43           
44         \accepts "Voice";
45         dynamicStyle = "dynamic";
46 };
47
48 \translator{\StaffContext }
49 \translator {
50         \type "Engraver_group_engraver";
51         \name ChoirStaff;
52         alignmentReference = \center;   
53         \consists "Staff_group_bar_engraver";
54
55
56         \accepts "Staff";
57         \accepts "RhythmicStaff";
58         \accepts "GrandStaff";
59         \accepts "PianoStaff";
60
61                 
62         \accepts "Lyrics";
63         \accepts "ChordNames";
64 }
65
66
67 RhythmicStaffContext=\translator{
68         \type "Engraver_group_engraver";
69         numberOfStaffLines  = "1";
70         barSize = \staffheight;
71         \consists "Pitch_squash_engraver";
72         \consists "Separating_line_group_engraver";     
73         \name RhythmicStaff;
74
75         \consists "Repeat_engraver";
76         \consists "Bar_engraver";
77         \consists "Time_signature_engraver";
78         \consists "Staff_symbol_engraver";
79         \consistsend "Axis_group_engraver";
80         \accepts "Voice";
81 };
82 \translator{\RhythmicStaffContext}
83 VoiceContext = \translator {
84         \type "Engraver_group_engraver";
85         \consists "Dynamic_engraver";   % must come before text_engraver.
86         \name Voice ;
87
88         \consists "Tie_engraver";
89         \consists "Breathing_sign_engraver";
90         \consists "Rest_engraver";
91         \consists "Dot_column_engraver";
92         \consists "Stem_engraver";
93         \consists "Beam_engraver";
94         beamAuto = "1";
95         \consists "Auto_beam_engraver";
96         \include "auto-beam-settings.ly";
97 %       \consists "Abbreviation_beam_engraver";
98 %       \consists "Multi_measure_rest_engraver";
99
100         % ugh.  Order matters here.
101         \consists "Text_engraver";
102         \consists "Script_engraver";
103         \consists "Script_column_engraver";
104         \consists "Rhythmic_column_engraver";
105         \consists "Font_size_engraver";
106         \consists "Slur_engraver";
107         \consists "Tuplet_engraver";
108         \consists "Grace_position_engraver";
109         \consists "Skip_req_swallow_translator";
110         \accepts Thread; % bug if you leave out this!
111         \accepts Grace;
112 };
113
114 GraceContext=\translator {
115         \type "Grace_engraver_group";
116         \name "Grace";
117         \consists "Note_heads_engraver";
118         \consists "Local_key_engraver";
119         \consists "Stem_engraver";
120         \consists "Beam_engraver";
121         beamAuto = "1";
122         \consists "Slur_engraver";
123         \consists "Auto_beam_engraver";
124         \include "auto-beam-settings.ly";
125         \consists "Align_note_column_engraver";
126         \consists "Font_size_engraver";
127         \consists "Rhythmic_column_engraver";
128
129         stemStyle = "grace";
130         weAreGraceContext = "1";
131         fontSize = "-1";
132         stemLength = "6.0";
133         verticalDirection = "1";
134         graceAccidentalSpace= 1.5 * \interline;
135 };
136
137 \translator{\GraceContext}
138 \translator {\VoiceContext}
139
140 ThreadContext = \translator{
141         \type Engraver_group_engraver;
142         \consists "Note_heads_engraver" ;       
143         \name Thread;
144 };
145
146 \translator{\ThreadContext}
147 GrandStaffContext=\translator{
148         \type "Engraver_group_engraver";
149         \name GrandStaff;
150         \consists "Span_bar_engraver";
151         \consists "Piano_bar_engraver";
152
153
154         \accepts "Staff";
155
156 };
157 \translator{\GrandStaffContext}
158
159 PianoStaffContext = \translator{\GrandStaffContext
160         alignmentReference = \center;
161
162         \consists "Vertical_align_engraver";
163         minVerticalAlign = 3.0*\staffheight;
164         maxVerticalAlign = 3.0*\staffheight;
165
166 %       \consistsend "Axis_group_engraver";
167         \name "PianoStaff";
168         
169 };
170 \translator{\PianoStaffContext}
171 StaffGroupContext= \translator {
172         \type "Engraver_group_engraver";
173         \consists "Span_bar_engraver";
174
175         
176         \consists "Staff_group_bar_engraver";
177         \name StaffGroup;
178         \accepts "Staff";
179         \accepts "RhythmicStaff";
180         \accepts "GrandStaff";
181         \accepts "PianoStaff";
182         
183         \accepts "Lyrics";
184         \accepts "ChordNames";
185 };
186 \translator { \StaffGroupContext }
187
188 \translator{
189         \type "Engraver_group_engraver";
190         \consistsend "Axis_group_engraver";
191
192         \name LyricVoice ;
193         \consists "Separating_line_group_engraver";
194         \consists "Lyric_engraver";
195         \consists "Extender_engraver";
196         \consists "Hyphen_engraver";
197 }
198
199 \translator {
200         \type "Engraver_group_engraver";
201         \name Lyrics;
202         \consists Vertical_align_engraver;%need this for getting folded repeats right.
203
204         \consistsend "Axis_group_engraver";
205         
206         \accepts "LyricVoice";
207 }
208
209 \translator{
210         \type "Engraver_group_engraver";
211
212         \consistsend "Axis_group_engraver";
213         \name ChordNameVoice ;
214         \consists "Separating_line_group_engraver";
215         \consists "Chord_name_engraver";
216 }
217
218
219 ChordNameContext = \translator {
220         \type "Engraver_group_engraver";
221         \name ChordNames;
222         \accepts "ChordNameVoice";
223         \consistsend "Axis_group_engraver";
224         };
225 \translator { \ChordNameContext }
226
227
228 ScoreWithNumbers = \translator {
229         \type "Score_engraver";
230
231         % uncomment to bar numbers on a whole system.
232         \consists "Bar_number_engraver";
233 };
234
235 StupidScore = \translator {
236         \type "Score_engraver";
237         \name Score;
238         \consists "Note_heads_engraver";
239 };
240
241
242
243 BarNumberingStaffContext = \translator {
244         \StaffContext
245         barColumnPriority = "0";
246         marginBreakPriority = "-4";
247         \consists "Mark_engraver";
248         \consists "Bar_number_engraver";
249 };
250
251 HaraKiriStaffContext = \translator {
252         \StaffContext
253         \remove "Axis_group_engraver";
254         \consistsend "Hara_kiri_engraver";        
255         \accepts "Voice";
256 };
257
258 OrchestralPartStaffContext = \translator {
259         \StaffContext
260         barColumnPriority = "0";
261         marginBreakPriority = "-4";
262         \consists "Mark_engraver";
263         \consists "Bar_number_engraver";
264 };
265
266 ScoreContext = \translator {
267         \type Score_engraver;
268         \name Score;
269
270         \consists "Timing_engraver";
271         \consists "Span_score_bar_engraver";
272         \consists "Score_priority_engraver";
273         \consists "Spacing_engraver";
274         \consists "Vertical_align_engraver";
275         alignmentReference = \down;
276         defaultClef = treble;
277
278         \accepts "Staff";
279         \accepts "StaffGroup";
280         \accepts "RhythmicStaff";       
281         \accepts "Lyrics";
282         \accepts "ChordNames";
283         \accepts "GrandStaff";
284         \accepts "ChoirStaff";
285         \accepts "PianoStaff";
286 };
287
288 \translator { \ScoreContext }
289
290 OrchestralScoreContext= \translator {
291         \ScoreContext
292
293         barScriptPadding = "2.0";       % dimension \pt
294         markScriptPadding = "4.0";
295
296         \consists "Bar_number_engraver";
297         \consists "Mark_engraver";
298
299         \accepts "HaraKiriStaff";
300 };