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 '())))
35 (define (strip-description x)
36 (cons (symbol->string (car x))
39 (define (music-type-doc entry)
41 #:name (symbol->string (car entry))
44 "\nMusic event type @code{"
45 (symbol->string (car entry))
46 "} is in Music objects of type "
49 (map (lambda (x) (ref-ify (symbol->string x)))
50 (cdr entry)) string<?))
56 (map ly:translator-name
58 (lambda (x) (engraver-accepts-music-type? (car entry) x)) all-engravers-list)))))
62 (define (music-types-doc)
64 #:name "Music classes"
68 (hash-table->alist music-types->names) alist<?))
71 (define (music-doc-str obj)
76 (types (cdr (assoc 'types props)))
80 (object-property namesym 'music-description)
82 (human-listify (map ref-ify (map symbol->string types)))
87 (map symbol->string (map ly:translator-name
89 (lambda (x) (engraver-accepts-music-types? types x)) all-engravers-list)))))
91 (description-list->texi
93 (lambda (x) (property->texi 'music x props))
99 (define (music-object-doc obj)
101 #:name (symbol->string (car obj))
102 #:text (music-doc-str obj)
105 (define (music-expressions-doc)
107 #:name "Music expressions"
108 #:desc "Objects that represent music."
110 (map music-object-doc music-descriptions)
113 (define (music-doc-node)
115 #:name "Music definitions"
116 #:desc "Definition of the Input data structures"
119 (music-expressions-doc)