How To Offload 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, you will need to setup a different port number for each Connector instance. Also, 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

13 thoughts on “How To Offload Plug-Ins Processing Onto Another Computer

  1. Is there ever going to be a way two computers on two different networks can make use of this kind of technology? I have a friend that I really want to help by lending him my computer’s processing power while I’m not using it, since he has a very slow computer that can barely handle 1 plugin, but I can’t give it to him physically since he lives probably 4000-5000 miles away… but this plugin was mentioned to only work with an ethernet connection between two devices on the same network (adhoc I guess), so it won’t work in our case… Is it impossible for what I’m asking for to exist?

  2. Hey there! I’m trying to get this to work, but it’s quite tricky. Hoping to have 10 busses streaming over an ethernet work 🙂 I can’t seem to get connector do to latency compensation, is there a way?

    1. Connector cannot do latency compensation because the latency may depend on too many factors (the buffer sizes and network latency).

  3. My main PC’s been struggling during mixdown’s so I’ve been using Connector and Patchwork to offload plugin’s processing to a second PC.

    My problem is I have to create an instance of Patchwork for every Bus that I offload. Right now I have 3 instance’s running which is kinda messy.

    How do I run the 3 busse’s from my daw on a single instance of Patchwork? I’ve tried that parrallel configuration that you have above but doesn’t seem to work .

    Could you explain in more detail the setup of multiple parallel instances of : Connector(RCV) > Patchwork > Connector(SND) becouse the host Patchwork already has a send and recieve port assigned to it.

    Thank you!

  4. Hey so a few things –

    1. I am testing Patchwork standalone using connector and network audio – DAW on test is Reason 12, and plugin right now is EL REY 2 via Acustica Audio.

    2. My return audio is flamming to the audio playing back in the DAW

    3. The THRU audio dial when turned up – that audio is out of sync with the returned audio
    Q: is it ever possible to use the THRU AND RECEIVE audio in this scenario?

    4. Patchwork reports right now – 2.9 ms at 128 buffer in Patchwork
    Q: Is that ms # based on plugins put into Patchwork or just network audio/buffer setting?

    5. DAW is set to Auto Compensation ON and DAW buffer is a normal 1024

    Big Question:
    Is Acustica really not reporting the delay correctly?? I find that hard to believe, the #1 plugins to be offloaded like this…

    Or what setting am I missing here?

    This seems like a logical obvious super easy scenario to setup… and most of it is or has been, but wasn’t expecting to then have to do a bunch of stuff manually to compensate? or not have that THRU and RECEIVE audio dial out of sync?

    thanks

    David

  5. Also –

    I get the above tutorial isn’t accurate if using NETWORK within 1 computer… but two follow on questions:

    1. Is my issue that I need to set my daw buffer and patchwork buffer to be EXACTLY THE SAME?

    2. Is this no longer a thing or setting to set in recent Patchwork/connectors?
    “In this case, make sure that multicore processing is on, so that each chain is processed on a separate CPU core (if available).”

    thanks

    David

Leave a Reply

Your email address will not be published. Required fields are marked *