Skip to content

OSC Sockpuppet

OSC Sockpuppet is a workflow that allows the user to control all the parameters of any layer via OSC.

Patching a layer to OSC sockpuppet

To patch a layer to OSC Sockpuppet you can perform the following steps:

  1. Right-click on the layer and select “Patch to OSC…”
  2. Select the OSC Device you would like to control your layer (you can change this later)

The layer will turn green and each of it’s fields will be highlighted in green. This indicates the layer has successfully been patched to sockpuppet.

Selecting parameters to control

By default all fields in the layer are now controlled by OSC.

You can right-click on each individual parameter on the layer and select “Toggle Sockpuppet” which will toggle sockpuppet control of that field or “Isolate Sockpuppet” which sets sockpuppet control for the field you selected and disables it for all the others.

Controlling parameters

To control any field you’ll need to send an OSC message with the correct address and a valid value.

You can find the right address and example values to control any field by right-clicking on the layer on the timeline and selecting “Edit OSC Patch…” and then selecting “View Personality…” in the OscPatch editor widget.

You can export this to a .txt file in the “output” folder next to the project so you can copy-paste them.

For resource fields the “example” values will be the ones currently set in the layer. This means that you can you can set the field manually and then inspect the personality to find the exact value you should send.

We will give an overview of the correct formats here, however do note that if there is a discrepancy between this page and the formats described in the personality always use the personality formats as they will be most up-to-date.

Format of the address

The correct address format is:

/d3/layer/[name of layer]/[name of field]

The name of the layer and the field are both case sensitive. You may include spaces.

Format of the value

There are 4 kinds of parameters that you may control with OSC Sockpuppet:

  1. Resources
  2. Numbers
  3. Options
  4. Text

Resources

Resources refer to any “object” in desginer that has an editor. Examples are Mappings, VideoClips, Bitmap Textures etc.

There are 3 ways to select a resource via OSC Sockpuppet

  1. By resource path
  2. By Bank + Slot Index
  3. By Bank and Slot Indexes
By resource path

You can select a resource by sending it’s path as a string value. You must format the value you want to set as a “String” in your OSC sender. The syntax for that value is:

objects/[type of object]/[path]/[to]/[object]/[name of object].apx

The [Type of object] is an internal Designer type that is sometimes not user visible. To see the correct type for your field you should check the OSC personality for the field which will have the correct value.

The [path]/[to]/[object] is blank for objects you create within Designer like Mappings, Textures etc. But for objects that refer to files on disc like VideoClips they are the path to the object on disc starting at the first folder within the “objects” project folder.

For example the file: objects/VideoFile/sample/ada.jpg Will be at: objects/videoclip/sample/ada.jpg.apx

The [name of object] is the name of the object within Designer. This is the name of an object like a mapping, or the name of the file including it’s extension like .png or .jpg

All values for resources must be appended with .apx. This is an annoying implementation detail of Designer.

None of the values are case sensitive.

You can also send an empty string to select None for the resource if the field supports being set to None

By bank + slot index

You can select a resource by sending a number as the value which refers to a Bank and Slot that the resource is assigned to in the bank editor. You can read more about the bank editor here: bank editor. You must format the value as either an Int or a Float in your OSC Sender. The formula for working out this value is:

bank x 256 + slot

For example if the resource is a mapping and is in bank 5 slot 26 and you would like to set it on a layer called Video Layer 3 you would do:

/d3/layer/Video Layer 3/mapping, Value: 1306

Because 5 x 256 + 26 = 1306

By bank and slot indexes

You can select a resource by sending two numbers at the same time where the first number refers to the Bank and the second to the Slot that the resource is assigned to in the bank editor. You can read more about the bank editor here: bank editor. You must format the values to be Int or a Float in your OSC sender.

The correct syntax for this value is:

bank slot

For example if the resource is a video and is in bank 2 slot 12 and you would like to set it on a layer called myVideoLayer you would do:

Address: /d3/layer/myVideoLayer/video, Value: 2 12

Numbers

Numbers refer to any field in desginer that has a box where numbers can be entered. Examples are Brightness, Speed, Size etc.

You can set the value of a Number by sending a number as the value which refers to the value you would like to set the field to. You must format the values as either Ints or Floats in your OSC Sender.

The correct syntax for this value is:

5 or 1.7

For example if you want to set the Brightness of a layer called Video 5 to 0.3 you would do:

Address: /d3/layer/Video 5/brightness, Value: 0.3

Or if you would like to set the Frame Index to 243 you would do:

Address: /d3/layer/Video 5/frame_index, Value: 243

Options

Options refer to any field in Designer that presents a list when clicked. Examples are Blend Mode, At End Point, On Clock Lost etc.

You can set the value of an option by sending a number as the value which refers to the index of the position of the option in the list presented when the option is clicked. The list is 0 indexed. You must format the value as an Int or a Float in your OSC sender. An example of this indexing would be Blend Mode where 0 = Over, 1 = Alpha, 2 = Add, 3 = Multiply etc.

The personality view you get when selecting “View Personality…” will print out a detailed list of all the options and their indexes for you so you don’t need to count their position in the editor. For more information see the Controlling Parameters section.

The correct syntax for this value is:

1

For example if you wanted to set the Mode of a video layer called video2 to Reverse you would do:

Address: /d3/layer/video2/mode, Value: 5

Text

Text refers to any field in Designer that has a box where text can be entered. Examples are Text on Text layer, Custom Parameters on a Web layer, a dynamic string field on a Notch layer etc.

You can set the value of a text field by sending a string as the value which simply is the string you want to be in the field. You must format the value as a String in your OSC sender.

The correct syntax for this value is:

this is a string or "this is a string with quotes" depending on the OSC Sender you are using.

For example if you wanted to set the Text field of a text layer called iHaveAQuestion to “Why the heck is it called SockPuppet?!” you would do:

Address: /d3/layer/iHaveAQuestion/text, Value: Why the heck is it called SockPuppet?!