ok. i’m just saying that it’s trivial to change the recorder to add inputs and produce a quad file. (code change above.) splitting the resulting file is also pretty trivial, either in SC:
4.do(|i| Buffer.readChannel(server, foo, i).write(...) })
or as sox commands
sox foo foo.in.l remix 0 && sox foo foo.in.r remix 1 && sox foo foo.out.l remix 2 && sox foo foo.out.r remix 3
and if anyone cares about sync, it’s already solved. (fwiw, i care about it and so does the OP - recording live instrument input with live synth/proc output is a great use case.)
it also doesn’t affect playback within norns because everywhere we do playback, we explicitly ask for channels we want.
so that’s just how i’d implement it with minimal code and without adding extra synth nodes and streaming buffers. regardless of the user-facing output.
obvs this is just my thought, NBD, and any solution anyone wants to implement is totally fine.