here is a little "sketched" function STEP-TO-PITCH , perhaps OM could further develop the function...
;;; FUNCTION
(defun step-to-pitch (&key steps pitches start)
(let ((pos (car (position-item start pitches))))
(append (list (nth pos pitches))
(loop for i in steps
;; setting pos by add the step to pos
do (setf pos (+ pos i))
;; when pitch-range to small then reset to lowest pitch+step
;; could be a more in
here is a little "sketched" function STEP-TO-PITCH , perhaps OM could further develop the function...
;;; FUNCTION
(defun step-to-pitch (&key steps pitches start)
(let ((pos (car (position-item start pitches))))
(append (list (nth pos pitches))
(loop for i in steps
;; setting pos by add the step to pos
do (setf pos (+ pos i))
;; when pitch-range to small then reset to lowest pitch+step
;; could be a more in