Rangarajan Posted April 18, 2016 Posted April 18, 2016 I have a OMN. I want to replace one of the lengths with rest, randomly. Is there a function to do this? Suppose I have a list of lengths either in the form '(1/4 1/4 1/4 1/4) or '(q q q q), is it correct to replace one of the elements randomly with '- to mean rest? Regards, Rangarajan Quote
AM Posted April 18, 2016 Posted April 18, 2016 you could do it like this on "pure-LISP-level" (setf lengths '(1/4 2/8 3/8 4/4)) (loop for i in lengths with repl = (random (length lengths)) for cnt = 0 then (incf cnt) when (= cnt repl) collect (* i -1) else collect i) best wishes andré Quote
Rangarajan Posted April 18, 2016 Author Posted April 18, 2016 Andre, Nice code, Thank you. I am looking for a function that works on a OMN, not just a list of lengths. Also, lengths can be represented in the format '(q q e e q s) instead of the corresponding numeric fractions. In such cases, the loop will not work (you can't multiply 'q by -1). Regards, Rangarajan Quote
AM Posted April 18, 2016 Posted April 18, 2016 okay, i understand... i'm "not working" with '(q e q...), i'm always working with NUMBERS (with pitches too). it's easier to write/handle the values, easier to do my own specific code (and multipy, add... whatever) - only on "def-score" i'm changing the representation by generating OMN... regards, andré Quote
Stephane Boussuge Posted April 18, 2016 Posted April 18, 2016 hi, have a look to the LENGTH-WEIGHT documentation. SB. Quote
opmo Posted April 18, 2016 Posted April 18, 2016 The LENGTH-WEIGHT functions is a good solution. Quote
Rangarajan Posted April 18, 2016 Author Posted April 18, 2016 Thanks, Will check this function. -Rangarajan Quote
opmo Posted April 18, 2016 Posted April 18, 2016 The OMN decode and encode functions (not documented): (omn-encode '(s q e = = - -)) => (1/16 1/4 1/8 1/8 1/8 -1/8 -1/8) (omn-encode '(c4 = = =)) => (c4 c4 c4 c4) (omn-decode '(1/16 1/4 1/8 1/8 1/8 -1/8 -1/8)) => (s q e = = - -) What we need is a documentation of predicates etc... functions used in Opusmodus for developers and programmers. I hope we can add this part to our system with version 2.0 Quote
Rangarajan Posted April 19, 2016 Author Posted April 19, 2016 Thanks. Definitely useful. -Rangarajan Quote
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.