;
;
; 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.))))