2 (define (music-props-doc)
4 #:name "Music properties"
5 #:desc "All music properties, including descriptions"
8 (ps (sort (map symbol->string all-music-properties) string<?))
9 (descs (map (lambda (prop)
10 (property->texi 'music (string->symbol prop)))
12 (texi (description-list->texi descs))
17 (define music-types->names (make-vector 61 '()))
21 (types (cdr (assoc 'types (cdr entry) )))
24 (hashq-set! music-types->names type
26 (hashq-ref music-types->names type '())))
34 (define (hash-table->alist t)
35 "Convert table t to list"
40 (define (strip-description x)
41 (cons (symbol->string (car x))
44 (define (music-type-doc entry)
46 #:name (symbol->string (car entry))
49 "\nMusic event type @code{"
50 (symbol->string (car entry))
51 "} is in Music objects of type "
54 (map (lambda (x) (ref-ify (symbol->string x)))
55 (cdr entry)) string<?))
60 (map ly:translator-name
62 (lambda (x) (engraver-accepts-music-type? (car entry) x)) all-engravers-list))))
66 (define (music-types-doc)
68 #:name "Music classes"
72 (hash-table->alist music-types->names) alist<?))
75 (define (music-doc-str obj)
80 (types (cdr (assoc 'types props)))
84 (object-property namesym 'music-description)
86 (human-listify (map ref-ify (map symbol->string types)))
91 (map ly:translator-name
93 (lambda (x) (engraver-accepts-music-types? types x)) all-engravers-list))))
95 (description-list->texi
97 (lambda (x) (document-property x 'music props))
103 (define (music-object-doc obj)
105 #:name (symbol->string (car obj))
106 #:text (music-doc-str obj)
109 (define (music-expressions-doc)
111 #:name "Music expressions"
112 #:desc "Objects that represent music."
114 (map music-object-doc music-descriptions)
117 (define (music-doc-node)
119 #:name "Music definitions"
120 #:desc "Definition of the Input data structures"
123 (music-expressions-doc)