zuweiser - more experiments for controller mapping and binding

Zuweiser (german for "assigner") is a little experiment on creating a tool for mapping controller values onto parameters using binding. It developed from a bit of support for a project and has some particular features that were necessary and requested. In no way this is "the" solution, yet more of another offering, exploration and addition to the collection of Controller Mapping tools already created by the community. A big drawback of this solution is the cooking behaviour of any exported to operators: if a single channel changes in the Bind CHOP, all bound operators will cook. For more mapping solutions check out: Bridgets, Galileo Mapper, TDMorph, and 404.Zerror.


  • use any CHOP as source for your mapping. You can map from Midi, OSC, Animation COMPs or Constant CHOPs (if that would ever be necessary)
  • one mapping can go to many targets
  • full control for reranging the values with fields for input and output range
  • choose from different interpolation curves to adjust the behaviour of the output value per mapping. Choices are: "Linear", "SCurve" or "Custom"
  • the same input channel can be mapped multiple times with different range mappings and interpolations
  • allows to specify a "multiplier" channel. This can be useful if a controller value is itself controlled by a second multiplier. For example an animation curve's value can be multiplied by a hardware Midi controller.
  • Mute mappings.
  • uses bindings via "bind-exports" from the Bind CHOP - bidirectional.


There are two modes of operation for zuweiser. The manual mode where you select channels from dropdowns and drag target parameters onto the user interface and the hover mode where your mouse pointer would hover over a parameter while a controller channel is changing and the assigment is done automatically.
To get started: Drop the zuweiser into your network and assign the CHOP with source channels to the "Controller Source" parameter.

Manual Mode

Click the Open pulse parameter to open up the user interface.

You can right-click anywhere on the ui to add a mapping. An inital mapping will be mostly empty except for a Bind Name. This is a unique identifier used when binding the channel to a parameter. It is customizable yet the name must start with the ID followed by an underscore.

Right-clicking into the Channel column will bring up a menu from where you can choose the source channel.

To bind to a parameter, drag the parameter onto the Bind Desitination column of your mapping. When binding from one mapping to multiple parameters, these will be stored as a list in the Bind Destination column. Right-clicking onto them will bring up a menu from which you can choose the bind target to be removed.

Hover Mode

As TouchDesigner currently only knows about which parameter the mouse is hovering over, this mode is more of an idea than a practical utility but can still come in handy.

On zuweiser's parameters toggle the Mapping Active parameter - all parameters in TouchDesigner should be turning teal. You are now in active mapping mode. When hovering over a parameter and a channel in your Controller Source CHOP is changing, zuweiser adds a mapping automatically. If you rollover another parameter and a channel that is already being used for a mapping changes, zuweiser will pop up a message box asking if you would like to bind to the new parameter with the already existing mapping or create a new mapping for the same source channel. 

After you are done, toggle the Mapping Active parameter to off.

Mapping Settings


The In Min and In Max values are by default set to the zuweiser's Controller Range parameter. The New Min and New Max values are set to the first bound parameter's range.


Select the output interpolation mode by clicking on the blue radiobuttons labels L, S and C (linear, s-curve, custom). To adjust the custom curve, right-click onto the C button of you mapping and control the shape of the lookup curve in the extra window.


Click the yellow button labeled M to mute a binding. Muting means the last value of the channel is held.


You can delete mapping by clicking the X. 


On the zuweiser's parameters, specify a CHOP under the Multiplier Source parameter. The channels in the specefied CHOP are now available to use as an extra multiplier on your mappings. To assign a multiplier channel, right-click onto the Multiplier column and select the appropriate channel from the list.

Other Notes

By default all mappings are stored in a Table DAT inside the zuweiser component. You can externalize this by clicking the Copy Mapping DAT to Outside parameter. This will create a copy of the mapping DAT and dock it to the zuweiser.

The Reset parameter is set to read-only to avoid accidental deletion of mappings.

Asset Downloads