Is there an OpusModus function (I'll bet there is) that can create lists (chords, etc) created from items selected from lists of varying lengths? Something like this:
Source lists (3 lists): ( '(c4 d4 e4) '(f4 g4 a4 b4) '(cs4 ds4 fs4 gs4 as4) )
Output, successive items from each list: (list '(c4 f4 cs4) '(d4 g4 ds4) '(e4 a4 fs4) '(c4 b4 gs4) '(d4 f4 as4) '(e4 g4 cs4) ...)
I'm having a great time learning LISP and OM (I come from Python/Java background mostly). I looked through the gen- functions, but nothing seemed to match. I was going to try to write a LISP function, but I figure there was already something in OM, as it seems geared towards these types of transformations.
In the following code the mf of the first bar won't show up.
Any other dynamic symbol in the first bar will work as expected.
Are you able to reproduce this on your system?
All the best,
(setf omn (make-omn :length '((1/8 1/8) (1/2 1/2) (1 1)) :pitch '((g4) (d5) (f5)) :velocity '((mf) (f) (mf)) ) ) => ((e g4 g4) (h d5 f d5) (w f5 mf f5)) ; no dynamic symb in first bar! (setf omn (make-omn :length '((1/8 1/8) (1/2 1/2) (1 1)) :pitch '((g4) (d5) (f5)) :velocity '((pp) (f) (mf)) ) ) => ((e g4 pp g4) (h d5 f d5) (w f5 mf f5)) ; now the dynamic symb shows up in the first bar!