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