Tutorial : How to record FoxDot multi outputs in a DAW.

When we started recording our album REISUB, we thought it might be a good idea to be able to record each FoxDot player on a separate track. 

This tutorial will show you how to do this with our hardware and software configuration, hoping that it can be useful to you. It should work on other configurations and other OS but here is the one we use:

  • Linux Ubuntu Studio 20.04 
  • Python 3.8
  • SuperCollider 3.11
  • Carla 2.1 (for JACK routing)
  • Ardour 6.3
  • Beh­ringer UMC404HD soundcard (but it should work with any soundcard) 

In the following examples, we will record 3 stereo tracks (drums, bass, synth) and the master track which is FoxDot’s default output track.

So we will : configure SuperCollider for the multichannel, add an Output FX in FoxDot, route the SC output to a DAW, play & record the 4 stereo tracks.

>> Configure SuperCollider for the multichannels

By default, FoxDot outputs are set to 2, that mean you can only record one stereo bus (Ouput 0, Output 1).  In order to record 4 stereo tracks we need to change the max output of the FoxDot Quark to 8.

 

In SuperCollider go to :

  • Language / Quarks
  • Select the FoxDot Quarks and click Show classes
  • Select FoxDot and Open File
  • Close all windows and look at the FoxDot.sc open in the SuperCollider window (image 1).

Or you can simply open in SuperCollider : .local/share/SuperCollider/downloaded-quarks/FoxDot/FoxDot.sc

Look for server.options.numOutputBusChannels = 2 and change it to 8

Supercollider Foxdot quark mod
Image 1 : FoxDot Quark
supercollider 8 outputs carla
Image 2: SuperCollider with 8 outputs in Carla

Reboot Supercollider and now you should see SuperCollider with multi outputs in JACK or Carla (image 2).

>> add an output fx in foxdot

To be able to assign an output to a player, we will add an fx in foxdot. If you don’t know how or if you are lost you can read our previous tutorial on FoxDot customization.

The easiest way is to edit /FoxDot/lib/Effects/Util.py and add this code before the last 2 lines.

fx = FxList.new('output','output', {'output': 0}, order=2)
fx.doc("Output select Bus")
fx.add("Out.ar(output, osc)")
fx.save()

This output Fx should ALWAYS be the last FX you add in this file.

Save and restart FoxDot and if it works, at the startup FoxDot create this file FoxDot/osc/sceffects/output.scd

>> route the SuperCollider output to a DAW

Open your favorite DAW, in our case Ardour, and add 4 stereo tracks (image 3) named :

  • “FoxDot Master”
  • “Drum”
  • “Bass”
  • “Synth”
Ardour 4 tracks
Image 3: 4 tracks in Ardour
carla supercollider routing
Image 4: Route SuperCollider to Ardour with Carla

In Carla (or with JACK), connect the SuperCollider outputs to the correct Ardour inputs (image 4).

  • Output 0/1 -> FoxDot Master
  • Output 2/3 -> Drums
  • Output 4/5 -> Bass
  • Output 6/7 -> Synth

>> play & record the 4 stereo tracks

In FoxDot write the best code you can and don’t forget to add the output fx in each player you want to record :

d1 >> play("x-o-", output=2)
b1 >> dbass(dur=1/2, output=4)
s1 >> pluck(dur=1.5, output=6)

Remember, output(0,1) is by default for the FoxDot output so you need to start with output(2).
As these are stereo tracks, the next available output is output(4).

 

In Ardour, arm all tracks and press the record button. If it works you should have the 4 tracks recorded separately (image 5).

 

ardour recording foxdot
Image 5: record Foxdot in Ardour

Maybe in the future, we will add more informations about other DAW (Reaper, ableton,…) and other OS (Win, Mac)

We hope this tutorial can help you, if you have any questions you can use the contact form or find us on TOPLAP Chat, TOPLAP Forum or Telegram FoxDot community.