Hi. Thanks for the bug report! Turns out this was a buggy method for prepare-to-play.
I’ve updated the sources, but until the next release, here’s an updated method to put into a file in your patches folder:
(defmethod PrepareToPlay ((player (eql :midi)) (self note) at &key approx port interval voice) (when (not (memq (tie self) '(continue end))) (setf port (or port (port self))) (setf approx (or approx 2)) (let ((chan (+ (chan self) (micro-channel (approx-m (midic self) approx) approx))) (pitch (truncate (approx-scale (get-current-scale approx) (midic self)) 100)) (vel (vel self)) (dur (- (real-dur self) 2)) (date at) (voice (or voice 0))) (let ((newinterval (and interval (interval-intersec interval (list at (+ at (- (real-dur self) 1))))))) (when (or (null interval) newinterval) (note-events port chan pitch vel (if interval (- (second newinterval) (first newinterval) 1) dur) (if interval (- (first newinterval) (first interval)) date) voice))))))