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