2 (define-public music-descriptions
6 (internal-class-name . "Span_req")
8 (types . (general-music event abort-event))
12 (internal-class-name . "Request")
13 (types . (general-music arpeggio-event event))
17 (internal-class-name . "Articulation_req")
18 (types . (general-music event articulation-event script-event))
22 (internal-class-name . "Request")
23 (compress-procedure . ,music-duration-compress)
24 (length . ,music-duration-length)
25 (types . (general-music event rhythmic-event bass-figure-event))
29 (internal-class-name . "Request")
30 (types . (general-music event beam-event span-event))
34 (internal-class-name . "Request")
35 (types . (general-music break-event event))
39 (internal-class-name . "Request")
40 (types . (general-music event breathing-event))
44 (internal-class-name . "Request")
45 (types . (general-music event busy-playing-event))
49 (internal-class-name . "Request")
50 (types . (general-music event))
54 (internal-class-name . "Request")
55 (types . (general-music event))
59 (internal-class-name . "Grace_music")
60 (iterator-ctor . ,Grace_iterator::constructor)
61 (types . (grace-music music-wrapper-music general-music))
65 (internal-class-name . "Request")
66 (types . (general-music event))
70 (internal-class-name . "Key_change_req")
71 (types . (general-music key-change-event event))
75 (internal-class-name . "Lyric_req")
76 (types . (general-music rhythmic-event event))
80 (internal-class-name . "Request")
81 (span-type . ligature)
82 (types . (general-music event span-event ligature-event))
86 (internal-class-name . "Request")
87 (types . (general-music mark-event event))
91 (internal-class-name . "Melisma_playing_req")
92 (types . (general-music span-event melisma-playing-event event))
96 (internal-class-name . "Melisma_req")
97 (types . (general-music event))
101 (internal-class-name . "Music")
102 (types . (general-music))
106 (internal-class-name . "Request")
107 (length . ,music-duration-length)
108 (compress-procedure . ,music-duration-compress)
109 (types . (general-music event note-event rhythmic-event melodic-event))
113 (internal-class-name . "Porrectus_req")
114 (types . (general-music event))
118 (internal-class-name . "Repeated_music")
119 (type . repeated-music)
120 (types . (general-music repeat-music))
124 (internal-class-name . "Request")
125 (types . (general-music event))
129 (internal-class-name . "Request")
130 (length . ,music-duration-length)
131 (compress-procedure . ,music-duration-compress)
132 (types . (general-music event rhythmic-event rest-event))
136 (internal-class-name . "Rhythmic_req")
137 (length . ,music-duration-length)
138 (compress-procedure . ,music-duration-compress)
139 (types . (general-music rhythmic-event event))
143 (internal-class-name . "Sequential_music")
144 (iterator-ctor . ,Sequential_music_iterator::constructor)
145 (types . (general-music sequential-music))
149 (internal-class-name . "Simultaneous_music")
150 (iterator-ctor . ,Simultaneous_music_iterator::constructor)
152 (types . (general-music simultaneous-music))
156 (internal-class-name . "Music")
157 (types . (layout-instruction general-music))
158 (iterator-ctor . ,Property_iterator::constructor)
163 (internal-class-name . "Music")
164 (types . (layout-instruction general-music))
165 (iterator-ctor . ,Property_unset_iterator::constructor)
170 (internal-class-name . "Music")
171 (types . (separator general-music))
175 (internal-class-name . "Music")
176 (types . (general-music bar-check))
177 (iterator-ctor . ,Bar_check_iterator::constructor)
181 (internal-class-name . "Music")
182 (types . (general-music layout-instruction))
183 (iterator-ctor . , Push_property_iterator::constructor)
187 (internal-class-name . "Music")
188 (types . (general-music layout-instruction))
189 (iterator-ctor . , Pop_property_iterator::constructor)
192 (OutputPropertySetMusic
194 (internal-class-name . "Music")
195 (iterator-ctor . ,Output_property_music_iterator::constructor)
196 (types . (general-music layout-instruction))
200 (internal-class-name . "Context_specced_music")
201 (types . (context-specification general-music music-wrapper-music))
205 (internal-class-name . "Music_wrapper")
206 (iterator-ctor . ,Auto_change_iterator::constructor)
207 (types . (general-music music-wrapper-music auto-change-instruction))
211 (internal-class-name . "Music")
212 (iterator-ctor . , Change_iterator::constructor)
213 (types . (general-music translator-change-instruction))
217 (internal-class-name . "Time_scaled_music")
218 (iterator-ctor . ,Time_scaled_music_iterator::constructor)
219 (types . (time-scaled-music music-wrapper-music general-music))
223 (internal-class-name . "Transposed_music")
224 (types . (music-wrapper-music general-music transposed-music))
229 (internal-class-name . "Untransposable_music")
230 (types . (music-wrapper-music general-music untransposable-music))
235 (internal-class-name . "Un_relativable_music")
236 (types . (music-wrapper-music general-music unrelativable-music))
241 (internal-class-name . "Relative_octave_music")
242 (types . (music-wrapper-music general-music relative-octave-music))
247 (internal-class-name . "Lyric_combine_music")
248 (types . (general-music lyric-combine-music))
249 (iterator-ctor . ,Lyric_combine_music_iterator::constructor)
254 (internal-class-name . "Part_combine_music")
255 (types . (general-music part-combine-music))
256 (iterator-ctor . ,Part_combine_music_iterator::constructor)
260 (internal-class-name . "Request_chord")
261 (iterator-ctor . ,Request_chord_iterator::constructor)
262 (types . (general-music simultaneous-music))
268 (internal-class-name . "Script_req")
269 (types . (general-music event))
273 (internal-class-name . "Request")
274 (length . ,music-duration-length)
275 (compress-procedure . ,music-duration-compress)
276 (types . (general-music event rhythmic-event skip-event))
280 (internal-class-name . "Span_req")
281 (types . (general-music event))
285 (internal-class-name . "Request")
286 (types . (general-music dynamic-event decrescendo-event event))
290 (internal-class-name . "Request")
291 (types . (general-music dynamic-event crescendo-event event))
295 (internal-class-name . "Request")
296 (types . (general-music event))
300 (internal-class-name . "Request")
301 (types . (general-music tempo-event event))
305 (internal-class-name . "Text_script_req")
306 (types . (general-music script-event text-script-event event))
310 (internal-class-name . "Request")
311 (types . (general-music tie-event event))
317 (define music-name-to-property-table (make-vector 59 '()))
320 (hashq-set! music-name-to-property-table (car x)
321 (assoc-set! (cdr x) 'name (car x)))
327 (define-public (make-music-by-name x)
328 (if (not (symbol? x))
329 (misc-error "Not a symbol: ~s" x))
332 (props (hashq-ref music-name-to-property-table x '()))
333 (name (if (pair? props)
334 (cdr (assoc 'internal-class-name props))
335 (error "Can not find music object" x)))
339 (ly-warn (format "Could not find music type `~a'" x)))
340 (ly-make-bare-music name props)