Jump to content

LeopoldMozart

Members
  • Posts

    6
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Thanks! If there's too many parentheses, I'm not sure why adding yet another two will help, but hey, it works! Opusmodus/Lisp is super weird.
  2. Hi folks, I'm working with the new dictum and am having trouble evaluating the results of my work. See snippet: ;=====BIRDCALLS===== (setf bird1 '(3q d5 leg gs4 d5 leg gs4 d5 leg gs4)) (setf bird2 '(q a3 e. b3 x c5 leg e.. bb4)) (setf bird3 '(e fs4 leg c5 q bb4 3q fs4 stacc c5 bb4)) (setf rest1 '(-e)) (setf rest2 '(-q.)) (setf rest3 '(-e.)) ;=====OMN MAKER=====> dictum doesn't evaluate (setf loop1 (gen-loop 7 (list (rnd-pick (list bird1 bird2 bird3)) (rnd-pick (list rest1 rest2 rest3)) (rnd-pick (list rest1 rest2 rest3))))) (dictum '(:if e :do q) loop1) ;this returns errors ;=====DICTUM EXAMPLE==== works as intended (setf omn '(e g4 f leg gs4 fs4 mf leg a4 s f4 p bb4 e4 b4 eb4 c5 d4 cs5)) (dictum '(:if e :do q) omn) My dictum I'm applying to loop1 looks identical to the example given in the assistant, but, unlike the example, I only get errors returned if I try to evaluate the dictum for loop1. I'm guessing it's because I'm evaluating a variable which itself is a nest of rnd-picks from lists. How should I test a dictum based on loop1?
  3. Interesting. Yep, that works, too. Thanks! Any reason why I wouldn't want to go with the ` followed by commas solution? I'm wondering if that will may break stuff later on.
  4. Thanks to ChatGPT (which doesn't know enough about Opusmodus to be of much help, but has enough understanding of Common Lisp to be useful), I have a partial solution: (setf flute-omn (gen-loop 7 (rnd-pick`(,bird1 ,bird2 ,bird3 ,rest1 ,rest2 ,rest3)))) It's a simple syntax problem. I needed to use the backquote (`) along with the comma (,) operator for list splicing. This still isn't doing what I want, per se, but I can figure out the rest from here.
  5. Hi folks, Apologies if I missed the "I'm completely new to this oh god help" forum. I'm struggling to get a easy idea to work properly. In the following snippet, I'm struggling to get the first gen-loop to function: ;=====BIRDCALLS===== (setf bird1 '(3q d5 leg gs4 d5 leg gs4 d5 leg gs4)) (setf bird2 '(q a3 e. b3 x c5 leg e.. bb4)) (setf bird3 '(e fs4 leg c5 q bb4 3q fs4 stacc c5 bb4)) (setf rest1 '(-q.)) (setf rest2 '(-h)) (setf rest3 '(-w)) ;=====OMN MAKER===== (gen-loop 4 (rnd-pick '((bird1 bird2 bird3) (rest1 rest2 rest3)))) (gen-loop 4 (rnd-pick '((a4 b4 c4) (-q -h -e.)))) ;testing purposes - this kind of works What I'm looking for is a random pick of one of the three birdcalls, following by a pick of the three rests. I've already noticed that rnd-pick isn't the way to go for that, because I want one set followed by the other, which isn't what rnd-pick is for. But evaluating the first gen-loop only returns errors. I made the second gen-loop for testing purposes, and evaluating that at least returns usable data. So: 1) Can gen-loop and rnd-pick handle variables with more that one type inside (length AND pitch AND articulattion, etc.), and, if so, 2) is there a tidier way to do what I'm after, picking between one set and another a given number of times. Cheers!
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy