Skip to content

Inputs — Touch, Sensors, Controllers & Tracking ​

Inputs connects anything that comes in to what happens on the wall: a touch screen, a lidar scanner, a button box, a MIDI fader, a presence sensor, a stage-tracking system, a microphone. A touch starts a cue, a person walking across the room moves a clip, a fader drives an opacity.

Open it from the ☰ menu → Inputs, or from a clip's inspector with Input…, which opens the dialog with that clip already chosen.

The dialog has two steps: 1 · Where it comes from (the devices) and 2 · What happens (the mappings).

To see it done once, open ☰ menu → Walkthroughs → Inputs — touch, sensors and controllers: a touch starting a cue and a person walking moving a clip, step by step.

Everything here is stored in the project (.vpp). Hover a ? sign for details.

1 · Where it comes from ​

Every input becomes one or more channels, such as touch1, radar2, nx001 or mic. A channel carries an X and a Y (usually 0…1). Depending on the device it also carries a Z, an Angle, and clicks (press and release). The mappings in step 2 read these channels.

Built-in inputs ​

TileWhat it isChannel
NetworkAnything your own software sends — always on (see below)the name you send
MouseThe mouse of the engine PCmouse
GamepadsUp to four game controllersjoy1 … joy4
Output levelThe level of Exaplay's own audio outputaudio
MicrophoneA microphone or line input of this PC, as a level 0…1mic

Switch a tile on with its switch. The tile turns green (Receiving) as soon as values arrive.

Microphone: choose the input under Input (Default input follows Windows). The level is measured from −60 dB (0) to 0 dB (1). It rises fast and falls slowly, so a "rises above" trigger fires once per clap and does not flicker. If the chosen input is unplugged, the tile says so, and Exaplay reconnects on its own when it comes back.

Add device ​

Add device opens a gallery of the systems Exaplay understands. Each entry shows How do I connect … with the steps for that device. Most devices send to Exaplay by themselves, so there is nothing to install.

KindExamplesProtocolChannels
Touch screentouch frames, foils, multi-touch screensTUIO (UDP 3333)touch1, touch2 …
RadarTouchlidar / radar scannersTUIOradar1, radar2 …
Object tableprinted markers seen by a camera (reacTIVision)TUIOtable-obj12 (with rotation as Angle)
Motion trackerOptiTrack, Vicon, ARTVRPNone per tracker
Stage trackingzactrack, BlackTraxPosiStageNetpsn<id>
Camera trackingMo-Sys, stYpe, Ncam, FreeD PTZ camerasFreeD (UDP 40000)cam1, cam1-rot, cam1-lens
MIDI controllerAPC mini, nanoKONTROL …MIDImidicc…, midinote…
NexmosphereXperienCe controllers on USB / serialX-Talknx001 …, RFID nx-tag1 …
Visual ProductionsIoCore2, B-Station2, Kiosc, CueCoreOSCthe address you set
Hand trackingUltraleap with TouchFree—drives the mouse

A device tile shows what the engine reports: Receiving, Waiting for data, Not reported yet, or the problem in plain words (for example "port 3333 is in use").

Sending from your own software ​

Open the Network tile to see the endpoints:

ProtocolMessage
OSC/exaplay/track/<channel> x y
UDP / TCPtrack,<channel>,x,y
HTTPPOST /tracking
TUIOon Exaplay's OSC port, arrives as tuio1 …

A channel appears in the dialog the moment its first value arrives.

2 · What happens ​

Start from a recipe ​

What should happen? offers the common cases as tiles:

RecipeWhat it sets up
Clip followsA clip moves with a person or an object (X and Y), across the surface it plays on
Enter an area → cueSomeone enters a zone → a cue starts
Touch or button → cueA touch, click or button press → a cue starts
Swipe → cueA swipe left / right / up / down → a cue starts
Object placed → cuePutting a marker or a tagged object down → a cue starts
Fade with positionOpacity follows a position
Volume with positionVolume follows a position
Anything elseAn empty mapping to build yourself

A value recipe asks three short questions: who is tracked (move it, and Exaplay picks it up), which clip, and how it feels. It then shows as one card that reads like a sentence. Edit reopens the questions, and Details shows the mappings behind it.

A cue recipe adds an ordinary mapping card that already has its trigger and Go to Cue filled in. You only choose the input and the cue.

A mapping is one sentence ​

Every mapping reads as a sentence of clickable parts:

WHEN cam1 · X THEN Position X · Intro 0 … 1720

WHEN touch1 click inside an area THEN Go to Cue Intro · Main

Click a part to change it. Its editor opens under the sentence, one part at a time. At rest, each card is a single line with a live preview of its value on the right.

The input (When)

  • Press Learn, then move or press the thing you want to use. Exaplay takes the channel and axis that moved most, or the one that was pressed if the card does something.
  • Or click it in the list: every live channel is listed with a small meter per axis.
  • A device that is not sending yet can be typed by name. The mapping connects as soon as it sends.

What it sets (Then → Set a value)

  • Of: the whole project, a composition, or one clip.
  • Property: for a clip, Position X / Y, Size, Opacity, Volume, Rotation and the generator's parameters are offered; also an effect parameter, or any path (Custom path…).
  • Choosing a property sets its natural range, for example the pixels of the surface for a position. If Exaplay cannot read that range, the card says so in orange. In that case, enter From … to yourself.

How the input becomes the value (the number part)

  • From … to: the input's range is stretched onto two numbers. Invert swaps them.
  • × and +: the value is the input multiplied and then shifted, for example × 1920 + 200 for a position in pixels.
  • Only one of the two is shown at a time. Switching between them converts the numbers, so the result stays exactly the same.
  • Smoothing: Off, Light, Medium, Strong, or a custom value — calmer, but slower.

What it does (Then → Do something)

  • Go to Cue is the default. When the project has one composition, it is already chosen, so you only pick the cue.
  • Next cue / Previous cue, for a button that just advances. In a playlist this is the next or previous item. In a timeline it is the next or previous cue marker: the playhead jumps there and the cue runs, exactly like Go to Cue.
  • Play, Pause, Stop, or Custom command… (any command line).
  • Test runs the action once without the input. It saves first if something changed, and shows what the engine answered.

When it fires (the trigger part of an action)

TriggerFires when …
Click / touchpressed — optionally only inside an area (left third, a corner, or drawn on the pad)
Double tappressed twice quickly (optionally inside an area)
Value crosses a levelX, Y, Z or Angle rises above, falls below, or becomes exactly a value
Swipe along one axisa fast move from one side to the other
Moves in a directiona move of a set distance in a direction (↗, ←, …)
Stays in an areathe input stays in a zone for a set time (or as soon as it enters)

Each trigger is chosen by name (Swipe left, Fast). The numbers behind a name are one click away under Adjust values…. Learn on a movement trigger records the movement you make once. While the show runs, the card shows what the engine reports: armed, holding 40 %, and how often and when it last fired.

⋯ More holds what most mappings never need: the Group and the input range.

Room map ​

Room map shows every live channel as a dot on the floor plan, and every zone as a rectangle. Draw a rectangle to create an Enter an area → cue card for it. Drag or resize a zone to change its area. A zone lights up when someone is inside it.

Groups — switching mappings during the show ​

Give mappings a Group (under ⋯ More) to switch whole sets on and off. The groups appear as chips above the cards: click one to switch it live, and tick starts off for a group that should be off when the project loads. A cue, TCP or UDP command can do the same:

TRACKING>group:scene2=on      (=off, =toggle)
TRACKING>solo=scene2          that group on, every other group off
TRACKING>all=on               (=off)

Group switches are live state and are not saved. After a project load, every group starts as set under starts off.

Tips ​

  • Nothing arrives? The device tile says what the engine sees. Waiting for data means Exaplay is listening but nothing has come in yet: check the target IP and port in the device's own software.
  • Values jump? Raise Smoothing on the card.
  • A zone should react only to one person? Use that person's channel as the card's input.
  • Mappings bind by name. A card set up for radar3 starts working the moment that channel appears, even mid-show.

Exaplay 3 User Documentation