Jump to content


  • Posts

  • Joined

  • Last visited

Contact Methods

Profile Information

  • Gender
  • Location
  • Interests
    DAWs, Plugins, Guitars. Programming. Improvising. Listening to all kinds of music

Recent Profile Visitors

2,618 profile views
  1. I had another look at it. Yes , it is a trick . But not what born wanted: "brownian motion to be reflected within a lower and an upper (maybe even changing) limit" Vector-round and vector-to-envelope2 almost ignore :amp and :output of gen-brownian-motion. They just squeeze and move the result. I understand that born wanted that when a walk goes upward to a limit it returns at the limit but keeps the :amp and :output. So you have a :amp 4 and you reach 5.0 you don't move above 5.0 but return. vector-to-envelope2 doesn't do that. But squeezes the :amps after the walk. So I think there is a difference to a tendency mask . @born: Are the solutions offered good enough or not really addressing what you wanted.
  2. How would a tendency mask be different to this? (progn (setf bw (gen-brownian-motion 128 :seed 425)) (setf env1 '(-5.1 -2.3 1.5 -0.8 4.6 10.6)) (setf env2 '(1.0 1.2 -1.1 2.1 -0.3 -2.5)) (list-plot (vector-to-envelope2 env1 env2 bw)) )
  3. There is a merge-voices function. (setf r1 '(q e e 3q 3q 3q -e. s)) (setf r2 '(e e e. s -e e s -s s -s)) (setf r3 (merge-voices r1 r2)) => '(z^q c4 e e z^e e^e. s^e s 3q 3e^3q 3e^e 3q s - c4 c4) (omn :length r3) The output looks different from what you expect. The z^ is not really documented in the omn-language-description but has to do with the :duration in make-omn. You see it in the merge-voices doc. Merge-voices is for omn-lists. It will add a c4 as default if only length are in the list. With: (omn :length r3) you get this: (0 1/8 1/8 0 1/8 1/16 1/16 1/12 1/24 1/24 1/12 1/16 -1/16 1/16 1/16) What the 0 means I don't know.
  4. I can't find iterate in Opusmodus-V3. Where did the library go?
  5. Yes, very good. gave me a lot of ideas I will look into.
  6. You find it under Mathematics. There are a lot of useful functions. For some reason they are listed under a-m-x, a-d-x, but in the document you see a*x.
  7. And another way: (defun chordintervals (chord &key ( named nil)) (let* ((midimelo (pitch-to-midi (pitch-melodize chord))) (chordroot (first midimelo)) (numbers (x-b midimelo chordroot)) (names (cons 'base-note (rest (get-interval-name numbers))))) (if (equal named t) names numbers) )) (chordintervals '(c4d4e4g4c5)) =>(0 2 4 7 12) (chordintervals '(c4d4e4g4c5) :named t ) =>(base-note major-second major-third perfect-fifth perfect-octave) (chordintervals '(c4 d4 e4 g4 c5)) =>(0 2 4 7 12) (chordintervals '(c4 d4 e4 g4 c5) :named t) =>(base-note major-second major-third perfect-fifth perfect-octave) I hope I understood the original post correct.
  8. Is that LISPier? Does the same as last post. (defun chordintervals (chord) (let* ((midimelo (pitch-to-midi (pitch-melodize chord))) (chordroot (first midimelo))) (x-b midimelo chordroot))) (chordintervals '(c4d4e4g4c5)) (chordintervals '(c4 d4 e4 g4 c5)) both return => (0 2 4 7 12)
  9. Would this be okay, too? For getting the intervals of notes related to the first note. (defun chordintervals (chord) (x-b (pitch-to-midi (pitch-melodize chord)) (pitch-to-midi (first (pitch-melodize chord)))) ) melodize instead of pitch-melodize works too, but is not listed under functions.
  10. (pitch-to-interval '(c4d4e4f6))
  11. (scale-numbers 100 '(4 3 6 1 2 5))
  12. This gives the same result: (gen-integer 100 900 100) but just for your collect function. Check the function description
  13. (get-count '((c4 d4 e4) (f4 g4) (a4) (b4 c5)) ) would be the same as the mapcar or mclength . With :length option of get-count you can specify if you only want to count notes or rests. In this case :length :note would give the same result. There are good examples in the docs of get-count. You used it in your pedal related post: (setf counts-notes (get-count (omn :pitch mat))). (get-count '((c4 d4 e4) (f4 g4) (a4) (b4 c5)) ) (mapcar 'length '((c4 d4 e4) (f4 g4) (a4) (b4 c5))). ;That is basic from a LISP-view without knowing opusmodus. (mclength '((c4 d4 e4) (f4 g4) (a4) (b4 c5))) all return => (3 2 1 2) Have a nice Sunday Rolf
  14. I just learned from your post on another topic that there is a opusmodus-function "get-count". mapcar and loop works, but "get-count" is much more flexible for opusmodus. So as I learned from you, that is actually the right answer to the topic-question: get-count . Just want to mention it so when someone sees the topic will get the right answer and not my previous half answer. (and there is also mclength to be found under opusmodus functions)
  15. Thanks. I am getting old. Have seen it before and forgotten. Anyway. Maybe a short mention - one sentence - in the counterpoint document before it is applied to help the newcomers and the ones that forget. A search for 1~ or ~ doesn't find the doc. Wouldn't guess to search or 1~100 .
  • Create New...

Important Information

Terms of Use Privacy Policy