;returns a pc-set based on a list of steps a beginning pitch class and a pc-set
(define pc:from-steps
(lambda (pitch steps pc)
(let loop ((slst steps)
(plst (list pitch)))
(if (null? slst)
(reverse plst)
(loop (cdr slst)
(cons (modulo (pc:relative (car plst) (car slst) pc) 7) plst))))))