Syphon, Spout and NDI

Syphon (Mac), Spout (PC) and NDI (both Mac and PC) are great tools to route the visual output of one program to another. 

Syphon/Spout

Syphon and Spout work on the same computer. The output of one application can be picked up by another. This way, you can for instance get jiggy with your funky Processing sketches, but apply effects and map them to a surface with Resolume Arena.

There's no hard limit to how many applications you can connect like this. At a certain point your computer will just start smoking.

NDI

NDI works over the network. So you can send the output of Resolume running on one computer to Resolume running on a different computer, without the need for extra hardware. Just a regular network connection will work.

Using NDI, you can send video from a Mac to a PC and vice versa, no problem. Just like with Syphon and Spout, there's no hard coded limit to how many connections you can set up. Of course your network bandwidth will get full at one point.

Input

Syphon, Spout and NDI input are always enabled in Resolume.

Any program that is sending its output will show up under the sources tab. You can add them to a deck like you would any other live input.

You can use as many inputs at the same time as you want.

Output

The moment Syphon, Spout and/or NDI is enabled via the Output Menu, Resolume will immediately start broadcasting its main output as well.

Other Syphon/Spout enabled applications running on this computer will now pick up Resolume's composition output.

Computers on the same network will now pick up Resolume's composition output via NDI.

For applications that do not auto-detect broadcasting Syphon/Spout servers, Resolume's main output identifies itself to as follows:

App Name: "Avenue" or "Arena".

Server Name: "Composition" (for the main composition output) or “Screen 1” (when using the Advanced Output to route a screen).

NDI Gotchas

Network Adapter

The NDI protocol doesn't currently have a way to select which network interface it uses to send data. As a consequence, it will use your Wifi when you have both wireless and wired connections active. Especially on OSX, it will always default to Wifi when it's available. 

As you can imagine, sending video over Wifi is pretty crap. So you'll want to disable your wireless connection when setting up NDI.

Discovery vs Connection

Another point is that the NDI protocol is known to detect more sources than it can actually connect to. 

For instance, a computer sending NDI can be in a different IP range from your computer,  but still connected to the same network. This will result in the strange situation that the NDI sender will show up in Sources, but will show a 0x0 resolution and Offline when used as a clip.

To avoid this, you'll want to make sure that all your NDI computers are in the same IP range and subnet mask.

Advanced Output

Resolume Arena allows you to further control this via the Advanced Output. Syphon, Spout and NDI outputs can be treated like a separate physical screen. 

This allows you to warp the output before sending it, or to select parts of your composition to send. While you can still send a different output to your physical screens.

When sending to Syphon/Spout you can change the width and the height of the output as desired.


Syphon Example Code

Example code for Processing:

For Arena:

client = new SyphonClient(this, "Arena", "Composition"); 

Or for Avenue:

client = new SyphonClient(this, "Avenue", "Composition");

If you use a Syphon output via the Advanced Output of Arena, you can name the server yourself:

client = new SyphonClient(this, "Arena", "Screen 1"); 

Related Articles