X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fmusic-types.scm;h=0c1d5fe5788408540f54a8d7ce5d69e7f40ddbb6;hb=3f0eeade60254cf648e559d5b74a7f0e343c34e7;hp=b127293ce381a9e18b83ecd3df8c9133e565a995;hpb=6bdb2046ab8ef6d36924792fe7f21247350181fb;p=lilypond.git diff --git a/scm/music-types.scm b/scm/music-types.scm index b127293ce3..0c1d5fe578 100644 --- a/scm/music-types.scm +++ b/scm/music-types.scm @@ -1,306 +1,596 @@ (define-public music-descriptions `( + (AbortEvent + . ( + (description . "Abort currently running spanners.") + (internal-class-name . "Request") + (span-type . "abort") + (types . (general-music event abort-event)) + )) (ArpeggioEvent . ( - (name . "Arpeggio_req") - (types . (general-music event)) + (description . "Make an arpeggio on this note. Syntax: +@var{note}-@code{\\arpeggio}") + (internal-class-name . "Request") + (types . (general-music arpeggio-event event)) )) + + ;; todo: use articulation-event for slur as well. + ;; separate non articulation scripts (ArticulationEvent . ( - (name . "Articulation_req") + (description . "") + + (internal-class-name . "Request") (types . (general-music event articulation-event script-event)) )) + (AutoChangeMusic + . ( + (description . "") + + (internal-class-name . "Music_wrapper") + (iterator-ctor . ,Auto_change_iterator::constructor) + (types . (general-music music-wrapper-music auto-change-instruction)) + )) + (BarCheck + . ( + (description . "") + (internal-class-name . "Music") + (types . (general-music bar-check)) + (iterator-ctor . ,Bar_check_iterator::constructor) + )) (BassFigureEvent . ( - (name . "Bass_figure_req") + (description . "") + + (internal-class-name . "Request") (types . (general-music event rhythmic-event bass-figure-event)) - )) + )) + (BeamEvent + . ( + (description . "") + + (internal-class-name . "Request") + (types . (general-music event beam-event span-event)) + )) (BreakEvent . ( - (name . "Break_req") + (description . "") - (types . (general-music event)) - )) + (internal-class-name . "Request") + (types . (general-music break-event event)) + )) (BreathingSignEvent . ( - (name . "Breathing_sign_req") + (description . "") + (internal-class-name . "Request") (types . (general-music event breathing-event)) )) (BusyPlayingEvent . ( - (name . "Busy_playing_req") + (description . "") + (internal-class-name . "Request") (types . (general-music event busy-playing-event)) )) - (ExtenderEvent + (ContextSpeccedMusic + . ( + (description . "") + (iterator-ctor . ,Context_specced_music_iterator::constructor) + (internal-class-name . "Music_wrapper") + (types . (context-specification general-music music-wrapper-music)) + )) + (CrescendoEvent + . ( + (description . "") + + (internal-class-name . "Request") + (types . (general-music dynamic-event crescendo-event event)) + )) + (DecrescendoEvent . ( - (name . "Extender_req") - (types . (general-music event)) + (description . "") + + (internal-class-name . "Request") + (types . (general-music dynamic-event decrescendo-event event)) + )) + (ExtenderEvent + . ( + (description . "") + + (internal-class-name . "Request") + (types . (general-music extender-event event)) )) (GlissandoEvent . ( - (name . "Glissando_req") - (types . (general-music event)) + (description . "") + + (internal-class-name . "Request") + (types . (general-music glissando-event event)) )) - (GraceMusic + (GraceMusic . ( - (name . "Grace_music") + (description . "") + + (internal-class-name . "Grace_music") (iterator-ctor . ,Grace_iterator::constructor) (types . (grace-music music-wrapper-music general-music)) )) (HyphenEvent . ( - (name . "Hyphen_req") - (types . (general-music event)) + (description . "") + + (internal-class-name . "Request") + (types . (general-music hyphen-event event)) )) (KeyChangeEvent . ( - (name . "Key_change_req") - (types . (general-music event)) + (description . "") + + (internal-class-name . "Key_change_req") + (types . (general-music key-change-event event)) )) - (LyricEvent + (LyricCombineMusic . ( - (name . "Lyric_req") - (types . (general-music rhythmic-event event)) - )) + (description . "") + + (internal-class-name . "Lyric_combine_music") + (types . (general-music lyric-combine-music)) + (iterator-ctor . ,Lyric_combine_music_iterator::constructor) + )) + + (LyricEvent + . ( + (description . "A lyric syllable. Must be entered in lyrics mode, i.e. +@code{\\lyrics @{ twinkle4 twinkle4 @} } .") + + (internal-class-name . "Request") + (types . (general-music rhythmic-event lyric-event event)) + )) + (LigatureEvent + . ( + (description . "") + + (internal-class-name . "Request") + (span-type . ligature) + (types . (general-music event span-event ligature-event)) + )) (MarkEvent . ( - (name . "Mark_req") - (types . (general-music event)) + (description . "") + + (internal-class-name . "Request") + (types . (general-music mark-event event)) )) (MelismaEvent . ( - (name . "Melisma_playing_req") - (types . (general-music span-event event)) + (description . "") + + (internal-class-name . "Request") + (types . (general-music span-event melisma-playing-event event)) )) - (Melisma_playingEvent + (MelismaPlayingEvent . ( - (name . "Melisma_req") + (description . "") + + (internal-class-name . "Request") (types . (general-music event)) )) + (MultiMeasureRestEvent + . ( + (description . "Rests that may be compressed into Multi rests. Syntax +@code{R2.*4} for 4 measures in 3/4 time. Note the capital R.") + (internal-class-name . "Request") + (types . (general-music event multi-measure-rest-event)) + )) (Music . ( - (name . "Music") + (description . "") + + (internal-class-name . "Music") (types . (general-music)) )) (NoteEvent . ( - (name . "Note_req") - (types . (general-music event rhythmic-event melodic-event)) + (description . "") + + (internal-class-name . "Request") + (types . (general-music event note-event rhythmic-event melodic-event)) )) - (PorrectusEvent + (OverrideProperty + . ( + (description . "") + + (internal-class-name . "Music") + (types . (general-music layout-instruction)) + (iterator-ctor . , Push_property_iterator::constructor) + )) + + (PartCombineMusic . ( - (name . "Porrectus_req") - (types . (general-music event)) + (description . "") + + (internal-class-name . "Simultaneous_music") + (types . (general-music part-combine-music)) + (iterator-ctor . ,Part_combine_music_iterator::constructor) + )) + (PhrasingSlurEvent + . ( + (description . "Start or end phrasing slur. Syntax NOTE \\( and \\) NOTE") + (internal-class-name . "Request") + (types . (general-music span-event phrasing-slur-event slur-event)) + )) + (PropertySet + . ( + (description . "") + (internal-class-name . "Music") + (types . (layout-instruction general-music)) + (iterator-ctor . ,Property_iterator::constructor) + ) + ) + (PropertyUnset + . ( + (description . "") + + (internal-class-name . "Music") + (types . (layout-instruction general-music)) + (iterator-ctor . ,Property_unset_iterator::constructor) + ) + ) + (PorrectusEvent + . ( + (description . "") + + (internal-class-name . "Request") + (types . (general-music porrectus-event event)) )) (RepeatedMusic . ( - (name . "Repeated_music") + (description . "") + (type . repeated-music) - (types . (general-music repeat-music)) + (types . (general-music repeated-music)) )) (Request . ( - (name . "Request") + (description . "") + + (internal-class-name . "Request") (types . (general-music event)) )) (RestEvent . ( - (name . "Rest_req") - (types . (general-music event rhythmic-event )) - )) - (RhythmicEvent - . ( - (name . "Rhythmic_req") - (types . (general-music rhythmic-event event)) + (description . "") + + (internal-class-name . "Request") + (types . (general-music event rhythmic-event rest-event)) )) (SequentialMusic . ( - (name . "Sequential_music") + (description . "Music expressions concatenated. Syntax \\sequential @{..@} or simply @{..@} .") + + (internal-class-name . "Sequential_music") (iterator-ctor . ,Sequential_music_iterator::constructor) (types . (general-music sequential-music)) )) (SimultaneousMusic . ( - (name . "Simultaneous_music") + (description . "Music playing together. Syntax: \\simultaneous @{ .. @} or < .. >.") + + (internal-class-name . "Simultaneous_music") (iterator-ctor . ,Simultaneous_music_iterator::constructor) (types . (general-music simultaneous-music)) )) - (PropertySet + (SlurEvent . ( - (name . "Music") - (types . (layout-instruction general-music)) - (iterator-ctor . ,Property_iterator::constructor) - ) - ) - (PropertyUnset - . ( - (name . "Music") - (types . (layout-instruction general-music)) - (iterator-ctor . ,Property_unset_iterator::constructor) - ) - ) - (VoiceSeparator - . ( - (name . "Music") - (types . (separator general-music)) - )) - (BarCheck - . ( - (name . "Music") - (types . (general-music bar-check)) - (iterator-ctor . ,Bar_check_iterator::constructor) - )) - (OverrideProperty - . ( - (name . "Music") - (types . (general-music layout-instruction)) - (iterator-ctor . , Push_property_iterator::constructor) - )) + (description . "Start or end slur. Syntax NOTE( and )NOTE") + (internal-class-name . "Request") + (types . (general-music span-event slur-event)) + )) - (RevertProperty + (RevertProperty . ( - (name . "Music") + (description . "") + + (internal-class-name . "Music") (types . (general-music layout-instruction)) (iterator-ctor . , Pop_property_iterator::constructor) )) (OutputPropertySetMusic . ( - (name . "Music") + (description . "") + + (internal-class-name . "Music") (iterator-ctor . ,Output_property_music_iterator::constructor) (types . (general-music layout-instruction)) )) - (ContextSpeccedMusic + + (TextSpanEvent . ( - (name . "Context_specced_music") - (types . (context-specification general-music music-wrapper-music)) - )) - (AutoChangeMusic - . ( - (name . "Music_wrapper") - (iterator-ctor . ,Auto_change_iterator::constructor) - (types . (general-music music-wrapper-music auto-change-instruction)) + (description . "Start a text spanner like 8va.....|") + (internal-class-name . "Request") + (types . (general-music span-event text-span-event)) )) (TranslatorChange . ( - (name . "Music") + (description . "") + + (internal-class-name . "Music") (iterator-ctor . , Change_iterator::constructor) (types . (general-music translator-change-instruction)) )) - - (TimeScaledMusic . ( - (name . "Time_scaled_music") + (description . "") + (internal-class-name . "Time_scaled_music") (iterator-ctor . ,Time_scaled_music_iterator::constructor) (types . (time-scaled-music music-wrapper-music general-music)) )) (TransposedMusic . ( - (name . "Transposed_music") + (description . "") + + (internal-class-name . "Transposed_music") (types . (music-wrapper-music general-music transposed-music)) )) (UntransposableMusic . ( - (name . "Untransposable_music") + (description . "") + + (internal-class-name . "Untransposable_music") (types . (music-wrapper-music general-music untransposable-music)) )) (UnrelativableMusic . ( - (name . "Un_relativable_music") + (description . "") + + (internal-class-name . "Un_relativable_music") (types . (music-wrapper-music general-music unrelativable-music)) )) (RelativeOctaveMusic . ( - (name . "Relative_octave_music") - (types . (music-wrapper-music general-music relative-octave-music)) - )) + (description . "") - (LyricCombineMusic - . ( - (name . "Lyric_combine_music") - (types . (general-music lyric-combine-music)) - (iterator-ctor . ,Lyric_combine_music_iterator::constructor) + (internal-class-name . "Relative_octave_music") + (types . (music-wrapper-music general-music relative-octave-music)) )) - (PartCombineMusic - . ( - (name . "Part_combine_music") - (types . (general-music part-combine-music)) - (iterator-ctor . ,Part_combine_music_iterator::constructor) - )) + (RequestChord . ( - (name . "Request_chord") + (description . "") + + (internal-class-name . "Request_chord") (iterator-ctor . ,Request_chord_iterator::constructor) - (types . (general-music simultaneous-music)) + (types . (general-music request-chord simultaneous-music)) ) ) (ScriptEvent . ( - (name . "Script_req") + (description . "") + (internal-class-name . "Request") (types . (general-music event)) )) (SkipEvent . ( - (name . "Skip_req") + (description . "") - (types . (general-music event rhythmic-event )) + (internal-class-name . "Request") + (types . (general-music event rhythmic-event skip-event)) )) (SpanEvent . ( - (name . "Span_req") + (description . "") + + (internal-class-name . "Request") (types . (general-music event)) )) + (SustainPedalEvent + . ( + (description . "") + (internal-class-name . "Request") + (types . (general-music pedal-event sustain-pedal-event)) + )) + (SostenutoEvent + . ( + (description . "") + (internal-class-name . "Request") + (types . (general-music pedal-event sostenuto-pedal-event)) + )) + (UnaCordaEvent + . ( + (description . "") + (internal-class-name . "Request") + (types . (general-music pedal-event una-corda-pedal-event)) + )) (StringNumberEvent . ( - (name . "String_number_req") + (description . "") - (types . (general-music event)) + (internal-class-name . "Request") + (types . (general-music string-number-event event)) )) (TempoEvent . ( - (name . "Tempo_req") + (description . "") - (types . (general-music event)) + (internal-class-name . "Request") + (types . (general-music tempo-event event)) )) (TextScriptEvent . ( - (name . "Text_script_req") + (description . "") + (internal-class-name . "Request") (types . (general-music script-event text-script-event event)) )) (TieEvent . ( - (name . "Tie_req") + (description . "A tie. Entered as ~.") + (internal-class-name . "Request") (types . (general-music tie-event event)) )) - )) + (TremoloEvent + . ( + (description . "Un measured tremolo.") + (internal-class-name . "Request") + (types . (general-music event tremolo-event)) + )) + (VoiceSeparator + . ( + (description . "") + (internal-class-name . "Music") + (types . (separator general-music)) + )) + + (VoltaRepeatedMusic + . ( + (iterator-ctor . ,Volta_repeat_iterator::constructor) + (internal-class-name . "Repeated_music") + (description . "") + (start-moment-function . ,Repeated_music::first_start) + (length . ,Repeated_music::volta_music_length) + (types . (general-music repeated-music volta-repeated-music)) + )) + + (UnfoldedRepeatedMusic + . ( + (iterator-ctor . ,Unfolded_repeat_iterator::constructor) + (description . "") + (start-moment-function . ,Repeated_music::first_start) + (internal-class-name . "Repeated_music") + (types . (general-music repeated-music unfolded-repeated-music)) + (length . ,Repeated_music::unfolded_music_length) + )) + (PercentRepeatedMusic + . ( + (internal-class-name . "Repeated_music") + (description . "") + (iterator-ctor . ,Percent_repeat_iterator::constructor) + (start-moment-function . ,Repeated_music::first_start) + (length . ,Repeated_music::unfolded_music_length) + (types . (general-music repeated-music percent-repeated-music)) + )) + + (TremoloRepeteadMusic + . ( + (iterator-ctor . ,Chord_tremolo_iterator::constructor) + (description . "") + (internal-class-name . "Repeated_music") + (start-moment-function . ,Repeated_music::first_start) + + ;; the length of the repeat is handled by shifting the note logs + (length . ,Repeated_music::folded_music_length) + (types . (general-music repeated-music tremolo-repeated-music)) + + )) + (FoldedRepeatedMusic + . ( + (internal-class-name . "Repeated_music") + (description . "") + (iterator-ctor . ,Folded_repeat_iterator::constructor) + (start-moment-function . ,Repeated_music::minimum_start) + (length . ,Repeated_music::folded_music_length) + (types . (general-music repeated-music folded-repeated-music)) + )) + )) + +(set! music-descriptions + (sort music-descriptions alistevent name) + (let + ( + (entry (assoc + name + '( + ("text" . TextSpanEvent) + ("decrescendo" . DecrescendoEvent) + ("crescendo" . CrescendoEvent) + ("Sustain" . SustainPedalEvent) + ("slur" . SlurEvent) + ("UnaCorda" . UnaCordaEvent) + ("Sostenuto" . SostenutoEvent) + ))) + ) + (if (eq? entry #f) + (error (format "Could not find span type ~a" name)) + + (make-music-by-name (cdr entry)) + ) + )) + +(define-public (make-repeated-music name) + (let* + ( + (handle (assoc + name + '(("volta" . VoltaRepeatedMusic) + ("unfold" . UnfoldedRepeatedMusic) + ("percent" . PercentRepeatedMusic) + ("tremolo" . TremoloRepeteadMusic) + ("fold" . FoldedRepeatedMusic) + ))) + (music-name + (if (pair? handle) + (cdr handle) + (begin + (ly-warn + (string-append "Unknown repeat type `" name + "'\nSee music-types.scm for supported repeats")) + 'VoltaRepeatedMusic) + ) + ) + ) + + (make-music-by-name music-name) + )) +