May 4, 20188 yr a very simple, but useful little function... (defun gen-puls* (n tuplet period &key (stacc nil)) (gen-length (loop repeat n with period = (if (equal stacc t) (list 1 (neg! (1- period))) period) collect period) tuplet)) ;;; option: stacc or ord (gen-puls* 10 1/32 13) => (13/32 13/32 13/32 13/32 13/32 13/32 13/32 13/32 13/32 13/32) (gen-puls* 10 1/32 13 :stacc t) => (1/32 -3/8 1/32 -3/8 1/32 -3/8 1/32 -3/8 1/32 -3/8 1/32 -3/8 1/32 -3/8 1/32 -3/8 1/32 -3/8 1/32 -3/8) (gen-puls* 10 1/28 9) => (9/28 9/28 9/28 9/28 9/28 9/28 9/28 9/28 9/28 9/28) (gen-puls* 10 1/28 9 :stacc t) => (1/28 -3/14 1/28 -3/14 1/28 -3/14 1/28 -3/14 1/28 -3/14 1/28 -3/14 1/28 -3/14 1/28 -3/14 1/28 -3/14 1/28 -3/14) (gen-puls* 10 1/20 13 :stacc t) => (1/20 -3/5 1/20 -3/5 1/20 -3/5 1/20 -3/5 1/20 -3/5 1/20 -3/5 1/20 -3/5 1/20 -3/5 1/20 -3/5 1/20 -3/5)
Create an account or sign in to comment