I think something like this should work: (defun text-msg (time text) (multiple-value-bind (m d) (make-text-event text) (new midimsg :time time :msg m :data d))) (new seq :name 'comments :subobjects (loop for comm in '("x" "y" "z") for time from 0 collect (text-msg time comm)))