julio d'escrivan Posted April 10, 2016 Share Posted April 10, 2016 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 Quote Link to comment Share on other sites More sharing options...
opmo Posted April 10, 2016 Share Posted April 10, 2016 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) Quote Link to comment Share on other sites More sharing options...
julio d'escrivan Posted April 11, 2016 Author Share Posted April 11, 2016 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. Quote Link to comment Share on other sites More sharing options...
opmo Posted April 11, 2016 Share Posted April 11, 2016 (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 = = = = = = = = = = = = = = =) Quote Link to comment Share on other sites More sharing options...
julio d'escrivan Posted April 11, 2016 Author Share Posted April 11, 2016 wow, thanks! that is some programming, I don't understand the function but it does what I need, thank you, very much! Quote Link to comment Share on other sites More sharing options...
Stephane Boussuge Posted April 12, 2016 Share Posted April 12, 2016 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.