float-vector->channel will write a float-vector's contents to a Snd channel. For element-at-a-time access, use float-vector-ref which can be implicit: (do ((i 0 (+ i 1))) ((= i 22050)) (outa i (vect i))) where (vect i) is shorthand for (float-vector-ref vect i). If you want a generator, perhaps use make-iterator and iterate.