2 (define-public music-descriptions
6 (internal-class-name . "Span_req")
8 (types . (general-music event abort-event))
12 (internal-class-name . "Arpeggio_req")
13 (types . (general-music event))
17 (internal-class-name . "Articulation_req")
18 (types . (general-music event articulation-event script-event))
22 (internal-class-name . "Bass_figure_req")
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 . "Break_req")
31 (types . (general-music event))
35 (internal-class-name . "Breathing_sign_req")
37 (types . (general-music event breathing-event))
41 (internal-class-name . "Busy_playing_req")
43 (types . (general-music event busy-playing-event))
47 (internal-class-name . "Extender_req")
48 (types . (general-music event))
52 (internal-class-name . "Glissando_req")
53 (types . (general-music event))
57 (internal-class-name . "Grace_music")
58 (iterator-ctor . ,Grace_iterator::constructor)
59 (types . (grace-music music-wrapper-music general-music))
63 (internal-class-name . "Hyphen_req")
64 (types . (general-music event))
68 (internal-class-name . "Key_change_req")
69 (types . (general-music event))
73 (internal-class-name . "Lyric_req")
74 (types . (general-music rhythmic-event event))
78 (internal-class-name . "Span_req")
79 (span-type . ligature)
80 (types . (general-music event span-event ligature-event))
84 (internal-class-name . "Mark_req")
85 (types . (general-music event))
89 (internal-class-name . "Melisma_playing_req")
90 (types . (general-music span-event event))
94 (internal-class-name . "Melisma_req")
95 (types . (general-music event))
99 (internal-class-name . "Music")
100 (types . (general-music))
104 (internal-class-name . "Request")
105 (length . ,music-duration-length)
106 (compress-procedure . ,music-duration-compress)
107 (types . (general-music event note-event rhythmic-event melodic-event))
111 (internal-class-name . "Porrectus_req")
112 (types . (general-music event))
116 (internal-class-name . "Repeated_music")
117 (type . repeated-music)
118 (types . (general-music repeat-music))
122 (internal-class-name . "Request")
123 (types . (general-music event))
127 (internal-class-name . "Request")
128 (length . ,music-duration-length)
129 (compress-procedure . ,music-duration-compress)
130 (types . (general-music event rhythmic-event rest-event))
134 (internal-class-name . "Rhythmic_req")
135 (length . ,music-duration-length)
136 (compress-procedure . ,music-duration-compress)
137 (types . (general-music rhythmic-event event))
141 (internal-class-name . "Sequential_music")
142 (iterator-ctor . ,Sequential_music_iterator::constructor)
143 (types . (general-music sequential-music))
147 (internal-class-name . "Simultaneous_music")
148 (iterator-ctor . ,Simultaneous_music_iterator::constructor)
150 (types . (general-music simultaneous-music))
154 (internal-class-name . "Music")
155 (types . (layout-instruction general-music))
156 (iterator-ctor . ,Property_iterator::constructor)
161 (internal-class-name . "Music")
162 (types . (layout-instruction general-music))
163 (iterator-ctor . ,Property_unset_iterator::constructor)
168 (internal-class-name . "Music")
169 (types . (separator general-music))
173 (internal-class-name . "Music")
174 (types . (general-music bar-check))
175 (iterator-ctor . ,Bar_check_iterator::constructor)
179 (internal-class-name . "Music")
180 (types . (general-music layout-instruction))
181 (iterator-ctor . , Push_property_iterator::constructor)
185 (internal-class-name . "Music")
186 (types . (general-music layout-instruction))
187 (iterator-ctor . , Pop_property_iterator::constructor)
190 (OutputPropertySetMusic
192 (internal-class-name . "Music")
193 (iterator-ctor . ,Output_property_music_iterator::constructor)
194 (types . (general-music layout-instruction))
198 (internal-class-name . "Context_specced_music")
199 (types . (context-specification general-music music-wrapper-music))
203 (internal-class-name . "Music_wrapper")
204 (iterator-ctor . ,Auto_change_iterator::constructor)
205 (types . (general-music music-wrapper-music auto-change-instruction))
209 (internal-class-name . "Music")
210 (iterator-ctor . , Change_iterator::constructor)
211 (types . (general-music translator-change-instruction))
215 (internal-class-name . "Time_scaled_music")
216 (iterator-ctor . ,Time_scaled_music_iterator::constructor)
217 (types . (time-scaled-music music-wrapper-music general-music))
221 (internal-class-name . "Transposed_music")
222 (types . (music-wrapper-music general-music transposed-music))
227 (internal-class-name . "Untransposable_music")
228 (types . (music-wrapper-music general-music untransposable-music))
233 (internal-class-name . "Un_relativable_music")
234 (types . (music-wrapper-music general-music unrelativable-music))
239 (internal-class-name . "Relative_octave_music")
240 (types . (music-wrapper-music general-music relative-octave-music))
245 (internal-class-name . "Lyric_combine_music")
246 (types . (general-music lyric-combine-music))
247 (iterator-ctor . ,Lyric_combine_music_iterator::constructor)
252 (internal-class-name . "Part_combine_music")
253 (types . (general-music part-combine-music))
254 (iterator-ctor . ,Part_combine_music_iterator::constructor)
258 (internal-class-name . "Request_chord")
259 (iterator-ctor . ,Request_chord_iterator::constructor)
260 (types . (general-music simultaneous-music))
266 (internal-class-name . "Script_req")
268 (types . (general-music event))
272 (internal-class-name . "Request")
273 (types . (general-music event rhythmic-event skip-event))
277 (internal-class-name . "Span_req")
278 (types . (general-music event))
282 (internal-class-name . "String_number_req")
284 (types . (general-music event))
288 (internal-class-name . "Tempo_req")
290 (types . (general-music event))
294 (internal-class-name . "Text_script_req")
295 (types . (general-music script-event text-script-event event))
299 (internal-class-name . "Request")
300 (types . (general-music tie-event event))
306 (define music-name-to-property-table (make-vector 59 '()))
309 (hashq-set! music-name-to-property-table (car x)
310 (assoc-set! (cdr x) 'name (car x)))
316 (define-public (make-music-by-name x)
317 (if (not (symbol? x))
318 (misc-error "Not a symbol: ~s" x))
321 (props (hashq-ref music-name-to-property-table x '()))
322 (name (if (pair? props)
323 (cdr (assoc 'internal-class-name props))
324 (misc-error "Can not find music object ~s" x)))
328 (ly-warn (format "Could not find music type `~a'" x)))
329 (ly-make-bare-music name props)