Indirections

Indirections are keyframes that can be replaced remotely when the user sends a specified command to the system.

Overview
Workflow
Examples

Indirections are primarily used for switching out pre-programmed content on the fly. They can be used for situations where the user may wish to change objects under certain scenarios such as triggering of an external system or changing playback to match different talent performing on stage.

Indirections are controlled by an Indirection controller, of which there are five types:

Manual

Holds a single resource that the Indirection uses. They can be manually controlled via the UI or via the new Indirections API.

List

The list controller type holds a list of objects and has an index for which object they refer to. The list can be controlled manually via the UI or via the Indirections API.

SequencedIndirectionController

The indirection control module allows indirections to be sequenced on the timeline. Users can sequence indirection changes on the timeline. One Indirection control module controls one indirection. This is controlled by keyframes in an IndirectionControl layer.

OSC

The OSC controller holds an address, for example - “/d3/indirection/name” and an OSC device. It's controlled by sending a string to Disguise software via OSC in the following format:

Address: /d3/indirection/nameOfIndirectionToControl

Message: sample/george.jpg

DMX

The DMX controller holds a channel and a universe. It's controlled by sending a value on that channel/universe that corresponds to a DMX bank & slot.

Warning: OSC and DMX indirection controllers can be set to any object that you've specified or put in a bank/slot which means you must take care to select the correct type of object. If you set a keyframe indirection to an object that does not match the keysequence it is sequenced in (i.e. you set your Indirection to reference a mapping when it expects a videoClip) the indirection will instead switch to holding None.

UDP

The UDP controller holds a string-keyed list of objects. It's controlled by sending a raw UDP message with the specified string to select the associated object.

Indirections can also be accessed via a dedicated API, documentation for which can be found at http://localhost/docs/v1/index.html whilst you have Disguise software running.

Warning: UDP sockets can only be bound to one port, this means that a UDP ports can only be used by one indirection controller at a time.

Warning: OSC, DMX and UDP Indirection controllers do not hold their values through restarts of Disguise software.

  • An Indirection acts somewhat like a "dynamic" keyframe

  • The dynamic keyframe has a controller attached to it

  • The controller gets values sent to it

  • Based on those values the resulting output can be changed temporarily