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