When you call
(outa i (* 0.5 (oscil gen)))
(outb i (* 0.5 (oscil gen)))
you're calling the "gen" oscillator twice
so you get one sample in outa, then its next sample
in outb, etc -- from the channel's point of view
it's seeing an oscillator running twice as fast
(880 Hz).