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