Companion Module
The FrenschPress module for Bitfocus Companion turns the relationship around: instead of FrenschPress operating Companion, Companion operates the FrenschPress.
| Route | Who drives whom | Documented under |
|---|---|---|
| Companion Mode / Satellite | FrenschPress (and optionally a Stream Deck attached to it) acts as a surface for Companion | Companion Mode, Stream Deck as a Companion surface |
| Companion module | Companion controls the FrenschPress | this page |
The two can be combined: Companion can use one FrenschPress as a surface and control another as a device.
Typical use: one show button in Companion starts the video and switches the FrenschPress to set B, colours its LEDs, or arms a timeline.
Installation
The module ships as a package file (.tgz). Open Companion's module management and install the package there. Once the module is available from the Bitfocus module store this step goes away — searching for FrenschPress will be enough.
Setting up the connection
Add a new connection in Companion and choose FrenschConnection FrenschPress.
| Field | Meaning |
|---|---|
| Discovered devices | FrenschPress units announcing themselves on the network. Picking one fills in host and port. |
| Host | IP address or hostname of the device |
| Port | The device's OSC input port, 53001 by default |
| HTTP port | Used only to read the device's preset list. 80 by default, no login required. |
| Poll device status | Fetches device state regularly. Off means no variables and no feedbacks — the module only sends. |
| Poll interval (ms) | Time between queries, 1000 by default |
The module speaks OSC over UDP, so Companion and the FrenschPress have to be able to reach each other on the network.
Actions
| Action | What it does |
|---|---|
| Set mode | Switches between QLab, Custom and Companion |
| Switch button set | Switches to set A, B or C — optionally for selected buttons only |
| Apply preset | Loads a preset. The list is read from the device; a preset can also be given by name or from a variable. Optionally into a specific set. |
| Press a FrenschPress button | Fires STOP, GO or PAUSE virtually — as tap, press or release |
| Run a macro | Starts a macro by name or ID. on, off and toggle apply to snapshot macros. |
| Arm timeline / Disarm timeline | Arms or disarms one timeline — by number, name or ID |
| Arm all timelines / Disarm all timelines | The same for every timeline at once |
| Set LED colour | Colours one LED (STOP, GO, PAUSE or all) from the colour picker |
| Release LED override | Hands the LED back — it returns to its normal colour |
| Stream Deck: press a key | Fires a key on the attached Stream Deck by row and column |
| Stream Deck: set key feedback | Sets a deck key's state: a single key, row/column, all keys, or everything back to local |
Feedbacks
| Feedback | True when |
|---|---|
| Mode is | The device is in the selected mode |
| Button set is | The selected set is active — either for the whole FrenschPress or for a single button |
| QLab has running cues | At least one cue is running in QLab |
| QLab is paused | QLab is paused |
Variables
$(frenschpress:…) — device name, firmware version, MAC address, IP address, mode, QLab transport, active button set, per-button sets, and the QLab states (running, paused, feedback subscribed).
Bundled buttons (presets)
Ready-made Companion buttons with matching feedbacks: Mode QLab / Macro / Companion, Set A / B / C, STOP / GO / PAUSE, QLab running, QLab paused, plus two LED buttons (hold a colour while pressed, and release).
When nothing arrives
| Symptom | Check |
|---|---|
| No variables, no feedbacks | Is Poll device status switched on? |
| Connection stays red | Host and port — the port must match the device's OSC input port |
| Preset list empty | Wrong HTTP port, or the device is not reachable over HTTP |
| State updates sluggishly | Reduce the poll interval (minimum 250 ms) |
FrenschPress answers status queries at most once every 100 ms per sender, so a poll interval below 250 ms buys you nothing.