Jump to content
Sign in to follow this  
AM

gen-puls*

Recommended Posts

Posted (edited)

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)


 

Edited by AM
edited function

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×