]> git.donarmstrong.com Git - lilypond.git/blob - init/engraver.ly
release: 1.1.7
[lilypond.git] / init / 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
9 %{
10         The Hara_kiri_line_group_engraver is a Line_group_engraver 
11         that will not typeset an empty line of staff, i.e., a line 
12         of staff with only rests in it.  This is needed for orchestral
13         scores.  Comment-out Line_group_engraver_group, and uncomment 
14         Hara_kiri_line_group_engraver.
15 %}
16 %       \type "Hara_kiri_line_group_engraver";
17
18         \consists "Bar_engraver";
19         \consists "Clef_engraver";
20         \consists "Key_engraver";
21         \consists "Local_key_engraver";
22         \consists "Time_signature_engraver";
23         \consists "Repeat_engraver";
24         \consists "Staff_symbol_engraver";
25         \consists "Collision_engraver";
26         \consists "Rest_collision_engraver";
27         \consists "Tuplet_engraver";
28 %{
29         Uncomment to get bar numbers on single staff systems:
30         
31         The Bar_number_engraver puts a number over a staff created
32         at the same level of hierarchy.  This why you have to add it
33         here separately if you want to have numbers on single staff
34         systems: The Bar_number_engraver in Score_engraver will only
35         put numbers on bars that are Score ("system") wide.  Such
36         bars are only created when the toplevel system has multiple
37         children-staffs.
38
39 %}
40 %{
41         \consists "Bar_column_engraver";
42         \consists "Bar_number_engraver";
43 %}
44 %{
45         The Staff_margin_engraver puts the name of the instrument
46         (\property Staff.instrument; Staff.instr for subsequent lines)
47         to the left of a staff.
48 %}
49
50         marginBreakPriority = "-5";
51
52 %{
53         \consists "Staff_margin_engraver";
54 %}
55         \consists "Separating_line_group_engraver";
56           
57         \accepts "Voice";
58 };
59
60 \translator{\StaffContext }
61 \translator {
62         \type "Line_group_engraver_group";
63         \name ChoirStaff;
64         \consists "Vertical_align_engraver";
65         \consists "Staff_group_bar_engraver";
66         \accepts "Staff";
67         \accepts "RhythmicStaff";
68         \accepts "GrandStaff";
69         \accepts "Lyrics";
70 }
71
72
73 RhythmicStaffContext=\translator{
74         \type "Line_group_engraver_group";
75         nolines  = "1";
76         \consists "Pitch_squash_engraver";
77         \consists "Separating_line_group_engraver";     
78         \name RhythmicStaff;
79         \consists "Bar_engraver";
80         \consists "Repeat_engraver";
81         \consists "Time_signature_engraver";
82         \consists "Staff_symbol_engraver";
83         \accepts "Voice";
84 };
85 \translator{\RhythmicStaffContext}
86 VoiceContext = \translator {
87         \type "Engraver_group_engraver";
88         \consists "Dynamic_engraver";
89         \name Voice ;
90         
91         \consists "Rest_engraver";
92         \consists "Dot_column_engraver";
93         \consists "Stem_engraver";
94 %       \consists "Plet_engraver";
95         \consists "Beam_engraver";
96         \consists "Abbreviation_beam_engraver";
97         \consists "Multi_measure_rest_engraver";
98         \consists "Script_engraver";
99         \consists "Rhythmic_column_engraver";
100         \consists "Font_size_engraver";
101         \consists "Slur_engraver";
102         \consists "Ties_engraver";
103         \consists "Note_heads_engraver" ;       
104         \consists "Skip_req_swallow_translator";
105 };
106
107 \translator {\VoiceContext}
108
109 GrandStaffContext=\translator{
110         \type "Line_group_engraver_group";
111         \name GrandStaff;
112         \consists "Span_bar_engraver";
113         \consists "Vertical_align_engraver";
114         \consists "Piano_bar_engraver";
115         minVerticalAlign = 1.5*\staffheight;
116
117         \accepts "Staff";
118 };
119 \translator{\GrandStaffContext}
120
121 \translator {
122         \type "Line_group_engraver_group";
123 %       \type "Hara_kiri_line_group_engraver";
124         \consists "Span_bar_engraver";
125         \consists "Vertical_align_engraver";
126         \consists "Staff_group_bar_engraver";
127         \name StaffGroup;
128         \accepts "Staff";
129         \accepts "RhythmicStaff";
130         \accepts "GrandStaff";
131         \accepts "Lyrics";
132 }
133
134 \translator{
135         \type "Line_group_engraver_group";
136
137         \name LyricVoice ;
138         \consists "Separating_line_group_engraver";
139         \consists "Lyric_engraver";
140         \consists "Extender_engraver";
141         \consists "Beam_req_swallow_translator";
142         \consists "Plet_swallow_engraver";
143 }
144
145 \translator {
146         \type "Line_group_engraver_group";
147         \name Lyrics;
148         \consists "Vertical_align_engraver";
149         \accepts "LyricVoice";
150 }
151
152 ScoreContext = \translator {
153         \type Score_engraver;
154         \name Score;
155         defaultClef = treble;
156
157         \consists "Timing_engraver";
158
159         \consists "Bar_column_engraver";
160         \consists "Span_score_bar_engraver";
161         \consists "Score_priority_engraver";
162         \consists "Priority_horizontal_align_engraver";
163         \consists "Vertical_align_engraver";
164
165
166         \accepts "StaffGroup";
167         \accepts "Staff";
168         \accepts "RhythmicStaff";       
169         \accepts "Lyrics";
170         \accepts "GrandStaff";
171         \accepts "ChoirStaff";
172 };
173 \translator { \ScoreContext }
174
175 ScoreWithNumbers = \translator {
176         \type "Score_engraver";
177
178         % uncomment to bar numbers on a whole system.
179         \consists "Bar_column_engraver";
180         \consists "Bar_number_engraver";
181
182 };
183
184 StupidScore = \translator {
185         \type "Score_engraver";
186         \name Score;
187         \consists "Note_heads_engraver";
188 };
189
190
191
192 BarNumberingStaffContext = \translator {
193         \StaffContext
194         barColumnPriority = "0";
195         marginBreakPriority = "-4";
196         \consists "Mark_engraver";
197         \consists "Bar_column_engraver";
198         \consists "Bar_number_engraver";
199
200 };
201
202
203 HaraKiriStaffContext = \translator {
204         \type "Hara_kiri_line_group_engraver";
205         \name Staff;
206         barColumnPriority = "0";
207         marginBreakPriority = "-4";
208
209         \consists "Bar_engraver";
210         \consists "Clef_engraver";
211         \consists "Repeat_engraver";
212         \consists "Key_engraver";
213         \consists "Time_signature_engraver";
214         \consists "Local_key_engraver";
215         \consists "Staff_symbol_engraver";
216         \consists "Collision_engraver";
217         \consists "Rest_collision_engraver";
218         \consists "Staff_margin_engraver";
219         \consists "Separating_line_group_engraver";
220           
221         \accepts "Voice";
222 };
223
224 % huh, Score should do HaraKiri, not Part yes?
225 OrchestralPartStaffContext = \translator {
226 %       \HaraKiriStaffContext
227         \StaffContext
228         barColumnPriority = "0";
229         marginBreakPriority = "-4";
230         \consists "Mark_engraver";
231         \consists "Bar_column_engraver";
232         \consists "Bar_number_engraver";
233 };
234
235 % where to put HaraKiri here?
236 OrchestralScoreContext= \translator {
237         \type Score_engraver;
238         \name Score;
239         barScriptPadding = "2.0";       % dimension \pt
240         markScriptPadding = "4.0";
241         barColumnPriority = "-4";
242         markBreakPriority = "-4";
243         defaultClef = treble;
244
245         \consists "Timing_engraver";
246         \consists "Bar_column_engraver";
247         \consists "Bar_number_engraver";
248         \consists "Mark_engraver";
249         \consists "Span_score_bar_engraver";
250         \consists "Score_priority_engraver";
251         \consists "Priority_horizontal_align_engraver";
252         \consists "Vertical_align_engraver";
253
254         \accepts "ChoirStaff";
255         \accepts "StaffGroup";
256         \accepts "Staff";
257         \accepts "RhythmicStaff";       
258         \accepts "Lyrics";
259         \accepts "GrandStaff";
260 };