:mkchord   macro


Defined in:  https://github.com/lambdamusic/extempore-extensions/blob/main/init/init_makers.xtm

Implementation

;
;
; mkchord
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; wrapper around pc:make-chord-fixed
;
; Args:
; root 
; chord-sym [default: '^]
; notes_number [default: 3]
;
; Example:
; (println (mkchord 60 '- 8))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-macro (:mkchord . args)
  ;;(println args)
   (cond ((length-equal? args 1) ;; just root 
         `(pc:make-chord-fixed ,(car args) 3 (pc:chord ,(car args) '^)))
         ((length-equal? args 2) ; root and chord-sym
         `(pc:make-chord-fixed ,(car args) 3 (pc:chord ,(car args) ,(cadr args))))
         ((length-equal? args 3) ;; also notes_number
         `(pc:make-chord-fixed ,(car args) ,(caddr args) (pc:chord ,(car args) ,(cadr args))))         
         (else (print 'Error: 'arguments 'could 'not 'be 'resolved.))))


Back to Index

Similar Entries