Version: 6.0.0

# Bitfocus Companion

[Bitfocus Companion](https://bitfocus.io/companion) turns a Stream Deck, an X-keys, or any other panel it supports into a show controller for many programs at once. The Visibox connection adds Visibox to that list. Buttons trigger Clips, select Songs, run the transport, set the output level, and drive [Real-Time Control](https://manual.spaceage.tv/6.0.0/real-time-control/), and they light up to show what Visibox is doing.

## Companion or the Stream Deck plugin?

Both drive a Stream Deck. Pick by what else the deck has to do.

*   **The [Stream Deck plugin](https://manual.spaceage.tv/6.0.0/stream-deck/)** runs inside Elgato’s own software. Clip buttons show each Clip’s thumbnail, and Visibox installs it for you. Choose it when the deck runs Visibox and a few other desktop apps.
*   **Companion** runs its own server and talks to video switchers, lighting, audio consoles, and playback machines as well as Visibox. One button can fire a Clip and cut a camera at the same moment. Choose it when the deck runs the whole show, or when the panel is not a Stream Deck.

Companion drives a Stream Deck directly, so Elgato’s software has to be closed while Companion uses that deck. Use one or the other on a given deck.

## Adding the connection

1.  In Companion, open **Connections**, add a connection, and search for **Visibox**.
2.  Choose it. The connection’s settings open.
3.  If Visibox runs on the same computer as Companion, leave **Visibox Host** at `127.0.0.1`. Otherwise type that computer’s IP address.
4.  Leave **WebSocket Port** at 17734 and **HTTP Port** at 17736 unless you have a reason to change them.
5.  Save, then approve the connection in Visibox as described next.

## Approving the connection

Visibox asks before it lets Companion in, whether Companion is on the same machine or across the network.

*   **On the same computer.** Leave **Pairing Code** empty and save. Visibox shows a prompt asking to allow **Companion**. Click **Allow**.
*   **On another computer.** In Visibox, choose **Pair with Remote…** (on Mac, from the Visibox menu; on Windows, from the File menu) to see a six-digit code. Type it into **Pairing Code** and save. The code works once and expires after 5 minutes.

Either way, Visibox hands Companion a token, and Companion keeps it for every later connection. The **Pairing Code** field clears itself when that happens. Companion then shows up under **Paired Devices** in [Settings > Remote](https://manual.spaceage.tv/6.0.0/integrations/remote-pairing/), where you can remove it.

## Actions

| Action | What it does |
| --- | --- |
| **Trigger Clip** | Plays a Clip by its position in the Song, counting from 0. **Song Offset** picks the Song: 0 is the active Song, -1 the one before, 1 the one after. |
| **Release Clip** | Stops a Clip held down in [Gate](https://manual.spaceage.tv/6.0.0/launch-modes/) mode. Put it in the button’s release actions, with the same Clip and Song Offset as the press. |
| **Song Select** | Selects a Song by its position, counting from 0, or by **Song ID**. **Stop Playing** stops what is playing first. It is on unless you turn it off. |
| **Playback Control** | Play, Pause, Stop, Resume, Play/Stop Toggle, or Pause/Resume Toggle. |
| **Navigation** | Next Clip, Previous Clip, Random Clip, Next Song, or Previous Song. **Cross-Song Navigation** lets Clip steps and Random Clip reach other Songs. **Don’t Stop Playback** lets a Song step leave the current Clip playing. |
| **Output Level** | Sets the output level to a percentage, or steps it up or down. |
| **Set Control (Real-Time Control)** | Sets a Control by its letter, or adjusts it by an amount. Adjust suits a rotary encoder. |
| **Set Target Param (Real-Time Control)** | Sets one parameter by its Target ID, such as `master/volume`. The [API](https://manual.spaceage.tv/6.0.0/integrations/api/) and the [command line tool](https://manual.spaceage.tv/6.0.0/integrations/cli/#real-time-control) list the Target IDs. |
| **System Control** | Panic (Reset All), Fullscreen Toggle, or Mute Toggle. |

Positions in Companion count from 0, so the first Clip of a Song is Clip Index 0.

## Feedbacks

Feedbacks change a button’s look when something is true in Visibox.

| Feedback | True when |
| --- | --- |
| **Clip Playing** | Any Clip is playing. |
| **Clip Paused** | The active Clip is paused. |
| **Specific Clip Active** | The Clip at a position in the active Song is playing or paused. |
| **Song Active** | The Song at a position is the active Song. |
| **Output Muted** | The output is muted. |
| **Output Fullscreen** | The Output is full screen. |

## Variables

Put a variable on a button’s text to show live information from Visibox.

| Variable | Shows |
| --- | --- |
| `playback_status` | `playing`, `paused`, or `stopped`. |
| `project_name` | The open Project. |
| `active_song_name`, `active_song_index` | The active Song and its position, counting from 0. |
| `active_clip_name`, `active_clip_index` | The active Clip and its position, counting from 0. |
| `output_level` | The output level, 0 to 100. |
| `output_muted`, `output_fullscreen` | `true` or `false`. |
| `song_1_name` to `song_10_name` | The names of the first ten Songs in the Project. |
| `clip_1_name` to `clip_10_name` | The names of the first ten Clips in the active Song. |

## Presets

Ready-made buttons sit under **Presets** in Companion, in seven groups: Playback, Navigation, Clips, Songs, Status, System, and Audio. Drag one onto a button to start from it, then change what you need.

## Troubleshooting

**The connection says Disconnected.** Check that Visibox is open, that **Visibox Host** is the right address, and that the ports match. If Companion is on another computer, check that a firewall is not blocking ports 17734 and 17736.

**The connection says Authentication Failure.** The pairing code was wrong or already used, or the device was removed in Settings > Remote. On another computer, get a fresh code from **Pair with Remote…** and save it in **Pairing Code**. On the same computer, save the connection again and click **Allow** when Visibox asks.

**Authentication timed out.** Nobody answered the prompt in Visibox. Save the connection again and click **Allow**.

**Buttons do nothing.** A Project with at least one Song has to be open in Visibox.

## See Also

*   [Stream Deck](https://manual.spaceage.tv/6.0.0/stream-deck/) for the plugin that runs inside Elgato’s software.
*   [OSC](https://manual.spaceage.tv/6.0.0/integrations/osc/), which Companion can also send to Visibox.
*   [Remote Pairing](https://manual.spaceage.tv/6.0.0/integrations/remote-pairing/) for pairing codes and paired devices.

Source: https://manual.spaceage.tv/6.0.0/integrations/companion/
