Jump to content

Get-Time-Signature to Length-Span


Recommended Posts

Dear All, 

 

One interesting conversion would be the one for transforming the get-time-signature result to

length-span time signature format. This would be useful to rephrase rhythmically one rhythm with another´s rhythm time-signature structure.

For example:

 

; Take this rhythm


(setf ritmos (gen-repeat 4 (gen-length '((1 2 1 2 1 1) (1 1 1 1 1 2 1) (1 -3 1 -3 2 -2 4) (-3 1 -1 1 1 1)) '(16))))

 

Here is the bar structure for this

 

(get-time-signature ritmos)

 

This is the output

 

((2 4 2) (4 4 1) (2 4 3) (4 4 1) (2 4 3) (4 4 1) (2 4 3) (4 4 1) (2 4 1))

 

If I want to use this result as a time signature template in the length-span I have to convert it to

 

(2/4 2/4 1 2/4 2/4 2/4 1 2/4 2/4 2/4 1 2/4 2/4 2/4 1 2/4)

 

in order to use the time-signature order it in the length-span function

 

Is there some function that performs this ?

 

Best !

 

Julio 

I did this extravagant coding , but I need it with the slashes ( " / " ) and the repetitions, like converting (2 4 3) into (2/4 2/4 2/4)...

 

(setf timesig-to-length-span 
(flatten
(matrix-transpose 
(list 
(lake-everyother 
(get-count (get-count (get-time-signature ritmos))) ; how many
0 3  (flatten (get-time-signature ritmos)))
(lake-everyother 
(get-count (get-count (get-time-signature ritmos))) ; how many
1 3  (flatten (get-time-signature ritmos)))
)
))
)

 

;;(2 4 4 4 2 4)

I love lake-everyother

Link to comment
Share on other sites

Hi Julio.

Maybe something like this will work.

 

Jesper

 

(setf tst '((2 4 2) (4 4 1) (2 4 3) (4 4 1) (2 4 3) (4 4 1) (2 4 3) (4 4 1) (2 4 1)))

(defun foo (lst)
  (flatten (loop for x in lst collect (make-list (caddr x) :initial-element (/ (car x) (cadr x)))))
  )

(foo tst)

 

->(1/2 1/2 1 1/2 1/2 1/2 1 1/2 1/2 1/2 1 1/2 1/2 1/2 1 1/2)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy