make-instrument   macro


Defined in:  https://github.com/digego/extempore/tree/v0.8.9/libs/core/instruments-scm.xtm

Implementation

(define-macro (make-instrument defname synthname . args)
  (let* ((note (append (string->sexpr (string-append "(" (symbol->string synthname) "_note)")) args))
         (fx (string->sexpr (string-append "(" (symbol->string synthname) "_fx)"))))
    `(begin
       (eval (bind-val ,defname INSTRUMENT (make_instrument ,note ,fx))
             (interaction-environment))
       (eval (define ,defname (call-as-xtlang-leaky ,defname))
             (interaction-environment))
       (print-with-colors 'default 'default #f (print 'New 'instrument 'bound 'as ""))
       (print-with-colors 'green 'default #t (print ',defname ""))
       (print-with-colors 'default 'default #f (println 'in 'both 'scheme 'and 'xtlang))
       #t)))


Back to Index