Offloading Plug-Ins Processing Onto Another Computer

Sometimes you wish you could offload CPU usage to another computer by processing CPU-heavy plug-ins outside of your DAW, don’t you? Or you may simply want to use plug-ins that are not available on your platform (Windows plug-ins on Mac or vice versa, etc…).

This tutorial shows you how to do this with Blue Cat’s PatchWork and Connector, setting up a “DSP server” (a.k.a “audio plug-ins farm”) that will process the plug-ins on another computer. It is very similar to the way you use an external hardware insert inside a DAW, except that it’s all software and does not require any extra cable.

Let’s say we are working with Logic Pro X on a Mac, and want to process a Drums track with some plug-ins on a Windows PC, as if they were regular inserts in Logic. Both the client (Mac) and server (PC) are connected to the same Local Area Network using a gigabit Ethernet connection:

Client Setup

On the “Client side” (the machine with your DAW, Logic in our example), insert an instance of Blue Cat’s Connector on the Drums track that we want to process:

It should be setup to both send (to server) and receive (from server) audio, with a friendly  nickname (“Logic Drums” here):

In the send box, choose “Network”,  and set the IP address of the server machine where plug-ins will be processed. Let’s choose port 8080.

in the receive box, choose “Network” too, and select port 8081. We’ll use this later to have the audio sent back into the DAW:

Do not forget to set the “Thru Level” to 0% so that the dry signal is not mixed with the process signal.

Server Setup

[March 2022 Update: PatchWork 2.52 and Axiom 1.62 can now be used directly as network servers for Connector, bypassing the need for an audio interface on the server: just select the “network audio” driver type and “Connector Slave” driver in the audio settings:

Connector Slave Driver Settings

You can setup the connection directly there, and since there is no audio interface to work with, the server should work perfectly in sync with the client – if using the exact same buffer size in both. You do not need any instance of Connector on the server anymore, since it is now built into the virtual network driver. We are keeping the tutorial here though, if you want to use another app as a server].

[May 2022 Update: a free Windows ASIO driver is now available to use third party applications the same way – it is however currently limited to audio (no MIDI)]

On the “server” (Windows PC) side, launch the Blue Cat’s PatchWork application. Insert Connector in the first and last slots:

The instance in first slot should be set as a receiver. It will listen on port 8080 (as setup in the client sender) and receive the audio signal from the Logic track.

The other instance in the last slot should be configured as a sender, to send back the signal to the DAW, with the IP address and port of the “client”:

We will now be able to insert plug-ins in between these two connection endpoints, to process the drums signal. For this example we’ll add some reverb, and EQ and parallel compression, with two parallel chains:

If you start playback in Logic now, you will probably hear some weird sounds, and the drop out meter of one or more receivers will turn to red quickly.

Just raise the failing receiver(s) buffer value until drop outs stop, and here you go, we processing our Drums track thru the plug-ins via the network, as if it were an external hardware insert:

While the Windows server is doing the work inside PatchWork:

Buffering

In our case, we ended up just increasing the buffer size to 512 samples on the server receiver only, keeping “auto”(=host buffer size) in the Logic receiver.

You can achieve pretty low latencies if both the client and server have the same buffer size (or if they are simple multiple). In this example both were set to 128 samples at 44100 Hz:

Logic (Client) Audio Setup

 

PatchWork (Server) Audio Setup

 

If you are using different sample rates on the client and server side, or very different buffer sizes, you may have to increase the latency quite a bit.

Drift?

It may happen that after some time, the client and server loose sync. In our case it did not happen because both sound cards were synchronized, sharing the same master clock.

When both machines are entirely independent and you get occasional dropouts, check the drift meter: If the value gets large, you should enable drift compensation.

Beware that temperature may affect the speed of the clocks, so even if both machine may look in sync at first, drift may happen anytime when the audio interfaces are starting to get hot!

More Tracks And Plug-Ins

Of course you can process several tracks (or busses) with a single PatchWork server. For example using a parallel chain for each track, and inserting PatchWork as a plug-in into itself to do the processing:

In this case, make sure that multicore processing is on, so that each chain is processed on a separate CPU core (if available).

You can also imagine using several apps on several machines, or receive/send audio or MIDI data from/to different DAWs etc… Connector lets you connect them all!

Have fun!

>discuss this topic in the forum

2 thoughts on “Offloading Plug-Ins Processing Onto Another Computer

Leave a Reply

Your email address will not be published.