X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdefine-music-types.scm;h=7a06764063cbee8827fbeea1176481500b881966;hb=c71b765b7beb840331f2bededdedddf162b13f98;hp=383d42b4a9229efdd4d4c97658664546ca3fdff9;hpb=7e5826578e2218cb1a2c91906614ca6ff648c2ed;p=lilypond.git diff --git a/scm/define-music-types.scm b/scm/define-music-types.scm index 383d42b4a9..7a06764063 100644 --- a/scm/define-music-types.scm +++ b/scm/define-music-types.scm @@ -2,11 +2,25 @@ ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; -;;;; (c) 1998--2005 Han-Wen Nienhuys +;;;; (c) 1998--2006 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen ;; TODO: should link back into user manual. +(define (mm-rest-child-list music) + "Check if we have R1*4-\\markup { .. }, and if applicable convert to +a property set for MultiMeasureRestNumber." + (let ((location (ly:music-property music 'origin)) + (duration (ly:music-property music 'duration))) + (list (make-music 'BarCheck + 'origin location) + (make-event-chord (cons (make-music 'MultiMeasureRestEvent + 'origin location + 'duration duration) + (ly:music-property music 'articulations))) + (make-music 'BarCheck + 'origin location)))) + (define-public music-descriptions `( (AbsoluteDynamicEvent @@ -21,7 +35,7 @@ where x is one of \\ppp, \\pp, \\p, \\mp, \\mf, \\f, \\ff, \\fff.") . ( (description . "Call the argument with the current context during interpreting phase") (types . (general-music apply-context)) - (iterator-ctor . ,Apply_context_iterator::constructor) + (iterator-ctor . ,ly:apply-context-iterator::constructor) )) (ApplyOutputEvent . ( @@ -30,14 +44,13 @@ Call the argument with all current grobs during interpreting phase. Syntax -\\applyoutput FUNC +\\applyOutput #'Context FUNC arguments to func are 1. the grob, 2. the originating context, 3. context where FUNC is called. ") - (iterator-ctor . ,Output_property_music_iterator::constructor) - (types . (general-music layout-instruction)) + (types . (general-music event apply-output-event)) )) (ArpeggioEvent . ( @@ -65,9 +78,9 @@ is an articulation (such as @code{-.}, @code{->}, @code{\\tenuto}, (AutoChangeMusic . ( (description . "Used for making voices that switch between piano staves automatically.") - (iterator-ctor . ,Auto_change_iterator::constructor) - (start-callback . ,Music_wrapper::start_callback) - (length-callback . ,Music_wrapper::length_callback) + (iterator-ctor . ,ly:auto-change-iterator::constructor) + (start-callback . ,ly:music-wrapper::start-callback) + (length-callback . ,ly:music-wrapper::length-callback) (types . (general-music music-wrapper-music auto-change-instruction)) )) (BarCheck @@ -75,7 +88,7 @@ is an articulation (such as @code{-.}, @code{->}, @code{\\tenuto}, (description . "Check whether this music coincides with the start of the measure.") (types . (general-music bar-check)) - (iterator-ctor . ,Bar_check_iterator::constructor) + (iterator-ctor . ,ly:bar-check-iterator::constructor) )) (BassFigureEvent . ( @@ -91,13 +104,18 @@ Syntax for manual control: c8-[ c c-] c8") (types . (general-music event beam-event span-event)) )) + + (BendAfterEvent + . ((description . "A drop/fall/doit jazz articulation") + (types . (general-music bend-after-event event)))) + (BreakEvent . ( (description . "Create a line break, Syntax: \\break or page break, Syntax: \\pagebreak.") - + (types . (general-music break-event event)) )) - (BreathingSignEvent + (BreathingEvent . ( (description . "Creates a `breath mark' or `comma'. @@ -106,24 +124,17 @@ Syntax: (types . (general-music event breathing-event)) )) - (BusyPlayingEvent - . ( - (description . "Used internally to signal beginning and ending of notes.") - - (types . (general-music event busy-playing-event)) - )) (ContextChange . ( (description . "Change staffs in Piano staff. Syntax @code{\\translator Staff = @var{new-id}}.") - (iterator-ctor . , Change_iterator::constructor) + (iterator-ctor . , ly:change-iterator::constructor) (types . (general-music translator-change-instruction)) )) (ClusterNoteEvent - . ( - (description . "A note that is part of a cluster.") + . ((description . "A note that is part of a cluster.") ;; not a note-event, to ensure that Note_engraver doesn't eat it. (types . (general-music cluster-note-event melodic-event rhythmic-event event)) @@ -132,9 +143,9 @@ Syntax @code{\\translator Staff = @var{new-id}}.") (ContextSpeccedMusic . ( (description . "Interpret the argument music within a specific context.") - (iterator-ctor . ,Context_specced_music_iterator::constructor) - (length-callback . ,Music_wrapper::length_callback) - (start-callback . ,Music_wrapper::start_callback) + (iterator-ctor . ,ly:context-specced-music-iterator::constructor) + (length-callback . ,ly:music-wrapper::length-callback) + (start-callback . ,ly:music-wrapper::start-callback) (types . (context-specification general-music music-wrapper-music)) )) @@ -162,17 +173,23 @@ Syntax: @var{note}\\cr (types . (general-music extender-event event)) )) - + (Event + . ( + (description . "Atomic music event.") + (types . (general-music event)) + )) + (EventChord . ( (description . "Internally used to group a set of events.") - (iterator-ctor . ,Event_chord_iterator::constructor) - (length-callback . ,Music_sequence::maximum_length_callback) - (to-relative-callback . ,Music_sequence::event_chord_relative_callback) + (iterator-ctor . ,ly:event-chord-iterator::constructor) + (length-callback . ,ly:music-sequence::maximum-length-callback) + (to-relative-callback . ,ly:music-sequence::event-chord-relative-callback) (types . (general-music event-chord simultaneous-music)) )) - (FingerEvent + + (FingeringEvent . ( (description . "Specify what finger to use for this note.") (types . (general-music fingering-event event)) @@ -191,9 +208,9 @@ Syntax: @var{note}\\cr (GraceMusic . ( (description . "Interpret the argument as grace notes. ") - (start-callback . ,Grace_music::start_callback) - (length . ,(ly:make-moment 0 1)) - (iterator-ctor . ,Grace_iterator::constructor) + (start-callback . ,ly:grace-music::start-callback) + (length . ,ZERO-MOMENT) + (iterator-ctor . ,ly:grace-iterator::constructor) (types . (grace-music music-wrapper-music general-music)) )) (NoteGroupingEvent @@ -230,22 +247,14 @@ Syntax: @var{note}\\laissezVibrer.") )) (LigatureEvent . ( - (description . "(docme).") - + (description . "Start or end a ligature.") (span-type . ligature) (types . (general-music span-event ligature-event event)) )) - - (OldLyricCombineMusic + (LineBreakEvent . ( - (description . "Align lyrics to the start of notes. - -Syntax @var{\\oldaddlyrics }@var{music} @var{lyrics}.") - - (types . (general-music lyric-combine-music)) - (length-callback . ,Lyric_combine_music::length_callback) - (start-callback . ,Music_sequence::first_start_callback) - (iterator-ctor . ,Old_lyric_combine_music_iterator::constructor) + (description . "Allow, forbid or force a line break.") + (types . (general-music line-break-event break-event event)) )) (LyricCombineMusic @@ -253,9 +262,9 @@ Syntax @var{\\oldaddlyrics }@var{music} @var{lyrics}.") (description . "Align lyrics to the start of notes. Syntax @var{\\lyricsto }@var{voicename} @var{lyrics}.") - (length . ,(ly:make-moment 0 1)) + (length . ,ZERO-MOMENT) (types . (general-music lyric-combine-music)) - (iterator-ctor . ,Lyric_combine_music_iterator::constructor) + (iterator-ctor . ,ly:lyric-combine-music-iterator::constructor) )) (LyricEvent @@ -274,11 +283,6 @@ e.g. @code{\\mark \"A\"}.") (types . (general-music mark-event event)) )) - (MelismaPlayingEvent - . ( - (description . "Used internally to signal melismas.") - (types . (general-music melisma-playing-event event)) - )) (ManualMelismaEvent . ( (description . "Start or stop a melisma. @@ -286,26 +290,22 @@ e.g. @code{\\mark \"A\"}.") Syntax: @code{c4\\melisma d\\melismaEnd}.") (types . (general-music melisma-span-event event)) )) - - (MultiMeasureRestEvent + + (MultiMeasureRestMusic . ( (description . "Rests that may be compressed into Multi rests. Syntax -@code{R2.*4} for 4 measures in 3/4 time. Note the capital R.") - (types . (general-music event rhythmic-event multi-measure-rest-event)) +@code{R2.*4} for 4 measures in 3/4 time.") + (iterator-ctor . ,ly:sequential-iterator::constructor) + (elements-callback . ,mm-rest-child-list) + (types . (general-music multi-measure-rest)) )) - - (MultiMeasureRestMusicGroup - . ( - (description . "Like sequential-music, but specifically intended -to group start-mmrest, skip, stop-mmrest sequence. -Syntax @code{R2.*5} for 5 measures in 3/4 time.") - (length-callback . ,Music_sequence::cumulative_length_callback) - (start-callback . ,Music_sequence::first_start_callback) - (iterator-ctor . ,Sequential_music_iterator::constructor) - (types . (general-music sequential-music)) + (MultiMeasureRestEvent + . ( + (description . "Used internally by MultiMeasureRestMusic to signal rests") + (types . (general-music event rhythmic-event multi-measure-rest-event)) )) (MultiMeasureTextEvent @@ -326,42 +326,38 @@ Syntax (NoteEvent . ( (description . "A note.") - (types . (general-music event note-event rhythmic-event melodic-event)) )) - (OutputPropertySetMusic - . ( - (description . "Set grob properties in objects -individually. - -Syntax @code{\\outputproperty @var{predicate} @var{prop} -= @var{val}}.") - - (iterator-ctor . ,Output_property_music_iterator::constructor) - (types . (general-music layout-instruction)) - )) - (OverrideProperty . ( (description . "Extend the definition of a graphical object. SYNTAX -@code{\\propery Foo.Bar \\override} @var{SYMBOL} = @var{VALUE} - +@code{\\override [ @var{Ctxt} . ] @var{Obj} @var{prop} = @var{val}} ") - (types . (general-music layout-instruction)) - (iterator-ctor . ,Push_property_iterator::constructor) + (types . (general-music layout-instruction-event override-property-event)) + (iterator-ctor . ,ly:push-property-iterator::constructor) + )) + (PageBreakEvent + . ( + (description . "Allow, forbid or force a page break.") + (types . (general-music break-event event)) + )) + (PageTurnEvent + . ( + (description . "Allow, forbid or force a page turn.") + (types . (general-music break-event event)) )) (PartCombineMusic . ( (description . "Combine two parts on a staff, either merged or as separate voices.") - (length-callback . ,Music_sequence::maximum_length_callback) - (start-callback . ,Music_sequence::minimum_start_callback) + (length-callback . ,ly:music-sequence::maximum-length-callback) + (start-callback . ,ly:music-sequence::minimum-start-callback) (types . (general-music part-combine-music)) - (iterator-ctor . ,Part_combine_iterator::constructor) + (iterator-ctor . ,ly:part-combine-iterator::constructor) )) (PhrasingSlurEvent . ( @@ -376,18 +372,24 @@ Syntax NOTE \\( and \\) NOTE") (description . "Set a context property. Syntax: @code{\\property @var{context}.@var{prop} = @var{scheme-val}}.") - (types . (layout-instruction general-music)) - (iterator-ctor . ,Property_iterator::constructor) + (types . (layout-instruction-event general-music)) + (iterator-ctor . ,ly:property-iterator::constructor) )) (PropertyUnset . ( (description . "Remove the definition of a context @code{\\property}.") - (types . (layout-instruction general-music)) - (iterator-ctor . ,Property_unset_iterator::constructor) + (types . (layout-instruction-event general-music)) + (iterator-ctor . ,ly:property-unset-iterator::constructor) )) - + + (PercentEvent + . ( + (description . "Used internally to signal percent repeats.") + (types . (general-music event percent-event)) + )) + (PesOrFlexaEvent . ( (description . "Within a ligature, mark the previous and the @@ -400,32 +402,28 @@ goes down).") (QuoteMusic . ( (description . "Quote preprocessed snippets of music. ") - (iterator-ctor . ,Quote_iterator::constructor) - (length-callback . ,Music_wrapper::length_callback) - (start-callback . ,Music_wrapper::start_callback) + (iterator-ctor . ,ly:music-wrapper-iterator::constructor) + (length-callback . ,ly:music-wrapper::length-callback) + (start-callback . ,ly:music-wrapper::start-callback) (types . (general-music music-wrapper-music)) )) (RelativeOctaveCheck . ((description . "Check if a pitch is in the correct octave.") - (to-relative-callback . ,Relative_octave_check::relative_callback) + (to-relative-callback . ,ly:relative-octave-check::relative-callback) (types . (general-music relative-octave-check)) )) (RepeatedMusic . ( (description . "Repeat music in different ways") - (type . repeated-music) (types . (general-music repeated-music)) )) - - (Event + (RepeatTieEvent . ( - (description . "Atomic music event.") - - (types . (general-music event)) + (description . "Ties for starting a second volta bracket.") + (types . (general-music event repeat-tie-event)) )) - (RestEvent . ( (description . "A Rest. @@ -440,8 +438,8 @@ Syntax @code{r4} for a quarter rest. ") previously added property from a graphical object definition ") - (types . (general-music layout-instruction)) - (iterator-ctor . , Pop_property_iterator::constructor) + (types . (general-music layout-instruction-event)) + (iterator-ctor . , ly:pop-property-iterator::constructor) )) (SequentialMusic @@ -450,9 +448,10 @@ previously added property from a graphical object definition Syntax \\sequential @{..@} or simply @{..@} .") - (length-callback . ,Music_sequence::cumulative_length_callback) - (start-callback . ,Music_sequence::first_start_callback) - (iterator-ctor . ,Sequential_music_iterator::constructor) + (length-callback . ,ly:music-sequence::cumulative-length-callback) + (start-callback . ,ly:music-sequence::first-start-callback) + (elements-callback . ,(lambda (m) (ly:music-property m 'elements))) + (iterator-ctor . ,ly:sequential-iterator::constructor) (types . (general-music sequential-music)) )) @@ -460,18 +459,18 @@ Syntax \\sequential @{..@} or simply @{..@} .") . ( (description . "Print Solo.1") (part-combine-status . solo1) - (types . (general-music event part-combine-event)) + (types . (general-music event part-combine-event solo1-event)) )) (SoloTwoEvent . ( (description . "Print Solo.2") (part-combine-status . solo2) - (types . (general-music event part-combine-event)) + (types . (general-music event part-combine-event solo2-event)) )) (UnisonoEvent . ((description . "Print a2") (part-combine-status . unisono) - (types . (general-music event part-combine-event)))) + (types . (general-music event part-combine-event unisono-event)))) (SimultaneousMusic . ( @@ -479,12 +478,12 @@ Syntax \\sequential @{..@} or simply @{..@} .") SYNTAX -@code{ \\simultaneous @{ .. @}} or < .. >.") +@code{ \\simultaneous @{ .. @}} or << .. >>.") - (iterator-ctor . ,Simultaneous_music_iterator::constructor) - (start-callback . ,Music_sequence::minimum_start_callback) - (length-callback . ,Music_sequence::maximum_length_callback) - (to-relative-callback . ,Music_sequence::simultaneous_relative_callback) + (iterator-ctor . ,ly:simultaneous-music-iterator::constructor) + (start-callback . ,ly:music-sequence::minimum-start-callback) + (length-callback . ,ly:music-sequence::maximum-length-callback) + (to-relative-callback . ,ly:music-sequence::simultaneous-relative-callback) (types . (general-music simultaneous-music)) )) @@ -493,7 +492,8 @@ SYNTAX . ( (description . "Start or end slur. -Syntax NOTE( and )NOTE") +Syntax NOTE( and NOTE) ") + (types . (general-music span-event event slur-event)) )) @@ -502,13 +502,6 @@ Syntax NOTE( and )NOTE") (types . (general-music event span-event staff-span-event)) )) - (StartPlayingEvent - . ( - (description . "Used internally to signal beginning of notes.") - - (types . (general-music event start-playing-event)) - )) - (TextSpanEvent . ( (description . "Start a text spanner like 8va.....|") @@ -521,6 +514,16 @@ Syntax NOTE( and )NOTE") (types . (general-music span-event event trill-span-event)) )) + (TransposedMusic + . ( + (description . "Music that has been transposed.") + (iterator-ctor . ,ly:music-wrapper-iterator::constructor) + (start-callback . ,ly:music-wrapper::start-callback) + (length-callback . ,ly:music-wrapper::length-callback) + (to-relative-callback . ,ly:relative-octave-music::no-relative-callback) + (types . (music-wrapper-music general-music transposed-music)) + )) + (TimeScaledMusic . ( (description . "Multiply durations, as in tuplets. @@ -528,39 +531,35 @@ Syntax NOTE( and )NOTE") Syntax @code{\\times @var{fraction} @var{music}}, e.g. @code{\\times 2/3 @{ ... @}} for triplets. ") - (length-callback . ,Music_wrapper::length_callback) - (start-callback . ,Music_wrapper::start_callback) - (iterator-ctor . ,Time_scaled_music_iterator::constructor) + (length-callback . ,ly:music-wrapper::length-callback) + (start-callback . ,ly:music-wrapper::start-callback) + (iterator-ctor . ,ly:time-scaled-music-iterator::constructor) (types . (time-scaled-music music-wrapper-music general-music)) )) - - (TransposedMusic + + (TupletSpanEvent . ( - (description . "Music that has been transposed.") - (iterator-ctor . ,Music_wrapper_iterator::constructor) - (start-callback . ,Music_wrapper::start_callback) - (length-callback . ,Music_wrapper::length_callback) - (to-relative-callback . ,Relative_octave_music::no_relative_callback) - (types . (music-wrapper-music general-music transposed-music)) - )) + (description . "Used internally to signal where tuplet brackets start and stop.") + (types . (tuplet-span-event span-event event general-music)) + )) (UnrelativableMusic . ( (description . "Music that can not be converted from relative to absolute notation. For example, transposed music.") - (to-relative-callback . ,Relative_octave_music::no_relative_callback) - (iterator-ctor . ,Music_wrapper_iterator::constructor) - (length-callback . ,Music_wrapper::length_callback) + (to-relative-callback . ,ly:relative-octave-music::no-relative-callback) + (iterator-ctor . ,ly:music-wrapper-iterator::constructor) + (length-callback . ,ly:music-wrapper::length-callback) (types . (music-wrapper-music general-music unrelativable-music)) )) (RelativeOctaveMusic . ( (description . "Music that was entered in relative octave notation.") - (to-relative-callback . ,Relative_octave_music::relative_callback) - (iterator-ctor . ,Music_wrapper_iterator::constructor) - (length-callback . ,Music_wrapper::length_callback) - (start-callback . ,Music_wrapper::start_callback) + (to-relative-callback . ,ly:relative-octave-music::relative-callback) + (iterator-ctor . ,ly:music-wrapper-iterator::constructor) + (length-callback . ,ly:music-wrapper::length-callback) + (start-callback . ,ly:music-wrapper::start-callback) (types . (music-wrapper-music general-music relative-octave-music)) )) (ScriptEvent @@ -579,7 +578,7 @@ does not create staffs or voices implicitly. Syntax: @code{\\skip }@var{duration}.") (length-callback . ,ly:music-duration-length) - (iterator-ctor . ,Simple_music_iterator::constructor) + (iterator-ctor . ,ly:simple-music-iterator::constructor) (types . (general-music event rhythmic-event skip-event)) )) @@ -593,6 +592,11 @@ Syntax: @code{s}@var{duration}") (types . (general-music event rhythmic-event skip-event)) )) + + (SpacingSectionEvent + . ((description . "Start a new spacing section") + (types . (general-music event spacing-section-event)))) + (SpanEvent . ( (description . "Event for anything that is started at a different time than stopped.") @@ -603,7 +607,7 @@ Syntax: @code{s}@var{duration}") (SustainEvent . ( (description . "Depress or release sustain pedal. ") - (types . (general-music event pedal-event sustain-pedal-event)) + (types . (general-music event pedal-event sustain-event)) )) (SostenutoEvent @@ -649,6 +653,12 @@ Syntax: @code{\\@var{number}}.") (types . (general-music event tremolo-event)) )) + (TremoloSpanEvent + . ( + (description . "Tremolo over two stems") + (types . (general-music event span-event tremolo-span-event)) + )) + (VoiceSeparator . ( (description . "Separate polyphonic voices in simultaneous music. @@ -660,38 +670,38 @@ Syntax: @code{\\\\}") (VoltaRepeatedMusic . ( - (iterator-ctor . ,Volta_repeat_iterator::constructor) + (iterator-ctor . ,ly:volta-repeat-iterator::constructor) (description . "") - (start-callback . ,Repeated_music::first_start) - (length-callback . ,Repeated_music::volta_music_length) + (start-callback . ,ly:repeated-music::first-start) + (length-callback . ,ly:repeated-music::volta-music-length) (types . (general-music repeated-music volta-repeated-music)) )) (UnfoldedRepeatedMusic . ( - (iterator-ctor . ,Unfolded_repeat_iterator::constructor) + (iterator-ctor . ,ly:unfolded-repeat-iterator::constructor) (description . "") - (start-callback . ,Repeated_music::first_start) + (start-callback . ,ly:repeated-music::first-start) (types . (general-music repeated-music unfolded-repeated-music)) - (length-callback . ,Repeated_music::unfolded_music_length) + (length-callback . ,ly:repeated-music::unfolded-music-length) )) (PercentRepeatedMusic . ( (description . "Repeats encoded by percents.") - (iterator-ctor . ,Percent_repeat_iterator::constructor) - (start-callback . ,Repeated_music::first_start) - (length-callback . ,Repeated_music::unfolded_music_length) + (iterator-ctor . ,ly:percent-repeat-iterator::constructor) + (start-callback . ,ly:repeated-music::first-start) + (length-callback . ,ly:repeated-music::unfolded-music-length) (types . (general-music repeated-music percent-repeated-music)) )) (TremoloRepeatedMusic . ( - (iterator-ctor . ,Chord_tremolo_iterator::constructor) + (iterator-ctor . ,ly:chord-tremolo-iterator::constructor) (description . "Repeated notes denoted by tremolo beams.") - (start-callback . ,Repeated_music::first_start) + (start-callback . ,ly:repeated-music::first-start) ;; the length of the repeat is handled by shifting the note logs - (length-callback . ,Repeated_music::folded_music_length) + (length-callback . ,ly:repeated-music::folded-music-length) (types . (general-music repeated-music tremolo-repeated-music)) )) @@ -699,9 +709,9 @@ Syntax: @code{\\\\}") (FoldedRepeatedMusic . ( (description . "Repeats with alternatives placed in parallel. ") - (iterator-ctor . ,Folded_repeat_iterator::constructor) - (start-callback . ,Repeated_music::minimum_start) - (length-callback . ,Repeated_music::folded_music_length) + (iterator-ctor . ,ly:folded-repeat-iterator::constructor) + (start-callback . ,ly:repeated-music::minimum-start) + (length-callback . ,ly:repeated-music::folded-music-length) (types . (general-music repeated-music folded-repeated-music)) )) ))