]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver.ly
patch::: 1.1.37.script1
[lilypond.git] / ly / engraver.ly
1 %
2 % setup for Request->Element conversion. Guru-only
3 %
4
5 StaffContext=\translator {
6         \type "Line_group_engraver_group";
7         \name Staff ;
8         barAuto = "1";
9         voltaVisibility = "1";
10
11 %{
12         The Hara_kiri_line_group_engraver is a Line_group_engraver 
13         that will not typeset an empty line of staff, i.e., a line 
14         of staff with only rests in it.  This is needed for orchestral
15         scores.  Comment-out Line_group_engraver_group, and uncomment 
16         Hara_kiri_line_group_engraver.
17 %}
18 %       \type "Hara_kiri_line_group_engraver";
19
20         \consists "Multi_measure_rest_engraver";
21         \consists "Repeat_engraver";
22         \consists "Bar_engraver";
23         \consists "Clef_engraver";
24         \consists "Key_engraver";
25         \consists "Local_key_engraver";
26         \consists "Time_signature_engraver";
27         \consists "Staff_symbol_engraver";
28         \consists "Collision_engraver";
29         \consists "Rest_collision_engraver";
30
31 %{
32         Uncomment to get bar numbers on single staff systems:
33         
34         The Bar_number_engraver puts a number over a staff created
35         at the same level of hierarchy.  This why you have to add it
36         here separately if you want to have numbers on single staff
37         systems: The Bar_number_engraver in Score_engraver will only
38         put numbers on bars that are Score ("system") wide.  Such
39         bars are only created when the toplevel system has multiple
40         children-staffs.
41
42 %}
43 %{
44         \consists "Bar_number_engraver";
45 %}
46 %{
47         The Staff_margin_engraver puts the name of the instrument
48         (\property Staff.instrument; Staff.instr for subsequent lines)
49         to the left of a staff.
50 %}
51         defaultClef = treble;
52
53         marginBreakPriority = "-5";
54
55 %{
56         \consists "Staff_margin_engraver";
57 %}
58         \consists "Separating_line_group_engraver";
59           
60         \accepts "Voice";
61         dynamicStyle = "dynamic";
62 };
63
64 \translator{\StaffContext }
65 \translator {
66         \type "Line_group_engraver_group";
67         \name ChoirStaff;
68         \consists "Vertical_align_engraver";
69         alignmentReference = \center;   
70         \consists "Staff_group_bar_engraver";
71         \accepts "Staff";
72         \accepts "RhythmicStaff";
73         \accepts "GrandStaff";
74         \accepts "PianoStaff";
75         
76         \accepts "Lyrics";
77         \accepts "ChordNames";
78 }
79
80
81 RhythmicStaffContext=\translator{
82         \type "Line_group_engraver_group";
83         numberOfStaffLines  = "1";
84         \consists "Pitch_squash_engraver";
85         \consists "Separating_line_group_engraver";     
86         \name RhythmicStaff;
87
88         \consists "Repeat_engraver";
89         \consists "Bar_engraver";
90         \consists "Time_signature_engraver";
91         \consists "Staff_symbol_engraver";
92         \accepts "Voice";
93 };
94 \translator{\RhythmicStaffContext}
95 VoiceContext = \translator {
96         \type "Engraver_group_engraver";
97         \consists "Dynamic_engraver";
98         \name Voice ;
99         beamAuto = "1";
100         
101         \consists "Rest_engraver";
102         \consists "Dot_column_engraver";
103         \consists "Stem_engraver";
104         \consists "Beam_engraver";
105         \consists "Auto_beam_engraver";
106         \include "auto-beam-settings.ly";
107         \consists "Abbreviation_beam_engraver";
108 %       \consists "Multi_measure_rest_engraver";
109
110         % ugh.  Order matters here.
111         \consists "Text_engraver";
112 %       \consists "Script_engraver";
113         \consists "G_script_engraver";
114         \consists "Rhythmic_column_engraver";
115         \consists "Font_size_engraver";
116         \consists "Slur_engraver";
117         \consists "Tie_engraver";
118         \consists "Tuplet_engraver";    
119         \consists "Note_heads_engraver" ;       
120         \consists "Skip_req_swallow_translator";
121 };
122
123 \translator {\VoiceContext}
124
125 GrandStaffContext=\translator{
126         \type "Line_group_engraver_group";
127         \name GrandStaff;
128         \consists "Span_bar_engraver";
129         \consists "Vertical_align_engraver";
130         \consists "Piano_bar_engraver";
131         alignmentReference = \center;
132         minVerticalAlign = 1.5*\staffheight;
133
134         \accepts "Staff";
135 };
136 \translator{\GrandStaffContext}
137 \translator{\GrandStaffContext
138         minVerticalAlign = 3.0*\staffheight;
139         maxVerticalAlign = 3.0*\staffheight;
140
141         \name "PianoStaff";
142         
143 }
144
145 StaffGroupContext= \translator {
146 %       \type "Hara_kiri_line_group_engraver";
147 %       \type "Line_group_engraver_group";
148         \type "Engraver_group_engraver";
149         \consists "Span_bar_engraver";
150         \consists "Vertical_align_engraver";
151         alignmentReference = \center;
152         
153         \consists "Staff_group_bar_engraver";
154         \name StaffGroup;
155         \accepts "Staff";
156         \accepts "RhythmicStaff";
157         \accepts "GrandStaff";
158         \accepts "PianoStaff";
159         
160         \accepts "Lyrics";
161         \accepts "ChordNames";
162 };
163 \translator { \StaffGroupContext }
164
165 \translator{
166         \type "Line_group_engraver_group";
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 "Line_group_engraver_group";
177         \name Lyrics;
178         \consists "Vertical_align_engraver";
179         \accepts "LyricVoice";
180 }
181
182 \translator{
183         \type "Line_group_engraver_group";
184
185         \name ChordNameVoice ;
186         \consists "Separating_line_group_engraver";
187         \consists "Chord_name_engraver";
188 }
189
190
191 ChordNameContext = \translator {
192         \type "Line_group_engraver_group";
193         \name ChordNames;
194         \consists "Vertical_align_engraver";
195         \accepts "ChordNameVoice";
196 };
197 \translator { \ChordNameContext }
198
199
200 ScoreWithNumbers = \translator {
201         \type "Score_engraver";
202
203         % uncomment to bar numbers on a whole system.
204         \consists "Bar_number_engraver";
205
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
225 HaraKiriStaffContext = \translator {
226         \type "Hara_kiri_line_group_engraver";
227         \name Staff;
228         barColumnPriority = "0";
229         marginBreakPriority = "-4";
230
231         \consists "Repeat_engraver";
232         \consists "Bar_engraver";
233         \consists "Clef_engraver";
234         \consists "Key_engraver";
235         \consists "Time_signature_engraver";
236         \consists "Local_key_engraver";
237         \consists "Staff_symbol_engraver";
238         \consists "Collision_engraver";
239         \consists "Rest_collision_engraver";
240         \consists "Staff_margin_engraver";
241         \consists "Separating_line_group_engraver";
242           
243         \accepts "Voice";
244 };
245
246 OrchestralPartStaffContext = \translator {
247         \StaffContext
248         barColumnPriority = "0";
249         marginBreakPriority = "-4";
250         \consists "Mark_engraver";
251         \consists "Bar_number_engraver";
252 };
253
254
255 ScoreContext = \translator {
256         \type Score_engraver;
257         \name Score;
258
259         \consists "Timing_engraver";
260
261         \consists "Span_score_bar_engraver";
262         \consists "Score_priority_engraver";
263         \consists "Vertical_align_engraver";
264         alignmentReference = \down;
265         defaultClef = treble;
266
267         \accepts "Staff";
268         \accepts "StaffGroup";
269         \accepts "RhythmicStaff";       
270         \accepts "Lyrics";
271         \accepts "ChordNames";
272         \accepts "GrandStaff";
273         \accepts "ChoirStaff";
274         \accepts "PianoStaff";
275 };
276
277 \translator { \ScoreContext }
278
279 OrchestralScoreContext= \translator {
280         \ScoreContext
281
282         barScriptPadding = "2.0";       % dimension \pt
283         markScriptPadding = "4.0";
284         
285
286
287         \consists "Bar_number_engraver";
288         \consists "Mark_engraver";
289
290         \accepts "HaraKiriStaff";
291 };