I search for strategies to incorporate recording sound output in a current project of mine.
What i want to solve is:
i have a live performance environment for improvisation
i have multiple synths
every synth should render into a seperate .wav file which should be collected in a dir
I was already thinking of sending every output to a virtual soundcard channel like BlackHole and collect these in a DAW for recording. But maybe someone has a convenient solution for this in SC?
If you “take apart” the recording process, then you can run multiple perfectly synced recorders at once.
Create one buffer (power-of-two size) for each bus to record (be sure to match numChannels).
s.sync
For each buffer, do a .write(path, headerFormat, sampleFormat, numFrames: 0, leaveOpen: true) to tell it where to put the file.
s.sync
Then do a makeBundle where you create one 'system_diskout_2' (replace “2” with the actual number of channels for this bus) synth for each bus/buffer.
makeBundle ensures that all the synths start at exactly the same moment, so all the files will be sample-synced.
I’m in a rush, no time to write up a code example, but at least I wanted to point to the technical approach. Perhaps give that a try.
BTW if your separate signals are already living on separate buses, you shouldn’t need a second Out. The system_diskout_* synths can read from the buses where the signals are already hosted.