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