]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver.ly
45bbe4ac3ece6e3e44d1c5af509b1123d4ebadda
[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           
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         \consistsend "Axis_group_engraver";
65         \accepts "Staff";
66         \accepts "RhythmicStaff";
67         \accepts "GrandStaff";
68         \accepts "PianoStaff";
69         
70         \accepts "Lyrics";
71         \accepts "ChordNames";
72 }
73
74
75 RhythmicStaffContext=\translator{
76         \type "Engraver_group_engraver";
77         numberOfStaffLines  = "1";
78         \consists "Pitch_squash_engraver";
79         \consists "Separating_line_group_engraver";     
80         \name RhythmicStaff;
81
82         \consists "Repeat_engraver";
83         \consists "Bar_engraver";
84         \consists "Time_signature_engraver";
85         \consists "Staff_symbol_engraver";
86         \consistsend "Axis_group_engraver";
87         \accepts "Voice";
88 };
89 \translator{\RhythmicStaffContext}
90 VoiceContext = \translator {
91         \type "Engraver_group_engraver";
92         \consists "Dynamic_engraver";
93         \name Voice ;
94         beamAuto = "1";
95         
96         \consists "Rest_engraver";
97         \consists "Dot_column_engraver";
98         \consists "Stem_engraver";
99         \consists "Beam_engraver";
100         \consists "Auto_beam_engraver";
101         \include "auto-beam-settings.ly";
102         \consists "Abbreviation_beam_engraver";
103 %       \consists "Multi_measure_rest_engraver";
104
105         % ugh.  Order matters here.
106         \consists "Text_engraver";
107         \consists "G_script_engraver";
108         \consists "G_script_column_engraver";
109         \consists "Rhythmic_column_engraver";
110         \consists "Font_size_engraver";
111         \consists "Slur_engraver";
112         \consists "Tie_engraver";
113         \consists "Tuplet_engraver";    
114         \consists "Note_heads_engraver" ;       
115         \consists "Skip_req_swallow_translator";
116 };
117
118 \translator {\VoiceContext}
119
120 GrandStaffContext=\translator{
121         \type "Engraver_group_engraver";
122         \name GrandStaff;
123         \consists "Span_bar_engraver";
124         \consists "Piano_bar_engraver";
125
126
127         \accepts "Staff";
128
129 };
130 \translator{\GrandStaffContext}
131
132 PianoStaffContext = \translator{\GrandStaffContext
133         alignmentReference = \center;
134
135         \consists "Vertical_align_engraver";
136         minVerticalAlign = 3.0*\staffheight;
137         maxVerticalAlign = 3.0*\staffheight;
138
139 %       \consistsend "Axis_group_engraver";
140         \name "PianoStaff";
141         
142 };
143 \translator{\PianoStaffContext}
144 StaffGroupContext= \translator {
145         \type "Engraver_group_engraver";
146         \consists "Span_bar_engraver";
147
148         
149         \consists "Staff_group_bar_engraver";
150         \name StaffGroup;
151         \accepts "Staff";
152         \accepts "RhythmicStaff";
153         \accepts "GrandStaff";
154         \accepts "PianoStaff";
155         
156         \accepts "Lyrics";
157         \accepts "ChordNames";
158         \consistsend "Axis_group_engraver";
159
160 };
161 \translator { \StaffGroupContext }
162
163 \translator{
164         \type "Engraver_group_engraver";
165         \consistsend "Axis_group_engraver";
166
167         \name LyricVoice ;
168         \consists "Separating_line_group_engraver";
169         \consists "Lyric_engraver";
170         \consists "Extender_engraver";
171         \consists "Beam_req_swallow_translator";
172 }
173
174 \translator {
175         \type "Engraver_group_engraver";
176         \name Lyrics;
177         \consistsend "Axis_group_engraver";
178         
179         \accepts "LyricVoice";
180 }
181
182 \translator{
183         \type "Engraver_group_engraver";
184
185         \consistsend "Axis_group_engraver";
186         \name ChordNameVoice ;
187         \consists "Separating_line_group_engraver";
188         \consists "Chord_name_engraver";
189 }
190
191
192 ChordNameContext = \translator {
193         \type "Engraver_group_engraver";
194         \name ChordNames;
195         \accepts "ChordNameVoice";
196         \consistsend "Axis_group_engraver";
197         };
198 \translator { \ChordNameContext }
199
200
201 ScoreWithNumbers = \translator {
202         \type "Score_engraver";
203
204         % uncomment to bar numbers on a whole system.
205         \consists "Bar_number_engraver";
206 };
207
208 StupidScore = \translator {
209         \type "Score_engraver";
210         \name Score;
211         \consists "Note_heads_engraver";
212 };
213
214
215
216 BarNumberingStaffContext = \translator {
217         \StaffContext
218         barColumnPriority = "0";
219         marginBreakPriority = "-4";
220         \consists "Mark_engraver";
221         \consists "Bar_number_engraver";
222 };
223
224 HaraKiriStaffContext = \translator {
225         \StaffContext
226         \remove "Axis_group_engraver";
227         \consistsend "Hara_kiri_engraver";        
228         \accepts "Voice";
229 };
230
231 OrchestralPartStaffContext = \translator {
232         \StaffContext
233         barColumnPriority = "0";
234         marginBreakPriority = "-4";
235         \consists "Mark_engraver";
236         \consists "Bar_number_engraver";
237 };
238
239 ScoreContext = \translator {
240         \type Score_engraver;
241         \name Score;
242
243         \consists "Timing_engraver";
244         \consists "Span_score_bar_engraver";
245         \consists "Score_priority_engraver";
246         \consists "Spacing_engraver";
247         \consists "Vertical_align_engraver";
248         alignmentReference = \down;
249         defaultClef = treble;
250
251         \accepts "Staff";
252         \accepts "StaffGroup";
253         \accepts "RhythmicStaff";       
254         \accepts "Lyrics";
255         \accepts "ChordNames";
256         \accepts "GrandStaff";
257         \accepts "ChoirStaff";
258         \accepts "PianoStaff";
259 };
260
261 \translator { \ScoreContext }
262
263 OrchestralScoreContext= \translator {
264         \ScoreContext
265
266         barScriptPadding = "2.0";       % dimension \pt
267         markScriptPadding = "4.0";
268
269         \consists "Bar_number_engraver";
270         \consists "Mark_engraver";
271
272         \accepts "HaraKiriStaff";
273 };