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