Download the td_pixelmapper.toe file from the TouchDesigner Examples folder on Google Drive.
Download the pixelMapper.tox component from the TouchDesigner Examples folder on Google Drive.
Download and install the Advatek Assistant Software for macOS or Windows
DMX is a protocol standard for communicating with and controlling “addressable” lights. This is the standard communication protocol for theatrical lighting, stage lighting and most architectural lighting.
From Wikipedia: DMX512 (Digital Multiplex) is a standard for digital communication networks that are commonly used to control stage lighting and effects. It was originally intended as a standardized method for controlling light dimmers, which, prior to DMX512, had employed various incompatible proprietary protocols. It soon became the primary method for linking controllers (such as a lighting console) to dimmers and special effects devices such as fog machines and intelligent lights. DMX has also expanded to uses in non-theatrical interior and architectural lighting, at scales ranging from strings of Christmas lights to electronic billboards. DMX can now be used to control almost anything, reflecting its popularity in theaters and venues.
channels
.universe
controller
communicates all of its channel information.slave device
is has a start address
, and only listens to the parts of the DMX packet that pertain to its address.DMX can be sent over a network as well. There are two ways of doing this. Art-Net is the older and less robust protocol. E1.31 Streaming ACN (sACN) is newer, easier to use and more robust. We will be using sACN to communicate between TouchDesigner and our PixLite controllers.
It is important to know that most “addressable LEDs” do NOT use the DMX protocol. Most “addressable LEDs” require some piece of hardware to sit between them and a DMX controller. In our case, we will be sending DMX over sACN to our PixLite controllers. The PixLite controllers will then translate our DMX signal into another protocol that the LEDs can understand.
The LED strands that we are using are addressed sequentially, starting from the “pixel” that is nearest to the PixLite controller.
The goal of this tutorial is to understand one method for transferring video content (live, prerecorded, generated) to physical LED “pixels” in physical space. We want to “map” the video content to the pixels, retaining the motion of the video by sampling the video at points relative to the spacing and arrangement of the physical layout of the pixels. To do this, we will follow these steps:
This tutorial will not cover step 1. For best results:
Steps 3 and 4 are taken care of in the pixelMapper.tox.
This custom component has two inputs:
And one output
To start, create a filein
SOP and, in the Parameters pane, click the +
button to choose the correct OBJ file from your computer. Link this SOP to the SOP input on the pixelMapper COMP.
Next, create a simple TOP (i like to use my webcam to test) and connect that to the TOP input of the pixelMapper COMP.
Finally, create a null
TOP and connect it to the output of the pixelMapper COMP.
Lets look the Parameters of the pixelMapper COMP:
active
- this turns the active sending of DMX on and off
universe
- this is the DMX universe that we want to use (more on this later)
width
- total width of input geometry
height
- total height of input geometry
camZoom
, camTransX
, camTransY
- move the preview camera around to see everything. these do not affect the LED mappings.
The most important parameters here are width
and height
. For these, enter the total height and total width of geometry that you’ve imported.
If you want to get a deeper understanding of the PixLite Controller, have a look at the manual.
Connections
OP1
of the PixLite
macOS
Windows
You should have already downloaded and installed the Advatek Assistant Software for macOS or Windows.
1
, Start Channel is 1
and Pixels Per Output is 50
After communication with the PixLite unit is established and confirmed through the Advatek Assistant, go back to TouchDesigner and set the “Active” parameter of the pixelMapper to “ON”