]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/snippets/engravers-one-by-one.ly
lilypond-manuals.css: edit color scheme and some spacing
[lilypond.git] / Documentation / snippets / engravers-one-by-one.ly
1 %% DO NOT EDIT this file manually; it is automatically
2 %% generated from LSR http://lsr.di.unimi.it
3 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
4 %% and then run scripts/auxiliar/makelsr.py
5 %%
6 %% This file is in the public domain.
7 \version "2.19.46"
8
9 \header {
10   lsrtags = "contexts-and-engravers, specific-notation"
11
12   texidoc = "
13 The notation problem, creating a certain symbol, is handled by plugins.
14  Each plugin is called an Engraver. In this example, engravers are
15 switched on one by one, in the following order:
16
17 - note heads,
18
19
20 - staff symbol,
21
22
23 - clef,
24
25
26 - stem,
27
28
29 - beams, slurs, accents,
30
31
32 - accidentals, bar lines, time signature and key signature.
33
34
35
36 Engravers are grouped. For example, note heads, slurs, beams etc. form
37 a @code{Voice} context. Engravers for key signature, accidentals, bar
38 line, etc. form a @code{Staff} context.
39
40 "
41   doctitle = "Engravers one-by-one"
42 } % begin verbatim
43
44 %% sample music
45 topVoice = \relative c' {
46   \key d \major
47   es8([ g] a[ fis])
48   b4
49   b16[-. b-. b-. cis-.]
50   d4->
51 }
52
53 botVoice = \relative c' {
54   \key d \major
55   c8[( f] b[ a)]
56   es4
57   es16[-. es-. es-. fis-.]
58   b4->
59 }
60
61 hoom = \relative c {
62   \key d \major
63   \clef bass
64   g8-. r
65   r4
66   fis8-.
67   r8
68   r4
69   b'4->
70 }
71
72 pah = \relative c' {
73   r8 b-.
74   r4
75   r8 g8-.
76   r16 g-. r8
77   \clef treble
78   fis'4->
79 }
80
81 %
82 % setup for Request->Element conversion. Guru-only
83 %
84
85 MyStaff = \context {
86   \type "Engraver_group"
87   \name Staff
88
89   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
90 @code{Voice} contexts."
91
92   \consists "Font_size_engraver"
93
94   \consists "Volta_engraver"
95   \consists "Separating_line_group_engraver"
96   \consists "Dot_column_engraver"
97
98   \consists "Ottava_spanner_engraver"
99   \consists "Rest_collision_engraver"
100   \consists "Piano_pedal_engraver"
101   \consists "Piano_pedal_align_engraver"
102   \consists "Instrument_name_engraver"
103   \consists "Grob_pq_engraver"
104   \consists "Forbid_line_break_engraver"
105   \consists "Axis_group_engraver"
106
107   \consists "Pitch_squash_engraver"
108
109   localAlterations = #'()
110
111   % explicitly set instrumentName, so we don't get
112   % weird effects when doing instrument names for
113   % piano staves
114
115   instrumentName = #'()
116   shortInstrumentName = #'()
117
118   \accepts "Voice"
119   \defaultchild "Voice"
120 }
121
122
123 MyVoice = \context {
124   \type "Engraver_group"
125   \name Voice
126
127   \description "
128     Corresponds to a voice on a staff.  This context handles the
129     conversion of dynamic signs, stems, beams, super- and subscripts,
130     slurs, ties, and rests.
131
132     You have to instantiate this explicitly if you want to have
133     multiple voices on the same staff."
134
135   localAlterations = #'()
136   \consists "Font_size_engraver"
137
138   % must come before all
139   \consists "Arpeggio_engraver"
140   \consists "Multi_measure_rest_engraver"
141   \consists "Text_spanner_engraver"
142   \consists "Grob_pq_engraver"
143   \consists "Note_head_line_engraver"
144   \consists "Glissando_engraver"
145   \consists "Ligature_bracket_engraver"
146   \consists "Breathing_sign_engraver"
147   % \consists "Rest_engraver"
148   \consists "Grace_beam_engraver"
149   \consists "New_fingering_engraver"
150   \consists "Chord_tremolo_engraver"
151   \consists "Percent_repeat_engraver"
152   \consists "Slash_repeat_engraver"
153
154   %{
155     Must come before text_engraver, but after note_column engraver.
156   %}
157   \consists "Text_engraver"
158   \consists "Dynamic_engraver"
159   \consists "Dynamic_align_engraver"
160   \consists "Fingering_engraver"
161
162   \consists "Script_column_engraver"
163   \consists "Rhythmic_column_engraver"
164   \consists "Cluster_spanner_engraver"
165   \consists "Tie_engraver"
166   \consists "Tie_engraver"
167   \consists "Tuplet_engraver"
168   \consists "Note_heads_engraver"
169   \consists "Rest_engraver"
170 }
171
172
173 \score {
174   \topVoice
175   \layout {
176     \context { \MyStaff }
177     \context { \MyVoice }
178   }
179 }
180
181
182 MyStaff = \context {
183   \MyStaff
184   \consists "Staff_symbol_engraver"
185 }
186
187 \score {
188   \topVoice
189   \layout {
190     \context { \MyStaff }
191     \context { \MyVoice }
192   }
193 }
194
195 MyStaff = \context {
196   \MyStaff
197   \consists "Clef_engraver"
198   \remove "Pitch_squash_engraver"
199 }
200
201 \score {
202   \topVoice
203   \layout {
204     \context { \MyStaff }
205     \context { \MyVoice }
206   }
207 }
208
209 MyVoice = \context {
210   \MyVoice
211   \consists "Stem_engraver"
212 }
213
214 \score {
215   \topVoice
216   \layout {
217     \context { \MyStaff }
218     \context { \MyVoice }
219   }
220 }
221
222 MyVoice = \context {
223   \MyVoice
224   \consists "Beam_engraver"
225 }
226
227 \score {
228   \topVoice
229   \layout {
230     \context { \MyStaff }
231     \context { \MyVoice }
232   }
233 }
234
235 MyVoice = \context {
236   \MyVoice
237   \consists "Phrasing_slur_engraver"
238   \consists "Slur_engraver"
239   \consists "Script_engraver"
240 }
241
242
243 \score {
244   \topVoice
245   \layout {
246     \context { \MyStaff }
247     \context { \MyVoice }
248   }
249 }
250
251 MyStaff = \context {
252   \MyStaff
253   \consists "Bar_engraver"
254   \consists "Time_signature_engraver"
255 }
256
257 \score {
258   \topVoice
259   \layout {
260     \context { \MyStaff }
261     \context { \MyVoice }
262   }
263 }
264
265 MyStaff = \context {
266   \MyStaff
267   \consists "Accidental_engraver"
268   \consists "Key_engraver"
269 }
270 \score {
271   \topVoice
272   \layout {
273     \context { \MyStaff }
274     \context { \MyVoice }
275   }
276 }