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