]> git.donarmstrong.com Git - lilypond.git/blob - input/test/engraver-one-by-one.ly
* scm/translation-functions.scm (fraction-tuplet-formatter):
[lilypond.git] / input / test / engraver-one-by-one.ly
1
2 \version "2.1.29"
3 \header {
4     
5 texidoc = "The notation problem, creating a certain symbol,
6     is handled by plugins. Each plugin is called Engraver. In this example,
7 engravers is switched on one by one, in the following order:
8
9 @itemize
10 @item note heads,
11 @item staff symbol,
12 @item clef,
13 @item stem,
14 @item beams, slurs, accents,
15 @item accidentals, bar lines, time signature, and key signature.
16 @end itemize
17
18 Engravers are grouped. For example, note heads, slurs, beams etc. form
19 a Voice context. Engravers for key, accidental, bar, etc. form a
20 Staff context.
21
22 "
23
24     }
25 \paper { raggedright = ##t }
26
27 \include "engraver-example.lyinc"
28
29
30 %
31 % setup for Request->Element conversion. Guru-only
32 %
33
34 MyStaffContext=\context {
35         \type "Engraver_group_engraver"
36         \name Staff
37
38         \description "Handles clefs, bar lines, keys, accidentals.  It can contain
39 @code{Voice} contexts."
40
41         
42         \consists "Output_property_engraver"    
43         
44         \consists "Font_size_engraver"
45
46         \consists "Volta_engraver"
47         \consists "Separating_line_group_engraver"      
48         \consists "Dot_column_engraver"
49
50         \consists "Ottava_spanner_engraver"
51         \consists "Rest_collision_engraver"
52         \consists "Piano_pedal_engraver"
53         \consists "Instrument_name_engraver"
54         \consists "Grob_pq_engraver"
55         \consists "Forbid_line_break_engraver"
56         \consistsend "Axis_group_engraver"
57 \consists "Pitch_squash_engraver"
58
59         minimumVerticalExtent = #'(-6 . 6)
60         extraVerticalExtent = ##f
61         verticalExtent = ##f 
62         localKeySignature = #'()
63
64         % explicitly set instrument, so we don't get 
65         % weird effects when doing instrument names for
66         % piano staves
67
68         instrument = #'()
69         instr = #'()
70           
71         \accepts "Voice"
72 }
73
74
75 MyVoiceContext = \context {
76         \type "Engraver_group_engraver"
77         \name Voice
78
79 \description "
80     Corresponds to a voice on a staff.  This context handles the
81     conversion of dynamic signs, stems, beams, super- and subscripts,
82     slurs, ties, and rests.
83
84     You have to instantiate this explicitly if you want to have
85     multiple voices on the same staff."
86
87         localKeySignature = #'()
88         \consists "Font_size_engraver"
89         
90         % must come before all
91         \consists "Output_property_engraver"    
92         \consists "Arpeggio_engraver"
93         \consists "Multi_measure_rest_engraver"
94         \consists "Text_spanner_engraver"
95         \consists "Grob_pq_engraver"
96         \consists "Note_head_line_engraver"
97         \consists "Glissando_engraver"
98         \consists "Ligature_bracket_engraver"
99         \consists "Breathing_sign_engraver"
100         % \consists "Rest_engraver"
101         \consists "Grace_beam_engraver"
102         \consists "New_fingering_engraver"
103         \consists "Chord_tremolo_engraver"
104         \consists "Percent_repeat_engraver"
105         \consists "Slash_repeat_engraver"
106         \consists "Melisma_translator"
107
108 %{
109  Must come before text_engraver, but after note_column engraver.
110
111 %}
112         \consists "Text_engraver"
113         \consists "Dynamic_engraver"
114         \consists "Fingering_engraver"
115
116         \consists "Script_column_engraver"
117         \consists "Rhythmic_column_engraver"
118         \consists "Cluster_spanner_engraver"
119         \consists "Tie_engraver"
120         \consists "Tie_engraver"
121         \consists "Tuplet_engraver"
122         \consists "Note_heads_engraver"
123         \consists "Rest_engraver"
124
125         \consists "Skip_event_swallow_translator"
126 }
127
128
129 \score {
130   \topVoice
131   \paper {
132       \context { \MyStaffContext }
133       \context { \MyVoiceContext }
134       }
135 }
136
137
138 MyStaffContext = \context {
139     \MyStaffContext
140     \consists "Staff_symbol_engraver"
141 }
142
143 \score {
144   \topVoice
145   \paper {
146       \context { \MyStaffContext }
147       \context { \MyVoiceContext }
148             }
149 }
150
151 MyStaffContext = \context {
152     \MyStaffContext
153       \consists "Clef_engraver"
154     \remove "Pitch_squash_engraver"
155 }
156
157 \score {
158   \topVoice
159   \paper {
160       \context { \MyStaffContext }
161       \context { \MyVoiceContext }
162             }
163 }
164
165 MyVoiceContext = \context {
166     \MyVoiceContext
167     \consists "Stem_engraver"
168     }
169
170 \score {
171   \topVoice
172   \paper {
173       \context { \MyStaffContext }
174       \context { \MyVoiceContext }
175             }
176 }
177
178 MyVoiceContext = \context {
179     \MyVoiceContext
180         \consists "Beam_engraver"
181 }
182
183 \score {
184   \topVoice
185   \paper {
186       \context { \MyStaffContext }
187       \context { \MyVoiceContext }
188             }
189 }
190
191 MyVoiceContext= \context {
192     \MyVoiceContext
193     \consists "Phrasing_slur_engraver"
194     \consists "Slur_engraver"
195     \consists "Script_engraver"
196 }
197
198
199 \score {
200   \topVoice
201   \paper {
202       \context { \MyStaffContext }
203       \context { \MyVoiceContext }
204             }
205 }
206
207 MyStaffContext = \context {
208     \MyStaffContext
209  \consists "Bar_engraver"
210     \consists "Time_signature_engraver"
211       
212 }
213
214 \score {
215   \topVoice
216   \paper {
217       \context { \MyStaffContext }
218       \context { \MyVoiceContext }
219             }
220 }
221
222 MyStaffContext = \context
223  { \MyStaffContext
224  \consists "Accidental_engraver"    
225      \consists "Key_engraver"
226 }
227 \score {
228   \topVoice
229   \paper {
230       \context { \MyStaffContext }
231       \context { \MyVoiceContext }
232             }
233 }