Jump to content

Recommended Posts

Hi J, (or anybody else who knows?)

 

I am trying to find what function generates a written out accelerando... in other words something like this starting in whole notes and down to thirty seconds:

 

w h h e e e e s s s s s s s s t t t t t t t t t t t t t t t t 

 

or involving tuplets also, or better still, starting from a given rhythmic value (lengths in opmo?) a geometric progression of lengths.

 

In Supercollider, we use Pgeom and give it a start and end and a multiplier and this allows fro some great accell, stutter effects.

 

What would be the equivalent here?

 

Thanks!

Julio

 

 

 

 

Link to post
Share on other sites

All this you do in the tempo section (DEF-SCORE).

 

;; Tempo
(setf tempo-events
      '(("Sehr mäßig" e. 40 16) (:rit 40 26 1/64 2) (40 1)
        (:rit 40 26 1/64 3) (40 1) (:rit 40 26 1/64 1) (40 1)
        (:rit 40 26 1/64 1) (40 1) (:rit 40 26 1/64 1)
        (40 1) (:rit 40 26 1/64 1) (40 1) (:rit 40 26 1/64 1)
        (40 1) (:rit 40 26 1/64 1) (40 5) (:rit 40 24 1/64 5)
        (40 11) (:rit 40 26 1/64 2) (40 3) (:rit 40 26 1/64 2)
        (40 1) (:rit 40 20 1/64 3)))

 

Doing this directly with length values we would get values which are not possible to notate.

 

Maybe the GEN-ACCUMULATE function can do what you are looking for:

(gen-accumulate '(1/32) :count 12)
=> (1/32 1/16 3/32 1/8 5/32 3/16 7/32 1/4 9/32 5/16 11/32 3/8)

 

Link to post
Share on other sites

Thank you, yes, I understand this software is very notation oriented, perhaps I am asking too much... I have recently seen it done on symbolic composer so I wondered if it was possible here, I can't remember the specific function, but it was not a tempo change.

 

thanks again.

Link to post
Share on other sites
(defun gen-length-div (length values &key omn)
  (prog (elem out)
    (setf length (omn-encode length))
    loop
    (cond ((null values) (return (maybe-omn-decode omn (nreverse out)))))
    (setf elem (gen-repeat (car values) (/ length (car values))))
    (setf out (cons elem out))
    (setf values (cdr values))
    (go loop)))


(gen-length-div 'w '(1 2 4 8 16) :omn t)
=> ((w) (h =) (q = = =) (e = = = = = = =) (s = = = = = = = = = = = = = = =))

(gen-length-div 'w '(2 3 4 5 8) :omn t)
=> ((h =) (3w = =) (q = = =) (5w = = = =) (e = = = = = = =))

 

Other possibility:

(ql '(1 w 2 h 4 q 8 e 16 s))
=> (w h = q = = = e = = = = = = = s = = = = = = = = = = = = = = =)

 

Link to post
Share on other sites

Hi,

 

it was also possible without programing with gen-tuplet function:

 

(gen-tuplet 1 1 'm 'n 'w '(1 2 3 4 5 6 7 8 9 10 11 12))

=> ((1) (1/2 1/2) (1/3 1/3 1/3) (1/4 1/4 1/4 1/4) (1/5 1/5 1/5 1/5 1/5) (1/6 1/6 1/6 1/6 1/6 1/6) (1/7 1/7 1/7 1/7 1/7 1/7 1/7) (1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8) (1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9) (1/10 1/10 1/10 1/10 1/10 1/10 1/10 1/10 1/10 1/10) (1/11 1/11 1/11 1/11 1/11 1/11 1/11 1/11 1/11 1/11 1/11) (1/12 1/12 1/12 1/12 1/12 1/12 1/12 1/12 1/12 1/12 1/12 1/12))

SB.

Link to post
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