]> git.donarmstrong.com Git - lilypond.git/blob - scm/define-music-types.scm
* Documentation/user/instrument-notation.itely (Laissez vibrer
[lilypond.git] / scm / define-music-types.scm
1 ;;;; define-music-types.scm --
2 ;;;;
3 ;;;;  source file of the GNU LilyPond music typesetter
4 ;;;; 
5 ;;;; (c) 1998--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
6 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
7
8 ;; TODO: should link back into user manual.
9
10 (define-public music-descriptions
11   `(
12     (AbsoluteDynamicEvent
13      . (
14         (description . "Creates a dynamic mark.
15
16 Syntax: @var{note}@code{\\x},
17 where x is one of \\ppp, \\pp, \\p, \\mp, \\mf, \\f, \\ff, \\fff.")
18         (types . (general-music event dynamic-event absolute-dynamic-event))
19         ))
20     (ApplyContext
21      . (
22         (description . "Call the argument with the current context during interpreting phase")
23         (types . (general-music apply-context))
24         (iterator-ctor . ,Apply_context_iterator::constructor)
25         ))
26     (ApplyOutputEvent
27      . (
28         (description . "
29 Call the argument with all current grobs during interpreting phase.
30
31 Syntax
32
33 \\applyoutput FUNC
34
35 arguments to func are 1. the grob, 2. the originating context,
36 3. context where FUNC is called.
37
38 ")
39         (iterator-ctor . ,Output_property_music_iterator::constructor)
40         (types . (general-music layout-instruction))
41         ))
42     (ArpeggioEvent 
43      . (
44         (description .  "Make an arpeggio on this note.
45
46 Syntax:
47 @var{note}-@code{\\arpeggio}")
48         (types . (general-music arpeggio-event event))
49         ))
50
51     ;; todo: use articulation-event for slur as well.
52     ;; separate non articulation scripts  
53     (ArticulationEvent
54      . (
55         (description .  "Adds an articulation marking to a note.  
56
57 Syntax:
58 @var{note}@code{X}@code{Y}, where X is a direction (up @code{^}, down
59 @code{_}, or LilyPond's choice (no direction specified)), and where Y
60 is an articulation (such as @code{-.}, @code{->}, @code{\\tenuto},
61 @code{\\downbow}).  See the user manual for details.")
62
63         (types . (general-music event articulation-event script-event))
64         )) 
65     (AutoChangeMusic
66      . (
67         (description .  "Used for making voices that switch between piano staves automatically.")
68         (iterator-ctor . ,Auto_change_iterator::constructor)
69         (start-callback . ,Music_wrapper::start_callback)
70         (length-callback . ,Music_wrapper::length_callback)
71         (types . (general-music music-wrapper-music auto-change-instruction))
72         ))
73     (BarCheck
74      . (
75         (description .
76                      "Check whether this music coincides with the start of the measure.")
77         (types . (general-music bar-check))
78         (iterator-ctor . ,Bar_check_iterator::constructor)
79         ))
80     (BassFigureEvent
81      . (
82         (description .  "Print a bass-figure text")
83
84         (types . (general-music event rhythmic-event bass-figure-event))
85         ))
86     (BeamEvent
87      . (
88         (description .  "Starts or stops a beam.  
89
90 Syntax for manual control:
91 c8-[ c c-] c8")
92         (types . (general-music event beam-event span-event))
93         ))
94     (BreakEvent
95      . (
96         (description .  "Create a line break, Syntax: \\break or page break, Syntax: \\pagebreak.")
97
98         (types . (general-music break-event event))
99         ))
100     (BreathingSignEvent
101      . (
102         (description .  "Creates a `breath mark' or `comma'.  
103
104 Syntax:
105 @var{note}\\breathe.")
106
107         (types . (general-music event breathing-event))
108         )) 
109     (BusyPlayingEvent
110      . (
111         (description .  "Used internally to signal beginning and ending of notes.")
112
113         (types . (general-music event busy-playing-event))
114         ))
115     (ContextChange
116      . (
117         (description .  "Change staffs in Piano staff. 
118
119 Syntax @code{\\translator Staff = @var{new-id}}.")
120         (iterator-ctor . , Change_iterator::constructor)
121         (types . (general-music translator-change-instruction))
122         ))
123
124     (ClusterNoteEvent
125      . (
126         (description .  "A note that is part of a cluster.")
127
128         ;; not a note-event, to ensure that Note_engraver doesn't eat it. 
129         (types . (general-music cluster-note-event melodic-event rhythmic-event event))
130         ))
131     
132     (ContextSpeccedMusic
133      . (
134         (description .  "Interpret the argument music within a specific context.")
135         (iterator-ctor . ,Context_specced_music_iterator::constructor)
136         (length-callback . ,Music_wrapper::length_callback)
137         (start-callback . ,Music_wrapper::start_callback)
138         (types . (context-specification general-music music-wrapper-music))
139         ))
140     
141     (CrescendoEvent
142      . (
143         (description .  "Begins or ends a crescendo.  
144
145 Syntax: @var{note}\\cr
146 ... @var{note}\\rc (you can also use \\<, \\!, \\cresc, and
147 \\endcresc.  See the user manual for details.).")
148
149         (types . (general-music dynamic-event crescendo-event event))
150         )) 
151     (DecrescendoEvent
152      . (
153         (description .  "See @ref{CrescendoEvent}.")
154
155         (types . (general-music dynamic-event decrescendo-event event))
156         ))
157     
158     (ExtenderEvent
159      . (
160         (description .  "Extend lyrics.")
161
162         (types . (general-music extender-event event))
163         ))
164
165     
166     (EventChord
167      . (
168         (description .  "Internally used to group a set of events.")
169         (iterator-ctor . ,Event_chord_iterator::constructor)
170         (length-callback . ,Music_sequence::maximum_length_callback)
171         (to-relative-callback . ,Music_sequence::event_chord_relative_callback)
172         (types . (general-music event-chord simultaneous-music))
173         ))
174
175     (FingerEvent
176      . (
177         (description . "Specify what finger to use for this note.")
178         (types . (general-music fingering-event event))
179         ))
180     (BeamForbidEvent
181      . (
182         (description . "Specify that a note may not auto-beamed ")
183         (types . (general-music event beam-forbid-event))
184         ))
185     (GlissandoEvent
186      . (
187         (description .  "Start  a glissando on this note.")
188         (types . (general-music glissando-event event))
189         ))
190     
191     (GraceMusic
192      . (
193         (description .  "Interpret the argument as grace notes. ")
194         (start-callback . ,Grace_music::start_callback)
195         (length . ,(ly:make-moment 0 1))
196         (iterator-ctor . ,Grace_iterator::constructor)
197         (types . (grace-music music-wrapper-music general-music))
198         ))
199     (NoteGroupingEvent
200      . (
201         (description . "Start or stop grouping brackets.")
202         (types . (general-music event note-grouping-event))
203         ))
204     (HarmonicEvent
205      . (
206         (description . "Mark a note as harmonic")
207         (types . (general-music event harmonic-event))
208         ))
209     (HyphenEvent
210      . (
211         (description .  "A hyphen between lyric syllables.")
212
213         (types . (general-music hyphen-event event))
214         ))
215     
216     (KeyChangeEvent
217      . (
218         (description .  "Change the key signature. 
219
220 Syntax: @code{\\key } @var{name} @var{scale}.")
221         (to-relative-callback . ,(lambda (x p) p))
222         (types . (general-music key-change-event event))
223         ))
224     (LaissezVibrerEvent
225      . ((description . "Don't damp this chord.
226
227 Syntax: @var{note}\\laissezVibrer.")
228
229         (types . (general-music event laissez-vibrer-event))
230         ))
231     (LigatureEvent
232      . (
233         (description .  "(docme).")
234
235         (span-type . ligature)
236         (types . (general-music span-event ligature-event event))
237         ))
238     
239     (OldLyricCombineMusic
240      . (
241         (description .  "Align lyrics to the start of notes.
242
243 Syntax @var{\\oldaddlyrics }@var{music} @var{lyrics}.")
244
245         (types . (general-music lyric-combine-music))
246         (length-callback . ,Lyric_combine_music::length_callback)
247         (start-callback . ,Music_sequence::first_start_callback)
248         (iterator-ctor . ,Old_lyric_combine_music_iterator::constructor)
249         ))
250     
251     (LyricCombineMusic
252      . (
253         (description .  "Align lyrics to the start of notes.
254
255 Syntax @var{\\lyricsto }@var{voicename} @var{lyrics}.")
256         (length . ,(ly:make-moment 0 1))
257         (types . (general-music lyric-combine-music))
258         (iterator-ctor . ,Lyric_combine_music_iterator::constructor)
259         ))
260
261     (LyricEvent
262      . (
263         (description .  "A lyric syllable. Must be entered in lyrics mode, i.e.
264 @code{\\lyrics @{ twinkle4 twinkle4 @} } .")
265
266         (types . (general-music rhythmic-event lyric-event event))
267         ))
268     (MarkEvent
269      . (
270         (description .  "Insert a rehearsal mark. 
271
272 Syntax: @code{\\mark} @var{marker},
273 e.g. @code{\\mark \"A\"}.")
274
275         (types . (general-music mark-event event))
276         ))
277     (MelismaPlayingEvent
278      . (
279         (description .  "Used internally to signal melismas.")
280         (types . (general-music melisma-playing-event event))
281         ))
282     (ManualMelismaEvent
283      . (
284         (description .  "Start or stop a melisma.
285
286 Syntax: @code{c4\\melisma d\\melismaEnd}.")
287         (types . (general-music melisma-span-event event))
288         ))
289     
290     (MultiMeasureRestEvent
291      . (
292         (description . "Rests that may be compressed into Multi rests. 
293
294 Syntax
295 @code{R2.*4} for 4 measures in 3/4 time. Note the capital R.")
296         (types . (general-music event rhythmic-event multi-measure-rest-event))
297         ))
298     
299     (MultiMeasureRestMusicGroup
300      . (
301         (description .  "Like sequential-music, but specifically intended
302 to group start-mmrest, skip, stop-mmrest sequence. 
303
304 Syntax @code{R2.*5} for 5 measures in 3/4 time.")
305         (length-callback . ,Music_sequence::cumulative_length_callback)
306         (start-callback . ,Music_sequence::first_start_callback)
307         (iterator-ctor . ,Sequential_music_iterator::constructor)
308         (types . (general-music sequential-music))
309         ))
310     
311     (MultiMeasureTextEvent
312      . (
313         (description . "Texts on mm rests. 
314
315 Syntax
316 @code{R-\\markup @{ \\roman \"bla\" @}}. Note the explicit font switch.")
317         (types . (general-music event multi-measure-text-event))
318         ))
319
320     (Music
321      . (
322         (description .  "Generic type for music expressions.")
323
324         (types . (general-music)) 
325         ))
326     (NoteEvent
327      . (
328         (description .  "A note.")
329
330         (types . (general-music event note-event rhythmic-event melodic-event))
331         ))
332     
333     (OutputPropertySetMusic
334      . (
335         (description .  "Set grob properties in objects
336 individually. 
337
338 Syntax @code{\\outputproperty @var{predicate} @var{prop}
339 = @var{val}}.")
340
341         (iterator-ctor . ,Output_property_music_iterator::constructor)
342         (types . (general-music layout-instruction))
343         ))
344     
345     (OverrideProperty
346      . (
347         (description .  "Extend the definition of a graphical object.
348
349 SYNTAX
350
351 @code{\\propery Foo.Bar \\override} @var{SYMBOL} = @var{VALUE}
352
353 ")
354         (types . (general-music layout-instruction))
355         (iterator-ctor . ,Push_property_iterator::constructor)
356         ))
357     (PartCombineMusic
358      . (
359         (description .  "Combine two parts on a staff, either merged or
360 as separate voices.")
361         (length-callback . ,Music_sequence::maximum_length_callback)
362         (start-callback . ,Music_sequence::minimum_start_callback)
363         (types . (general-music part-combine-music))
364         (iterator-ctor . ,Part_combine_iterator::constructor)
365         ))
366     (PhrasingSlurEvent
367      . (
368         (description . "Start or end phrasing slur. 
369
370 Syntax NOTE \\(  and \\) NOTE")
371         (types . (general-music span-event event phrasing-slur-event))
372         ))
373     
374     (PropertySet
375      . (
376         (description .  "Set a context property.
377
378 Syntax: @code{\\property @var{context}.@var{prop} = @var{scheme-val}}.")
379         (types . (layout-instruction general-music))
380         (iterator-ctor . ,Property_iterator::constructor)
381         ))
382
383     (PropertyUnset
384      . (
385         (description .  "Remove the definition of a context @code{\\property}.")
386
387         (types . (layout-instruction general-music))
388         (iterator-ctor . ,Property_unset_iterator::constructor)
389         ))
390     
391     (PesOrFlexaEvent
392      . (
393         (description .  "Within a ligature, mark the previous and the
394 following note to form a pes (if melody goes up) or a flexa (if melody
395 goes down).")
396
397         (types . (general-music pes-or-flexa-event event))
398         ))
399
400     (QuoteMusic
401      . (
402         (description . "Quote preprocessed snippets of music. ")
403         (iterator-ctor . ,Quote_iterator::constructor)
404         (types . (general-music))
405         ))
406     
407     (RelativeOctaveCheck
408      . ((description . "Check if a pitch is in the correct octave.")
409         (to-relative-callback . ,Relative_octave_check::relative_callback)
410         (types . (general-music relative-octave-check))
411         ))
412     
413     (RepeatedMusic
414      . (
415         (description .  "Repeat music in different ways")
416         (type .  repeated-music)
417         (types . (general-music repeated-music))
418         ))
419     
420     (Event
421      . (
422         (description .  "Atomic music event.")
423
424         (types . (general-music event))
425         ))
426     
427     (RestEvent
428      . (
429         (description .  "A Rest. 
430
431 Syntax @code{r4} for a quarter rest. ")
432
433         (types . (general-music event rhythmic-event rest-event))
434         )) 
435     (RevertProperty
436      . (
437         (description .  "The opposite of @ref{OverrideProperty}: remove a
438 previously added property from a graphical object definition
439  ")
440
441         (types . (general-music layout-instruction))
442         (iterator-ctor . ,      Pop_property_iterator::constructor)
443         ))
444
445     (SequentialMusic
446      . (
447         (description .  "Music expressions concatenated. 
448
449 Syntax \\sequential @{..@} or simply @{..@} .")
450
451         (length-callback . ,Music_sequence::cumulative_length_callback)
452         (start-callback . ,Music_sequence::first_start_callback)
453         (iterator-ctor . ,Sequential_music_iterator::constructor)
454         (types . (general-music sequential-music))
455         ))
456
457     (SoloOneEvent
458      . (
459         (description . "Print Solo.1")
460         (part-combine-status . solo1)
461         (types . (general-music event part-combine-event))
462         ))
463     (SoloTwoEvent
464      . (
465         (description . "Print Solo.2")
466         (part-combine-status . solo2)
467         (types . (general-music event part-combine-event))
468         ))
469     (UnisonoEvent
470      . ((description . "Print a2")
471         (part-combine-status . unisono)
472         (types . (general-music event part-combine-event))))
473     
474     (SimultaneousMusic
475      . (
476         (description .  "Music playing together.
477
478 SYNTAX
479
480 @code{ \\simultaneous @{ .. @}} or < .. >.")
481
482         (iterator-ctor . ,Simultaneous_music_iterator::constructor)
483         (start-callback . ,Music_sequence::minimum_start_callback)
484         (length-callback . ,Music_sequence::maximum_length_callback)
485         (to-relative-callback . ,Music_sequence::simultaneous_relative_callback)
486         
487         (types . (general-music simultaneous-music))
488         ))
489     
490     (SlurEvent
491      . (
492         (description . "Start or end slur. 
493
494 Syntax NOTE(     and )NOTE")
495         (types . (general-music span-event event slur-event))
496         ))
497     
498     (StaffSpanEvent
499      . ((description . "Start or  stop a staff symbol.")
500         (types . (general-music event span-event staff-span-event))
501      ))
502     
503     (StartPlayingEvent
504      . (
505         (description .  "Used internally to signal beginning of notes.")
506
507         (types . (general-music event start-playing-event))
508         ))
509     
510     (TextSpanEvent
511      . (
512         (description . "Start a text spanner like 8va.....|")
513         (types . (general-music span-event event text-span-event))
514         ))
515     
516     (TrillSpanEvent
517      . (
518         (description . "Start a trill spanner tr~~~")
519         (types . (general-music span-event event trill-span-event))
520         ))
521     
522     (TimeScaledMusic
523      . (
524         (description .  "Multiply durations, as in tuplets. 
525
526 Syntax @code{\\times @var{fraction} @var{music}}, e.g.
527 @code{\\times 2/3 @{ ... @}} for triplets.
528  ")
529         (length-callback . ,Music_wrapper::length_callback)
530         (start-callback . ,Music_wrapper::start_callback)
531         (iterator-ctor . ,Time_scaled_music_iterator::constructor)
532         (types . (time-scaled-music music-wrapper-music general-music))
533         ))
534     
535     (TransposedMusic
536      . (
537         (description .  "Music that has been transposed.")
538         (iterator-ctor . ,Music_wrapper_iterator::constructor)
539         (start-callback . ,Music_wrapper::start_callback)
540         (length-callback . ,Music_wrapper::length_callback)
541         (to-relative-callback . ,Relative_octave_music::no_relative_callback)
542         (types . (music-wrapper-music general-music transposed-music))
543         ))
544
545     (UnrelativableMusic
546      . (
547         (description .  "Music that can not be converted from relative to absolute notation.
548 For example, transposed music.")
549         (to-relative-callback . ,Relative_octave_music::no_relative_callback)
550         (iterator-ctor . ,Music_wrapper_iterator::constructor)
551         (length-callback . ,Music_wrapper::length_callback)
552         (types . (music-wrapper-music general-music unrelativable-music))
553         ))
554
555     (RelativeOctaveMusic
556      . (
557         (description .  "Music that was entered in relative octave notation.")
558         (to-relative-callback . ,Relative_octave_music::relative_callback)
559         (iterator-ctor . ,Music_wrapper_iterator::constructor)
560         (length-callback . ,Music_wrapper::length_callback)
561         (start-callback . ,Music_wrapper::start_callback)
562         (types . (music-wrapper-music general-music relative-octave-music))
563         ))
564     (ScriptEvent
565      . (
566         (description .  "Add an articulation mark to a note. ")
567
568         (types . (general-music event))
569         ))
570
571     (SkipMusic
572      . (
573         (description .  "Filler that takes up duration, does not print anything, and also
574 does not create staffs or voices implicitly.
575
576
577
578 Syntax: @code{\\skip }@var{duration}.")
579         (length-callback . ,ly:music-duration-length)
580         (iterator-ctor . ,Simple_music_iterator::constructor)
581         (types . (general-music event rhythmic-event skip-event))
582         ))
583     
584     (SkipEvent
585      . (
586         (description .  "Filler that takes up duration, but does not print anything.
587
588
589
590 Syntax: @code{s}@var{duration}")
591
592         (types . (general-music event rhythmic-event skip-event))
593         ))
594     (SpanEvent
595      . (
596         (description .  "Event for anything that is started at a different time than stopped.")
597
598         (types . (general-music event))
599         ))
600     
601     (SustainEvent
602      . (
603         (description . "Depress or release sustain pedal. ")
604         (types . (general-music event pedal-event sustain-pedal-event))
605         ))
606     
607     (SostenutoEvent
608      . (
609         (description . "Depress or release sostenuto pedal. ")
610         (types . (general-music event pedal-event sostenuto-pedal-event))
611         ))
612     
613     (UnaCordaEvent
614      . (
615         (description . "Depress or release una-corda pedal.")
616         (types . (general-music event pedal-event una-corda-pedal-event))
617         ))
618     
619     (StringNumberEvent
620      . (
621         (description .  "Specify on which string to play this note. 
622
623 Syntax: @code{\\@var{number}}.")
624
625         (types . (general-music string-number-event event))
626         )) 
627
628     (MetronomeChangeEvent
629      . (
630         (description .  "Change tempo setting (in beats per minute).")
631         (types . (general-music metronome-change-event tempo-event event))
632         ))
633     
634     (TextScriptEvent
635      . (
636         (description .  "")
637         (types . (general-music script-event text-script-event event))
638         )) 
639     (TieEvent
640      . (
641         (description .  "A tie.  Entered as @var{note}-~.")
642         (types . (general-music tie-event event))
643         ))
644     (TremoloEvent
645      . (
646         (description . "Un measured tremolo.")
647         (types . (general-music event tremolo-event))
648         ))
649     
650     (VoiceSeparator
651      . (
652         (description .  "Separate polyphonic voices in simultaneous music. 
653
654 Syntax: @code{\\\\}")
655
656         (types . (separator general-music))
657         ))
658
659     (VoltaRepeatedMusic
660      . (
661         (iterator-ctor . ,Volta_repeat_iterator::constructor)
662         (description . "")
663         (start-callback .  ,Repeated_music::first_start)
664         (length-callback . ,Repeated_music::volta_music_length)
665         (types . (general-music repeated-music volta-repeated-music))
666         ))
667     
668     (UnfoldedRepeatedMusic
669      . (
670         (iterator-ctor . ,Unfolded_repeat_iterator::constructor)
671         (description .  "")
672         (start-callback .  ,Repeated_music::first_start)
673         (types . (general-music repeated-music unfolded-repeated-music))
674         (length-callback . ,Repeated_music::unfolded_music_length)
675         ))
676     (PercentRepeatedMusic
677      . (
678         (description .  "Repeats encoded by percents.")
679         (iterator-ctor . ,Percent_repeat_iterator::constructor)
680         (start-callback .  ,Repeated_music::first_start)
681         (length-callback . ,Repeated_music::unfolded_music_length)
682         (types . (general-music repeated-music percent-repeated-music))
683         ))
684     
685     (TremoloRepeatedMusic
686      . (
687         (iterator-ctor . ,Chord_tremolo_iterator::constructor)
688         (description .  "Repeated notes denoted by tremolo beams.")
689         (start-callback .  ,Repeated_music::first_start)
690
691         ;; the length of the repeat is handled by shifting the note logs
692         (length-callback . ,Repeated_music::folded_music_length)
693         (types . (general-music repeated-music tremolo-repeated-music))
694         
695         ))
696     
697     (FoldedRepeatedMusic
698      . (
699         (description .  "Repeats with alternatives placed in parallel. ")
700         (iterator-ctor  . ,Folded_repeat_iterator::constructor)
701         (start-callback .  ,Repeated_music::minimum_start)
702         (length-callback . ,Repeated_music::folded_music_length)
703         (types . (general-music repeated-music folded-repeated-music))
704         ))
705     ))
706
707 (set! music-descriptions
708       (sort music-descriptions alist<?))
709
710 (define-public music-name-to-property-table (make-vector 59 '()))
711
712 ;; init hash table,
713 ;; transport description to an object property.
714 (set!
715  music-descriptions
716  (map (lambda (x)
717         (set-object-property! (car x)
718                               'music-description
719                               (cdr (assq 'description (cdr x))))
720         (let ((lst (cdr x)))
721           (set! lst (assoc-set! lst 'name (car x)))
722           (set! lst (assq-remove! lst 'description))
723           (hashq-set! music-name-to-property-table (car x) lst)
724           (cons (car x) lst)))
725       music-descriptions))
726
727 (define-safe-public (make-music name . music-properties)
728   "Create a music object of given name, and set its properties
729 according to `music-properties', a list of alterning property symbols
730 and values. E.g:
731   (make-music 'OverrideProperty 
732               'symbol 'Stem
733               'grob-property 'thickness
734               'grob-value (* 2 1.5))"
735   (if (not (symbol? name))
736       (ly:error (_ "symbol expected: ~S") name))
737   (let ((props (hashq-ref music-name-to-property-table name '())))
738     (if (not (pair? props))
739         (ly:error (_ "can't find music object: ~S") name))
740     (let ((m (ly:make-music props)))
741       (define (set-props mus-props)
742         (if (and (not (null? mus-props))
743                  (not (null? (cdr mus-props))))
744             (begin
745               (set! (ly:music-property m (car mus-props)) (cadr mus-props))
746               (set-props (cddr mus-props)))))
747       (set-props music-properties)
748       m)))
749
750 (define-public (make-repeated-music name)
751   (let* ((handle (assoc name '(("volta" . VoltaRepeatedMusic)
752                                ("unfold" . UnfoldedRepeatedMusic)
753                                ("percent" . PercentRepeatedMusic)
754                                ("tremolo" . TremoloRepeatedMusic)
755                                ("fold" . FoldedRepeatedMusic))))
756          (music-name (if (pair? handle)
757                          (cdr handle)
758                          (begin
759                            (ly:warning (_ "unknown repeat type `~S'") name)
760                            (ly:warning (_ "See music-types.scm for supported repeats"))
761                            'VoltaRepeatedMusic))))
762     (make-music music-name)))
763