Hello, newbie question:
I'd like to take an omn list and simply repeat each measure 3 times. If I start with the following code:
(setf r-transitions1
'((e (e 1)(-e 3))
(-e (e 3)(-e 1))))
(setf marked
(gen-markov-from-transitions r-transitions1 :size 120))
;;conform to timesignature in omn format
(setf r1 (length-span (gen-repeat 20 '8/8) marked :omn t))
;;define the time signatures
(setf timesigs (get-time-signature r1))
;;stream of pitches
(setf pitches '(c4 eb4 f4 g4 bb4 c5 eb5))
(setf pitches (chord-interval-add '(12) pitches))
;;by spanning r1 onto pitches, pitches will repeat as needed
(setf pitches (span r1 pitches))
(setf rh (make-omn
:length r1
:pitch pitches))
and then try something like:
(setf rrh (gen-repeat 3 rh))
;or
(setf rrh (gen-repeat '(3) rh))
neither gives me what I'm looking for.
However, I notice that if I evaluate
(setf rrh (gen-repeat 3 (list (first rh))))
then I get the correct result for the first measure.
Therefore, doing something like this gets me what I was looking for:
(setf rrh (gen-divide 8 (flatten
(mapcar #'(lambda (n) (gen-repeat 3 (list n))) rh))))
But surely there's a better/simpler way to repeat bars in omn format.
If anyone has insights, I'd be most appreciative.
thanks, Michael