Is there a way to reduce all of the note lengths equally, without editing each one individually in this snippet? I suppose I could change the audition tempo to make it play faster, but I would really like to reduce the note lengths programmatically, if that's possible.
(rnd-sample-seq 4 '( (h. b4 tie) (q b4 h a4 tie) (q a4 e b4 a4 q g4 tie) (h g4 e fs4 e4) (h fs4 -q) (-q h g4 tie) (q g4 e fs4 g4 q a4 tie) (h a4 e c5 b4) (h_e c5 e b4) (e c5 a4 h b4 tie) (q. b4 -e q g4 tie) (h. g4) (h. fs4) (e g4 a4 h b4 tie) (e b4 a4 b4 g4 q a4 tie) (h a4 q a4) (h. g4) (q g4 h fs4 tie) (q fs4 b4 e e4 fs4) (h. g4) (h. fs4 tie) (q fs4 h b4 tie) (h b4 q a4 tie) (h a4 e b4 a4) (h. g4) (e fs4 e4 h fs4) (-h q g4 tie) (h g4 e fs4 g4) (h. a4) (e c5 b4 h c5 tie) (e c5 b4 c5 a4 q b4 tie) (he b4 -e) (h. g4 tie) ))
I am finding that if I have a score with two notes repeated the second note does not play when sending to my DAW. I am pretty sure this is because the notes are literally the length of the notation i.e a crotchet is exactly 480 ticks (or whatever it is in ticks) which causes the second note, not being a different pitch, to not play. Is there a way round this?
works, but only for one-time-repetiton... could you use it?
(defun merge-lengths-of-a-pitch-rep (omn-seq) (let* ((omn-seq (single-events omn-seq)) (l)) (flatten (loop repeat (length omn-seq) for cnt = 0 then (incf cnt) when (equal (omn :pitch (nth cnt omn-seq)) (omn :pitch (nth (1+ cnt) omn-seq))) do (progn (setf l (length-note-merge (append (omn :length (nth cnt omn-seq)) (omn :length (nth (1+ cnt) omn-seq))))) (incf cnt)) and collect (omn-replace :length l (nth cnt omn-seq)) else collect (nth cnt omn-seq))))) (merge-lengths-of-a-pitch-rep '(e c4 mf d4 d4 e4 f4 f4)) => (e c4 mf q d4 mf e e4 mf q f4 mf)