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