(if (vector? props)
(vector-reverse-map execute-1 props))))
+
+
+(defmacro-public def-grace-function (start stop)
+ `(def-music-function (location music) (ly:music?)
+ (make-music 'GraceMusic
+ 'origin location
+ 'element (make-music 'SequentialMusic
+ 'elements (list (ly:music-deep-copy ,start)
+ music
+ (ly:music-deep-copy ,stop))))))
+
+(defmacro-public def-music-function (args signature . body)
+ "Helper macro for `ly:make-music-function'.
+Syntax:
+ (def-music-function (location arg1 arg2 ...) (arg1-type? arg2-type? ...)
+ ...function body...)
+"
+ `(ly:make-music-function (list ,@signature)
+ (lambda (,@args)
+ ,@body)))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; switch it on here, so parsing and init isn't checked (too slow!)
;;