;; type is '- or '^
(define fixed-chord
(lambda (fixed num key type degree . args)
(set! *key* key)
(if (equal? type '-)
(set! *scale* (pc:scale *key* 'aeolian))
(set! *scale* (pc:scale *key* 'ionian)))
(set! *chord* (pc:diatonic *key* type degree))
(set! *root* (car *chord*))
(let ((crd (pc:make-chord-fixed fixed num *chord*)))
(if (null? args)
crd
(if (list? (car args))
(make-list-with-indexes crd (car args))
crd)))))