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