# erka

Members

65

• Website URL

## Profile Information

• Gender
Male
• Location
Munich/Bavaria/Germany
• Interests
DAWs, Plugins, Guitars. Programming. Improvising. Listening to all kinds of music

## Recent Profile Visitors

2,618 profile views

1. ## gen-brownian-motion inside lower and upper limit

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. ## gen-brownian-motion inside lower and upper limit

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. ## merge several rhythms into one

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. ## ITERATE build in 1.2.20405

I can't find iterate in Opusmodus-V3. Where did the library go?
5. ## Welcome to Opusmodus

Yes, very good. gave me a lot of ideas I will look into.
6. ## loop in list

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. ## all intervals in chord

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. ## all intervals in chord

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. ## all intervals in chord

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. ## all intervals in chord

(pitch-to-interval '(c4d4e4f6))
11. ## loop in list

(scale-numbers 100 '(4 3 6 1 2 5))
12. ## loop in list

This gives the same result: (gen-integer 100 900 100) but just for your collect function. Check the function description
13. ## Count Items In Sublists

(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. ## Count Items In Sublists

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. ## counterpoint : What is the 1~,2~ function ?

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 .
×

• Lessons