Jump to content

Featured Replies

Posted

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

 

 

 

 

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)

 

  • Author

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.

(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 = = = = = = = = = = = = = = =)

 

  • Author

wow, thanks!

 

that is some programming, I don't understand the function but it does what I need, thank you, very much!

 

 

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.

Create an account or sign in to comment


Copyright © 2014-2025 Opusmodus™ Ltd. All rights reserved.
Product features, specifications, system requirements and availability are subject to change without notice.
Opusmodus, the Opusmodus logo, and other Opusmodus trademarks are either registered trademarks or trademarks of Opusmodus Ltd.
All other trademarks contained herein are the property of their respective owners.

Powered by Invision Community

Important Information

Terms of Use Privacy Policy