Strategies for Live Rendering of Sound

Hello everybody!

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?

Best,
PvN

1 Like

I knew i had seen something like this before, came across this How to Record Multichannel Output in SuperCollider but I think this will only record but maybe not output

I will try this out! i guess, via introducing a second Out.ar per Synth and split the routing between real output and recording a file should work.

1 Like

If you “take apart” the recording process, then you can run multiple perfectly synced recorders at once.

  1. Create one buffer (power-of-two size) for each bus to record (be sure to match numChannels).
  2. s.sync
  3. For each buffer, do a .write(path, headerFormat, sampleFormat, numFrames: 0, leaveOpen: true) to tell it where to put the file.
  4. s.sync
  5. 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.

hjh

1 Like