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<?))
61 (map ly:translator-name
63 (lambda (x) (engraver-accepts-music-type? (car entry) x)) all-engravers-list)))))
67 (define (music-types-doc)
69 #:name "Music classes"
73 (hash-table->alist music-types->names) alist<?))
76 (define (music-doc-str obj)
81 (types (cdr (assoc 'types props)))
85 (object-property namesym 'music-description)
87 (human-listify (map ref-ify (map symbol->string types)))
92 (map symbol->string (map ly:translator-name
94 (lambda (x) (engraver-accepts-music-types? types x)) all-engravers-list)))))
96 (description-list->texi
98 (lambda (x) (document-property x 'music props))
104 (define (music-object-doc obj)
106 #:name (symbol->string (car obj))
107 #:text (music-doc-str obj)
110 (define (music-expressions-doc)
112 #:name "Music expressions"
113 #:desc "Objects that represent music."
115 (map music-object-doc music-descriptions)
118 (define (music-doc-node)
120 #:name "Music definitions"
121 #:desc "Definition of the Input data structures"
124 (music-expressions-doc)