-(define (music-property-description symbol type? description)
- (if (not (equal? #f (object-property symbol 'music-doc)))
- (begin
- (ly:warn (string-append "Redefining " (symbol->string symbol) "\n"))
- (exit 2)
- ))
- (set-object-property! symbol 'music-type? type?)
- (set-object-property! symbol 'music-doc description)
- (set! all-music-properties (cons symbol all-music-properties))
- )
-
-
-
-(music-property-description 'iterator-ctor procedure? "Function to construct music-event-iterator object for this Music")
-(music-property-description 'duration ly:duration? "Duration of this note/lyric.")
-(music-property-description 'metronome-count number? "How many beats in a minute?")
-(music-property-description 'span-type string? "What kind of spanner should be created?
-
-TODO: consider making type into symbol")
-(music-property-description 'articulations music-list?
- "Articulation events specifically for this note.")
-(music-property-description 'articulation-type string? "key for script definitions alist.
-
-TODO: consider making type into symbol ")
-(music-property-description 'bass boolean? "Set if this note is a bass note in a chord")
-(music-property-description 'cautionary boolean? "If set, this alteration needs cautionary accidental")
-(music-property-description 'change-to-id string? "name of the context to change to ")
-(music-property-description 'change-to-type symbol? "type of the context to change to.")
-(music-property-description 'compress-procedure procedure? "compress this music expression. Argument 1: the music, arg 2: factor")
-(music-property-description 'context-id string? "name of context")
-(music-property-description 'context-type symbol? "type of context")
-(music-property-description 'denominator integer? "denominator in a time signature")
-(music-property-description 'digit integer? "digit for fingering")
-(music-property-description 'direction ly:dir? "Print this up or down?")
-(music-property-description 'tags list? "List of symbols that for denoting extra details,
-eg. @code{\\tag #'part ...} could tag a piece of music as only being active in a part.")
-
-
-(music-property-description 'text-type symbol? "Particular type of text script (eg. finger, dynamic).")
-(music-property-description 'tempo-unit ly:duration? "The unit for the metronome count.")
-(music-property-description 'tonic ly:pitch? "Base of the scale")
-(music-property-description 'element ly:music? "The single child of a Music_wrapper music object, or the body of a repeat.")
-(music-property-description 'elements music-list? "A list of elements for sequential of simultaneous music, or the alternatives of repeated music. ")
-(music-property-description 'force-accidental boolean? "If set, a cautionary accidental should always be printed on this note")
-(music-property-description 'grob-property symbol? "The symbol of the grob property to set. ")
-(music-property-description 'grob-value scheme? "The value of the grob property to set")
-(music-property-description 'inversion boolean? "If set, this chord note is inverted.")
-(music-property-description 'label markup? "label of a mark.")
-(music-property-description 'last-pitch ly:pitch? "The last pitch after relativization.")
-(music-property-description 'length procedure? "How to compute the duration of this music")
-(music-property-description 'internal-class-name string? "C++ class to use for this Music object")
-(music-property-description 'name symbol? "Name of this music object")
-(music-property-description 'numerator integer? "numerator of a time signature")
-(music-property-description 'once boolean? "Apply this operation only during one time step?")
-(music-property-description 'octavation integer?
- "This pitch was octavated by how many octaves?
+TODO: Consider making type into symbol.")
+ (articulations ,ly:music-list?
+ "Articulation events specifically for this note.")
+ (associated-context ,string? "Name of the context associated with
+this @code{\\lyricsto} section.")
+ (associated-context-type ,symbol? "Type of the context associated with
+this @code{\\lyricsto} section.")
+ (augmented ,boolean? "This figure is for an augmented figured
+bass (with @code{+} sign).")
+ (augmented-slash ,boolean? "This figure is for an augmented
+figured bass (back-slashed number).")
+ (automatically-numbered ,boolean? "Should a footnote be automatically
+numbered?")
+ (autosplit-end ,boolean? "Duration of event was truncated by automatic
+splitting in @code{Completion_heads_engraver}.")
+
+ (bass ,boolean? "Set if this note is a bass note in a chord.")
+ (beat-structure ,list? "A beatStructure to be used in autobeaming.")
+ (bracket-start ,boolean? "Start a bracket here.
+
+TODO: Use SpanEvents?")
+ (bracket-stop ,boolean? "Stop a bracket here.")
+ (break-penalty ,number? "Penalty for line break hint.")
+ (break-permission ,symbol?
+ "Whether to allow, forbid or force a line break.")
+
+ (cautionary ,boolean? "If set, this alteration needs a
+cautionary accidental.")
+ (change-to-id ,string? "Name of the context to change to.")
+ (change-to-type ,symbol? "Type of the context to change to.")
+ (class ,symbol? "The class name of an event class.")
+ (context ,ly:context? "The context to which an event is sent.")
+ (context-change-list ,list? "Context changes for @code{\\autochange} or @code{\\partcombine}.")
+ (context-id ,string? "Name of context.")
+ (context-type ,symbol? "Type of context.")
+ (create-new ,boolean? "Create a fresh context.")
+
+ (delta-step ,number? "How much should a fall change pitch?")
+ (denominator ,integer? "Denominator in a time signature.")
+ (descend-only ,boolean? "If set, this @code{\\context} only descends
+in the context tree.")
+ (digit ,integer? "Digit for fingering.")
+ (diminished ,boolean? "This bass figure should be slashed.")
+ (direction ,ly:dir? "Print this up or down?")
+ (drum-type ,symbol? "Which percussion instrument to play this note on.")
+ (duration ,ly:duration? "Duration of this note or lyric.")
+
+ (element ,ly:music? "The single child of a Music_wrapper music object,
+or the body of a repeat.")
+ (elements ,ly:music-list? "A list of elements for sequential of
+simultaneous music, or the alternatives of repeated music.")
+ (elements-callback ,procedure? "Return a list of children, for use by
+a sequential iterator. Takes a single music parameter.")
+ (error-found ,boolean?
+ "If true, a parsing error was found in this expression.")
+
+ (figure ,integer? "A bass figure.")
+ (footnote-text ,markup? "Text to appear in a footnote.")
+ (force-accidental ,boolean? "If set, a cautionary accidental should
+always be printed on this note.")
+
+ (grob-property ,symbol? "The symbol of the grob property to set.")
+ (grob-property-path ,list? "A list of symbols, locating a nested grob
+property, e.g., @code{(beamed-lengths details)}.")
+ (grob-value ,scheme? "The value of the grob property to set.")
+
+ (id ,symbol? "The ID of an event.")
+ (input-tag ,scheme? "Arbitrary marker to relate input and output.")
+ (inversion ,boolean? "If set, this chord note is inverted.")
+ (iterator-ctor ,procedure? "Function to construct a
+@code{music-event-iterator} object for this music.")
+
+ (label ,markup? "Label of a mark.")
+ (last-pitch ,ly:pitch? "The last pitch after relativization.")
+ (length ,ly:moment? "The duration of this music.")
+ (length-callback ,procedure? "How to compute the duration of this music.
+This property can only be defined as initializer in
+@file{scm/@/define-music-types.scm}.")
+ (line-break-permission ,symbol? "When the music is at top-level,
+whether to allow, forbid or force a line break.")
+
+ (metronome-count ,number-or-pair? "How many beats in a minute?")
+ (midi-extra-velocity ,integer? "How much louder or softer should
+this note be in MIDI output? The default is 0.")
+ (midi-length ,procedure? "Function to determine how long to play
+a note in MIDI. It should take a moment (the written length of the
+note) and a context, and return a moment (the length to play the
+note).")
+ (moment ,ly:moment? "The moment at which an event happens.")
+ (music-cause ,ly:music? "The music object that is the cause of
+an event.")
+
+ (name ,symbol? "Name of this music object.")
+ (no-continuation ,boolean? "If set, disallow continuation lines.")
+ (numerator ,integer? "Numerator of a time signature.")
+
+ (octavation ,integer? "This pitch was octavated by how many octaves?