Stream Deck & Companion for Live Events and Streaming
Introduction
The house lights fade to half, the walk-in music swells, the holding slide gives way to the opening video, and the host walks on to applause. To the audience it is one smooth moment. At the back of the room, one technician pressed one button.
That button sat on a Stream Deck, a small panel of keys that are each a tiny screen. Behind it ran Bitfocus Companion, free software that turns a key press into commands for the show's machines: the video switcher, the media server, the playback computers, the PowerPoint laptop, the audio console and the lighting desk. The deck is the hands. Companion is the brain.
This book teaches you to build and run that system on a show. It starts from nothing: what the hardware is, how show gear talks over a network, and how to get Companion running. It then teaches the craft of building buttons that show what the show is doing, and the decision at the heart of the job, which is how to lay your buttons out for the responsibilities you have on that show. After that it takes each department's gear in turn, from video switchers to lighting consoles, then builds whole cues, takes the system onto a film set and a live stream, shares control with other people, and ends with show day, when everything you built has to work in front of an audience.
It is written from working practice on corporate shows, concerts and film. Companion changes often and every venue is different, so the book teaches what stays true: plan from your job, label everything, test before doors, and always know how to run the show without the buttons.
What you will be able to do
By the end you will be able to explain what a Stream Deck and Companion each do; choose the right hardware for a job; set up a show network and connect Companion to the gear on it; build buttons with actions, feedbacks, variables and triggers; lay out your decks for your responsibilities and the run of the show; control video switchers, media servers, playback machines, PowerPoint computers, audio consoles and lighting consoles; build reliable cues; run Companion on film sets and streams; share control safely; and prepare, test and recover on show day.
How to Use This Book
Read it in order the first time. Chapters one to five are the foundation: the hardware, the network, installing Companion and connecting it to gear. Chapters six to nine teach the craft of building buttons and laying them out, and chapter nine, on how your job decides the layout, is the one the rest of the book leans on. Chapters ten to fifteen take each department's gear in turn; read the ones for your job first and come back to the others. Chapters sixteen to twenty-one put it all together, on shows, sets and streams.
Every chapter ends the same way: a procedure you can follow on the job, a table of failures with their causes and fixes, an exercise with its answers, and a checklist. Do the exercises with Companion open in front of you. It is free, it runs on an ordinary laptop, and it has a built-in emulator, so you can build and press buttons without owning a Stream Deck or any show gear.
The shows in the examples
The worked examples follow three invented productions. Brightwater Health 2027 is a corporate conference in a hotel ballroom, with a host, a chief executive, a panel and an awards segment. The Low Tides is a band playing a 3,000-seat theatre with an LED wall. The Night Shift is a television drama, the same one followed in Reboot's Introduction to 24 Frame Playback course. Every name, company and address in them is made up.
Keep a show notebook
Keep a show notebook from your first build. For every show, write down each machine's address and port, the connection labels you gave them, which department agreed to which buttons, the page numbers of your decks, and where the backup file lives. Write down every fault you meet and what fixed it. Within a few shows the notebook becomes the fastest tool you own, because the same problems come back.
A note on the words
The same thing goes by several names in this work. Companion itself calls a link to a machine a connection, where older guides and forum posts say instance. A Stream Deck key is also a button, and in Companion any panel that presses buttons, from a deck to a tablet, is a surface. A video switcher is also a production switcher, and the large screen-management systems are also called presentation switchers or image processors. An audio console is a desk or a mixer; a lighting console is a desk too. Where this book uses a word, it uses the one printed on the screen or the gear, and it explains the others the first time they appear. The glossary at the back collects them.
A note on versions
Companion is open-source software that is updated often, and its connections to each make of gear are written and updated by volunteers and manufacturers. Menus move and options are added between versions. Where this book describes a screen or a setting, check it against the version you are running, and read the help page that comes with each connection. The ideas do not change.
A note on safety
A button can start a video in front of two thousand people, open a live microphone or black out a room. Never test a new button during a show. Agree with each department which of their machines you may control and which buttons are theirs. Tape down every cable you run, keep the show network separate from the venue's, and always know how to run each machine from its own controls if the buttons stop.
What Stream Deck and Companion Are
A Stream Deck is a small panel of buttons with a picture on every key, and Bitfocus Companion is the free software that turns those buttons into commands for show gear. This chapter explains what each part does, why show technicians use them, and where they sit on a corporate show, a concert and a film set, so that every later chapter has a place to hang.
A Stream Deck is a small panel of buttons with a picture on every key, and Bitfocus Companion is the free software that turns those buttons into commands for show gear.
Why show techs use it
Picture the video position at Brightwater Health 2027, an invented corporate conference in a hotel ballroom. In front of the operator sit a vision switcher, two playback computers, a PowerPoint computer and a laptop full of notes. When the host, Dana Okafor, says "please welcome our CEO, Martin Lowe", four things must happen at once: the walk-up music plays, the camera on the lectern goes to the screens, the CEO's first slide appears on the confidence monitor and the lower third with his name comes up. Without a control panel, that is four hands on four keyboards.
Companion lets the operator put all of that on one button. The button can be labelled MARTIN WALK-UP, it can turn red when the camera is live, and it can be pressed with one finger while the operator watches the stage. That is the whole reason show technicians use it: fewer hands on fewer machines, fewer chances to press the wrong thing, and a panel that tells you what state the show is in.
The reasons repeat on every kind of show. The list below is what technicians who use Companion daily tend to name first.
| Reason | What it means on the show | Example |
|---|---|---|
| One place for many machines | Buttons can command a switcher, a playback computer and a slide computer from the same panel | The Brightwater opener: roll video, cut to it and dim the house from one key |
| Labels you write | Every key shows your own text, colour or picture, so nothing has to be remembered | A key reading OPENER instead of a blank keyboard shortcut |
| State you can see | Keys change colour when a camera is live or a clip is playing, which Companion calls feedback | The Low Tides song key turns green while the media server plays it |
| Repeatable | A button does the same thing every time, in the same order | Back to one on The Night Shift resets every phone and screen identically for take two |
| Shareable | Pages and whole setups can be exported, copied and reloaded on a spare computer | The backup computer at front of house carries the same buttons |
Companion does not make a show safer by itself. A badly built button fires the wrong thing faster than a keyboard ever could. The rest of this book teaches how to build buttons that are worth trusting.
The buttons and the brain
Two parts work together, and beginners often mix them up. The Stream Deck is the hardware: a box of keys made by Elgato, each key a tiny screen under a clear button, connected to a computer by a USB cable. On its own it does nothing. It sends a message to the computer when a key goes down and when it comes back up, and it shows whatever picture the computer sends to each key.
Bitfocus Companion is the brain. It is software that runs on a computer, made by Bitfocus and released as open source under the MIT licence, so it costs nothing to download and use. Companion decides what each key looks like and what happens when it is pressed. When you press a key, Companion sends a command across the network to the gear: cut to camera 2 on an ATEM, play clip 4 on a playback machine, advance a slide. Bitfocus describes Companion as turning the Stream Deck and other controllers into a professional shotbox, a broadcast word for a panel of preset buttons.
| Part | What it is | What it does | What breaks if it fails |
|---|---|---|---|
| Stream Deck | Hardware with keys that are small screens | Reports key presses, shows key pictures | You lose the buttons; Companion and the gear keep running |
| Companion | Software on a computer | Holds every button, sends every command, reads back state | Every button stops working, on every deck |
| The network | Cables and a switch between computer and gear | Carries the commands | Buttons light up but nothing happens on the gear |
| The show gear | Switchers, servers, playback, consoles | Does the work the command asks for | That one device stops; the others still answer |
Notice that the show gear sits at the end of that chain. A switcher does not need Companion to switch. Every machine keeps its own controls, and an operator who knows those controls can run the show by hand if Companion or the deck fails. Keep that idea in mind from the first button you build.
Companion does not only work with Elgato hardware. It can take presses from other panels, from a web page on a tablet, from a browser emulator and from other software. Companion calls anything that presses its buttons a surface. Chapter 2 covers the hardware and Chapter 20 covers tablets and remote panels.
One panel, many machines
The Stream Deck's value grows with the number of machines you run. With one machine, its own keyboard or panel is often enough. With three or more, you start to lose time moving between them, and mistakes start to come from reaching for the wrong keyboard.
Companion talks to each machine through a connection, which is Companion's word for one device it controls. Each connection uses a module: a small plugin written for that make of gear that knows the commands it accepts. Bitfocus lists more than 700 supported devices and programs. A single button can carry actions for one connection or for several, so one press can command one machine or many.
Whether a cue button fires one machine or several is the programmer's choice. Some operators keep every key to one machine so that a fault is easy to trace; others build a key that runs a whole moment across machines because the show calls for it. Both work. Chapter 16 teaches when each fits.
Patrice Augustin, who founded Reboot and runs video and playback on corporate shows, concerts and film, describes his layout like this: it depends first on his responsibilities. On a show where he runs one machine he may need a small panel or none at all. When he runs many, he usually has one Stream Deck for transport controls, the play, pause, stop, next and previous keys, and a second Stream Deck for all the cues. Chapter 9 builds that two-deck rig.
| Show | Machines one operator might run | Why one panel helps |
|---|---|---|
| Brightwater Health 2027 | ATEM switcher, Playback A and B, PowerPoint computer | Walk-in, VOG, opener video and awards all cross machines |
| The Low Tides | Media server, playback, LED processor | Song starts, holds and blackouts must land on the beat |
| The Night Shift | Phone and screen playback computers, a switcher feeding set monitors | Every take resets several screens to the same start |
Where the Elgato app fits
Elgato sells the Stream Deck with its own free software, the Stream Deck app. The Elgato app is built around a single user at a computer: launching programs, switching scenes in streaming software, typing shortcuts. It is enough for some jobs, and Chapter 19 covers when.
Companion is built around show gear on a network. It has modules for vision switchers, media servers, playback software, audio and lighting consoles and much more, it can show the state of that gear on the keys, and it can run on a computer with no one sitting at it. This book is about Companion first.
The two programs should not fight over the same deck. Bitfocus advises closing the Elgato app before opening Companion, because Companion runs best when it has full control of the Stream Decks. If you need both, Bitfocus publishes a Companion plugin in the Elgato store, and Companion can also be told to leave some decks alone. Chapter 19 explains how.
What Companion does not do
New users sometimes expect Companion to do more than it does. Knowing its limits early saves a lot of confusion on the first show.
| Companion does not | What that means for you |
|---|---|
| Carry video, audio or lighting data | It sends commands. The pictures, sound and DMX still travel on their own cables and networks |
| Replace the gear's own controls | Every switcher, server and console keeps its own panel or software, and the operator of that gear must still know it |
| Control what has no way in | A device with no network, serial, MIDI or keyboard control cannot be commanded. Chapter 3 lists the ways in |
| Work without a module or protocol | Each make of gear needs a module, or a documented command set you can send with a generic module |
| Fix a bad network | If the computer cannot reach the device, no button will either |
| Make decisions | It does exactly what each button was built to do, in the order it was built |
There is one more limit to remember. A module can only do what its authors built and what the device allows. If the ATEM module has no action for something, the button cannot do it. Read the module's help page before you promise a client a feature.
Where it sits on a show
On a show, Companion runs on a computer at the operator's position, connected by network cable to a show switch, and through that switch to the gear. The Stream Decks plug into that computer by USB, or reach it over the network. The gear may be beside the operator or in a rack backstage; the network makes the distance irrelevant.
At Brightwater Health 2027, the video position at FOH, front of house, the operating area facing the stage, holds the Companion laptop and two decks. The ATEM sits in the rack at FOH, the two playback computers sit beside it, and the PowerPoint computer sits at the lectern side of the stage with its own network cable back to the switch. One network, one Companion, many machines.
| Kind of show | Who usually runs Companion | What it most often controls |
|---|---|---|
| Corporate general session | Video director, playback operator, show caller's assistant | Switcher, playback, slides, VOG and walk-in music |
| Concert | Video operator, media server operator | Media server cues, LED processor presets, IMAG switcher |
| Film and television set | 24-frame playback operator | Screen and phone playback, set monitors, lighting effects on screens |
| Live stream or hybrid event | Stream operator | Streaming software, encoder, record and stream start and stop |
Audio and lighting technicians use Companion too, often for mic mutes, walk-in music, stings and simple lighting looks. Chapters 14 and 15 cover those departments, and Chapter 16 covers cues that run across them.
How to do it
- List every machine you are responsible for on this show, by name and by job: switcher, playback, slides, media server, anything else.
- For each machine, write the moments in the running order where you touch it, such as the walk-in, the opener or the awards.
- Mark the moments where two or more machines must move together. Those are the moments a Companion button helps most.
- Check that each machine has a way in: a Companion module, or a documented network, serial, MIDI or keystroke control.
- Decide how many panels your responsibilities need. One machine may need none; many usually need one deck for transport and one for cues.
- Write down how you would run each machine by hand if Companion failed, and keep that note at your position.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| An operator expects Companion to show video on the keys | Companion was mistaken for a video tool | Remember it sends commands only; pictures travel on their own cables |
| Buttons light up but nothing happens on the gear | The brain and the buttons work, but the network path to the device is broken | Check the connection status in Companion and the cable and switch to the device |
| The Stream Deck shows the Elgato app's buttons instead of Companion's | Both programs are running and the Elgato app holds the deck | Quit the Elgato app, then rescan surfaces in Companion |
| A client asks for a feature on the deck and it cannot be built | The module has no action for it, or the device offers no control for it | Read the module's help page before promising features |
| Nobody can run the switcher when the Companion laptop crashes | The team relied on the deck and forgot the gear's own controls | Keep every machine's own controls in reach and know how to use them |
Practice it
At Brightwater Health 2027 you run video at FOH. You are responsible for the ATEM at 10.0.0.20, Playback A at 10.0.0.31, Playback B at 10.0.0.32 and the PowerPoint computer at 10.0.0.40. The awards segment has eight winners, each with a walk-up sting, a name graphic and a photo slide.
- You can say which part is the hardware and which is the brain.
- You can explain what a connection and a module are in one sentence each.
- You can name the kinds of gear Companion commands on a show.
- You know why the Elgato app should be closed before Companion opens.
- You can list three things Companion does not do.
- You can draw where Companion, the decks, the switch and the gear sit at FOH.
The Hardware
Companion can be pressed from many kinds of panel, but most shows use Elgato's Stream Deck family. This chapter walks through that family, the keys, dials and touch strips on them, the panels that live in racks and under feet, the other surfaces Companion supports, and how to choose the right panel for the job you are hired to do.
Companion can be pressed from many kinds of panel, but most shows use Elgato's Stream Deck family.
The Stream Deck family
Elgato makes Stream Decks in several sizes. They share one idea: each key is a small colour LCD screen under a clear cap, so the software can draw a label, a colour or a picture on it. They differ in how many keys they have, whether they add dials or touch areas, and how they connect.
Companion's Stream Deck support lists the models it handles: the original 15-key Stream Deck, the Mini, the XL, the MK.2, the Pedal, the Stream Deck +, the Stream Deck + XL, the Neo, the Studio and the Stream Deck Modules with 6, 15 and 32 keys. Elgato sometimes changes a model's internal revision without notice, so a brand-new unit can occasionally need a Companion update before it works.
| Model | Controls (Elgato's figures) | Connection | Notes for Companion |
|---|---|---|---|
| Stream Deck Mini | 6 LCD keys | USB | Small; fits a lectern side or a playback cart |
| Stream Deck MK.2 | 15 LCD keys | USB-C, removable magnetic stand | The everyday deck; interchangeable faceplates |
| Stream Deck Scissor Keys | 15 LCD keys with scissor switches | USB-C (USB 2.0), detachable stand | Same 15-key layout as the MK.2 with shorter, faster key travel; MK.2 faceplates do not fit it |
| Stream Deck XL | 32 LCD keys | USB-C | Matches Companion's default grid of 8 columns by 4 rows |
| Stream Deck Neo | 8 LCD keys, 2 touch points, an Infobar screen | USB-C | Companion treats it as a 4 by 3 grid; it does not yet draw on the Infobar |
| Stream Deck + | 8 LCD keys, 4 push dials, a touch strip | USB-C | Dials and strip work in Companion with limits, see the next section |
| Stream Deck + XL | 36 LCD keys, 6 push dials, a touch strip | USB-C | The largest desktop deck with dials |
| Stream Deck Studio | 32 LCD keys, 2 push dials with LED rings, NFC reader | Ethernet with PoE+, or USB-C power | Built for 19-inch racks; Companion does not yet light the LED rings |
| Stream Deck Pedal | 3 foot pedals | USB-C, cable up to 5 m | Hands-free presses |
| Stream Deck Modules | 6, 15 or 32 keys on a bare board | USB-C | For building into custom panels and racks |
Elgato also sells a Network Dock that gives a desktop Stream Deck an Ethernet port, powered by PoE (power over Ethernet, where the network cable also carries power) or by USB-C. A deck on a Network Dock no longer needs a USB cable back to the computer. Elgato lists it as not compatible with the first-generation Stream Deck or the Studio, which has Ethernet built in. Companion can add Network Dock decks on its Surfaces page as remote surfaces.
Key counts and features change as Elgato releases new models. Before you buy for a show, check the model on Elgato's site and check Companion's surface module help page that the model is supported.
Keys, dials and touch strips
A key does two things for Companion. It reports a press when it goes down and a release when it comes back up, and Companion can run different actions on each. It also displays whatever Companion draws: text, a background colour, a picture, or a changing value such as a clip's remaining time. Chapters 6 and 7 cover building and colouring keys.
A dial, which Elgato calls an encoder, turns without end in either direction and can also be pushed like a key. In Companion a dial sits in the button grid like a key, and you switch on its turning actions by ticking "Enable Rotary Actions" on that button. Turning left and turning right then each get their own actions, which suits things that go up and down: a volume, a transition rate, a playback position.
The touch strip on the Stream Deck + is a narrow touch screen above the dials. Companion maps it to four buttons, one above each dial. A tap on the strip sends a press and a release together, so the strip cannot tell a short tap from a long hold. Since Companion 4.2, a sideways swipe on the strip changes page, and an up or down swipe can be used as a turn. Companion's own help warns that the strip can mistake a swipe for a tap, so do not put a critical press on a strip button that also takes swipes.
| Control | What Companion receives | Good for | Keep away from |
|---|---|---|---|
| Key | Press and release | Cues, transport, anything that must fire once | Nothing; it is the safest control |
| Dial turn | Turn left or turn right, once per step | Levels, rates, scrubbing | Cues; a dial can be nudged by a sleeve |
| Dial push | Press and release | Resetting what the dial controls | Dangerous actions near a dial you turn often |
| Touch strip | A tap, a swipe across or a swipe up and down | Labels, page changes, light adjustments | Critical presses and anything needing a long press |
| Neo touch points | Presses | Page left and right | Cues |
Physical keys are what make a Stream Deck useful at a show position. You can find them by touch, you feel the press, and a key does not fire when a cable brushes it. Touch areas and dials are useful additions, but the cue that must not go wrong belongs on a key.
Rack-mounted panels
Desktop decks sit on a table, which is fine at FOH but not in a flight case, a broadcast truck or a machine room. Shows that build their control into racks use panels designed to mount in the standard 19-inch equipment rack, the metal frame that holds switchers, servers and processors.
The Stream Deck Studio is Elgato's rack panel. Elgato describes it as built to slot into standard 19-inch racks and supplies rack brackets in the box. It has 32 keys and two push dials, connects by Ethernet at 100 Mb/s, and takes power from the network cable using PoE+ (IEEE 802.3at) or from a USB-C supply. Because it sits on the network, the panel can live in the rack while the Companion computer sits elsewhere. It also has an NFC reader, and Companion can write the value of a scanned NFC card into a custom variable that you choose in its surface settings.
The second route into a rack is to build your own panel. Elgato's Stream Deck Modules are bare circuit boards with 6, 15 or 32 keys and a USB-C port, with no case or stand. Elgato sells them for building into custom controllers, rack panels and installations, and publishes CAD drawings for designers. Companion treats a module the same as the desktop deck of the same size.
| Route into the rack | What you get | When it fits |
|---|---|---|
| Stream Deck Studio | 32 keys and 2 dials, Ethernet and PoE+, rack brackets | Broadcast trucks, control rooms, touring racks |
| Stream Deck Module in a custom panel | 6, 15 or 32 keys in a panel you design | Fixed installs, custom touring cases |
| Desktop deck on a shelf or bracket | Any desktop model on a rack shelf or a third-party mount | Short-term shows, rental racks |
| Desktop deck on a Network Dock | A deck with its own Ethernet and PoE | A panel at a position far from the Companion computer |
Whatever route you choose, label the panel's network cable and note its address on the IP sheet, as Chapter 3 teaches. A rack panel that loses its network cable looks dead even though Companion is running.
Feet and hands
Some jobs keep the operator's hands busy. A playback operator on The Night Shift may be holding a phone for an actor while a scene resets. A media server operator at The Low Tides may be riding a fader while a song starts. A foot pedal or a jog wheel gives them one more control without letting go of what they hold.
The Stream Deck Pedal has three pedals and connects by USB-C, with a cable of up to 5 m. In Companion, each pedal is a button like any other. The X-keys XK-3 USB foot pedal comes in a front-hinged version that lets you rest the ball of your foot on the main pedal without pressing it; a little more pressure clicks it. Companion also supports VEC USB foot pedals. Because any foot can reach a pedal, put only safe, simple actions on it: next slide, play, a talkback.
For hands, jog and shuttle wheels come from editing. Companion supports the Contour ShuttlePro (versions 1 and 2) and Shuttle Xpress, and the Blackmagic DaVinci Resolve Speed Editor and Replay Editor. Their wheels can write their position into Companion variables, which a button can use to scrub a clip or step through a list. Some X-keys panels add T-bars and jog wheels, which Companion supports in a limited way through custom variables.
| Device | What it adds | A safe use on a show |
|---|---|---|
| Stream Deck Pedal | 3 pedals | Next and previous for a presenter's slides when your hands hold a phone |
| X-keys foot switches | Pedals you can rest a foot on | Play the next sting at an awards show |
| VEC foot pedal | USB pedals | Talkback or a single safe cue |
| Contour ShuttlePro or Xpress | Jog wheel, shuttle ring and keys | Scrubbing a clip to its first frame on set |
| Blackmagic Speed Editor | Jog wheel and keys | Stepping through clips during a reset |
Test every pedal at your position before the show with cables dressed the way they will be. A pedal under a desk is easy to kick, and the operator beside you may not know it is there.
Other surfaces Companion can use
Companion calls any device that presses its buttons a surface. Since Companion 4.3, support for each family of surfaces comes as a surface module that is installed and updated like the modules for show gear. Before Companion can see a new kind of panel, the right surface module must be installed and switched on, from the Surfaces page.
Bitfocus publishes surface modules for a wide range of hardware. Among them are the Loupedeck Live, Live S and CT, the Razer Stream Controller and Stream Controller X, most X-keys panels, the Xencelabs Quick Keys, the Blackmagic ATEM Micro Panel, the Mirabox Stream Dock, Ulanzi stream controllers, the Logitech MX Creative Console, the iDisplay Infinitton, generic MIDI controllers and Mackie Control surfaces. The full list, with the models each module covers, is on the Bitfocus developer site.
A few of these come with cautions printed in their own help pages. Loupedeck panels need their newer firmware and the Loupedeck software must be closed. The ATEM Micro Panel must not be used while Blackmagic's ATEM software is also running, because both programs listen to its presses and change its colours. The lesson is the same as for the Elgato app: one program owns a panel at a time.
Companion also has surfaces that need no hardware at all. The emulator is a grid of buttons in a web browser that behaves like a Stream Deck. The Web buttons page shows button pages on a tablet or phone. Companion Satellite is a small program that runs on another computer and forwards the decks plugged into it to your main Companion over the network. Chapter 20 teaches all three.
| Surface | What it is | Typical use |
|---|---|---|
| Stream Deck family | Elgato key panels | Almost every show position |
| X-keys | Programmable key panels, some with T-bars and jog wheels | Larger key counts, broadcast desks |
| Loupedeck and Razer Stream Controller | Keys, dials and touch screens | Operators who want dials beside keys |
| Blackmagic panels | ATEM Micro Panel, Speed Editor, Replay Editor | Re-using editing and switcher panels |
| MIDI controllers | Any MIDI pad or fader box | Cheap extra buttons and faders |
| Emulator and Web buttons | Buttons in a browser or on a tablet | Spare panel, a presenter's or producer's safe buttons |
| Companion Satellite | Decks plugged into another computer | A deck at a position far from the Companion computer |
Choosing a deck for the job
Choose hardware from your responsibilities, not from the catalogue. Count the machines you run and the moments you touch them, then pick enough keys to hold what you need without paging during a busy moment. Paging is when you switch the deck to another set of buttons; Chapter 6 explains pages.
| Your job on the show | A deck that fits | Why |
|---|---|---|
| One playback machine, simple show | Stream Deck MK.2 with 15 keys | Transport and a handful of cues on one page |
| Several machines, one operator | Two decks: an MK.2 for transport, an XL with 32 keys for cues | Transport never moves; cues have room |
| Show caller's assistant or presenter | Stream Deck Mini with 6 keys | Few, safe buttons that cannot be confused |
| Levels and rates as well as cues | Stream Deck + or + XL | Dials beside keys |
| Truck, rack or machine room | Stream Deck Studio or a module in a custom panel | Rack mounting and Ethernet |
| Hands busy on set | A deck plus a Stream Deck Pedal | Foot presses for the next step |
Whatever you choose, carry a spare of the same model, plus spare USB cables. A spare of the same size means your pages fit it without changes. Companion's surface groups, covered in Chapter 21, let you swap a dead deck for the spare without rebuilding any buttons.
Check the cable route too. USB cables have length limits, and a deck far from the computer may be better on a Network Dock, a Stream Deck Studio, or Companion Satellite on a second computer.
How to do it
- List your responsibilities and count the moments in the running order where you press something.
- Choose the number of decks and their sizes so that the busiest moment needs no page change.
- Check on Elgato's site and in Companion's surface module help that each model you choose is supported, and what its dials or strips can do in Companion.
- Add a spare of each model and spare cables to the kit list.
- Plan the cable route from each deck to the Companion computer, and choose a Network Dock, Studio or Satellite where USB will not reach.
- Before the show, plug in every deck and pedal at its final position and press every key once with nothing connected that could fire.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| A long press on the Stream Deck + touch strip does nothing | The strip sends press and release together, so it has no long press | Move long-press actions to a key |
| A new deck straight from the box is not seen by Companion | Elgato changed the model revision, or the surface module is out of date | Update the Elgato surface module or Companion, and check the module's supported list |
| A cue fires when the operator brushes the desk | The cue sits on a dial or a pedal | Keep cues on keys and put only safe actions on pedals and dials |
| The ATEM Micro Panel lights change by themselves | Blackmagic's ATEM software and Companion both drive the panel | Close the ATEM software while Companion uses the panel |
| The deck in the rack goes dark | Its network or PoE cable was pulled | Label and secure the cable, and note the panel on the IP sheet |
Practice it
You are building the video position for The Low Tides at a 3,000-seat theatre. You run the media server and two playback machines, with timecoded songs and a few manual holds. The media server operator in the machine room backstage also needs six safe buttons.
- You can name the main Stream Deck models and their key counts.
- You know what Companion receives from a key, a dial and a touch strip.
- You keep cues on keys and safe actions on pedals and dials.
- You can name two ways to put a panel in a rack.
- You know that one program owns a panel at a time.
- You choose decks from your responsibilities and carry a spare of each.
How Show Gear Talks
Every Companion button is a message sent from one machine to another, and almost always across a network. This chapter teaches that network from the very beginning: what an IP address is, what a subnet and a port are, how TCP, UDP and OSC differ, why show networks use fixed addresses and their own switch, and why Wi-Fi is a risk. It ends with the other ways into gear when there is no network.
Every Companion button is a message sent from one machine to another, and almost always across a network.
Commands over a network
Think of a text message. You type a few words, you choose who it goes to by their phone number, and the phone network carries it. The person at the other end reads it and acts on it. A Companion button works the same way. When you press CUT TO CAM 2, Companion writes a short message in the language the ATEM understands, addresses it to the ATEM, and sends it down the network cable. The ATEM reads it and cuts.
Three things must be right for that message to arrive. The address must be correct, so the message goes to the ATEM and not to the playback computer. The path must exist, so there is a cable and a switch between the two machines. And the language must match, so the ATEM understands what it receives. Companion's module handles the language. You handle the address and the path, and that is what this chapter teaches.
The network is the cables, the switch they plug into, and the settings on each machine that let them find each other. Most show networks use Ethernet: the familiar cable with a clip-in plug, called RJ45, running from each machine to a box called a switch. The switch passes each message to the cable that leads to the machine it is addressed to.
| Term | Plain meaning | On the show |
|---|---|---|
| Network | Machines joined so they can send each other messages | The show network at FOH |
| Ethernet cable | The cable that carries network messages, usually with RJ45 plugs | From the ATEM to the switch |
| Switch | A box with many network sockets that passes messages between them | The show switch in the FOH rack |
| Device | Any machine on the network | Companion laptop, ATEM, playback computers |
| Command | One message that asks a device to do something | Cut to camera 2 |
IP addresses and subnets
Every device on a network has an IP address, which works like a phone number. The common kind, called IPv4, is written as four numbers separated by dots, each number from 0 to 255. At Brightwater Health 2027, Companion lives at 10.0.0.10 and the ATEM at 10.0.0.20. When you add the ATEM to Companion, the address you type is 10.0.0.20, and every message for the ATEM goes there.
Two devices can only talk directly if they are in the same subnet, the same neighbourhood of addresses. The subnet mask says how much of the address names the neighbourhood and how much names the house. The most common mask on shows is 255.255.255.0. With that mask, the first three numbers are the neighbourhood and must match on every device, and the last number is the house and must be different on every device.
| Device | IP address | Subnet mask | Can it reach Companion at 10.0.0.10? |
|---|---|---|---|
| ATEM | 10.0.0.20 | 255.255.255.0 | Yes; same first three numbers, different last number |
| Playback A | 10.0.0.31 | 255.255.255.0 | Yes |
| PowerPoint computer | 10.0.0.40 | 255.255.255.0 | Yes |
| A rental laptop as delivered | 192.168.1.50 | 255.255.255.0 | No; different neighbourhood |
| A second laptop set to 10.0.0.10 by mistake | 10.0.0.10 | 255.255.255.0 | No; two devices with one address clash |
With a mask of 255.255.255.0, the last number can be anything from 1 to 254. The address ending in 0 names the whole subnet and the one ending in 255 is the broadcast address, which reaches every device at once, so neither is given to a device. That leaves 254 house numbers in the neighbourhood, more than any show position needs.
Some address ranges are set aside for private networks that never touch the internet. The internet standard RFC 1918 reserves three: 10.0.0.0 to 10.255.255.255, 172.16.0.0 to 172.31.255.255 and 192.168.0.0 to 192.168.255.255. Show networks use these. This book uses 10.0.0.x; you will also meet 192.168.0.x and 192.168.1.x, which many devices use out of the box.
Network settings on a computer also ask for a router or gateway, the device that passes messages to other networks such as the internet. A show network that is closed to the outside does not need one, and the field can be left empty. If the network has a gateway, the network's owner gives you its address.
A note on the mask's other spelling. You may see 10.0.0.20/24 instead of an address and a separate mask. The /24 means the first 24 bits, the first three numbers, are the neighbourhood. It is the same thing as 255.255.255.0.
Fixed and automatic addresses
A device can get its address in two ways. It can be given one by hand, called a static or fixed address, which stays the same until someone changes it. Or it can ask the network for one, using a service called DHCP. A DHCP server, often built into a router, hands out a free address to each device that asks. Home and office networks work this way, which is why a laptop usually connects without any setup.
Companion stores each device's address in its connection. If the ATEM's address changes overnight because a DHCP server handed it a new one, every ATEM button stops working until someone notices. Bitfocus's own setup advice is to use static addresses, or DHCP reservations, for the devices you control, so that their addresses do not change. A reservation is a DHCP setting that always gives the same device the same address.
| Method | How it works | When it fits |
|---|---|---|
| Static address | Typed into each device by hand | Most show networks; no server needed, nothing changes by itself |
| DHCP reservation | The DHCP server always gives this device this address | Networks with a managed router, such as a broadcast truck or a venue install |
| Plain DHCP | The server hands out any free address | Laptops browsing the internet; not for devices Companion controls |
When a computer is set to DHCP and finds no DHCP server, it gives itself an address of its own choosing, usually beginning 169.254. If you see a 169.254 address on the Companion computer, it is not on your show subnet and cannot reach your gear. Set it to a static address in your plan.
To set a static address, open the computer's network settings, choose the wired Ethernet adapter, change its IPv4 setting from automatic or DHCP to manual, and enter the address and mask from your plan. The names of these settings differ between Windows, macOS and Linux and between versions, but every system has them. Change only the wired adapter, so that Wi-Fi can stay as it is for email if the show allows it.
Ports
One computer can run many programs that listen to the network, so an address alone is not enough. If the IP address is the building, the port is the flat number: it says which program in that building the message is for. A port is a number from 1 to 65535.
Most gear listens on a port its maker chose, and the Companion module usually fills it in for you. The vMix module, for example, states that Companion uses vMix's TCP port 8099, and warns not to enter the Web Controller port in its place. The QLab module connects on port 53000 by default. Companion's own web page listens on port 8000 unless you change it.
| Program or device | Port | Where this is stated |
|---|---|---|
| Companion web interface | port 8000 by default | Companion user guide |
| Companion Satellite | TCP port 16622 and WebSocket port 16623 | Companion user guide |
| Blackmagic ATEM switchers | UDP port 9910 | The ATEM control library Companion's module uses |
| vMix TCP API | TCP port 8099 | Companion vMix module |
| QLab OSC | port 53000 by default | Companion QLab module |
| VICREO Listener keystroke app | TCP port 10001 unless changed | Companion VICREO module |
Two programs cannot listen on the same port on one computer. If another program already holds port 8000, Companion's launcher lets you choose a different port. Write any port you change on the IP sheet.
Firewalls work on ports too. A firewall is software on a computer, or a box on a network, that blocks messages to ports it has not been told to allow. If a device can be reached by its address but Companion still cannot talk to it, a firewall on that device or on the Companion computer is a common cause.
TCP, UDP and OSC
Messages travel on the network in one of two main ways. TCP works like a phone call. The two machines first connect, then every message is checked on arrival, sent again if lost, and delivered in order. While the call is up, each side knows the other is there. UDP works like shouting across a room. The message is sent with no call set up and no check that it arrived. It is quick and simple, and on a good wired network almost every message arrives, but nothing tells the sender if one does not.
| TCP | UDP | |
|---|---|---|
| Everyday picture | A phone call | A shout across the room |
| Connection first | Yes | No |
| Lost messages | Sent again automatically | Simply lost |
| Order | Kept | Not guaranteed |
| What Companion can tell you | Whether the device is connected | Only whether replies come back |
| Gear you will meet using it | vMix TCP API, QLab in TCP mode, many projectors and displays | Blackmagic ATEM, many OSC devices |
You rarely choose between them; the gear does. The ATEM uses UDP. The vMix module uses TCP. QLab accepts both, and its Companion module notes that its variables and feedback only work in TCP mode, because TCP lets QLab answer reliably. When a module gives you the choice, its help page says what each mode offers.
OSC, short for Open Sound Control, is a message format, not a third way of travelling. An OSC message carries an address that starts with a forward slash and names what to do, followed by values such as a whole number, a decimal number or some text. An invented example for a media server might be /layer/2/clip/4/play, or /fader/3 with the value 0.75. The OSC specification is transport-independent: OSC messages most often travel over UDP and can also travel over TCP.
OSC is popular in show software because it is readable and easy to add. Many media servers, playback programs, audio consoles and lighting consoles accept it. Each program's manual lists the OSC addresses it understands, and those addresses must be typed exactly, slashes and capital letters included.
A show network
A show network is a small, private network built for the show and nothing else. At Brightwater Health 2027 it is one switch in the FOH rack, with a cable to each device: the Companion laptop, the ATEM, both playback computers and the PowerPoint computer. The audio desk and lighting desk join it if their operators agree. Nothing else is plugged in, and it does not connect to the hotel's network.
For a network of this size, a simple gigabit switch of the unmanaged kind, one that needs no setup, is usually enough. Larger shows and touring systems use managed switches, which can be configured to separate departments into virtual networks. Those belong to the network technician; if you are given a port on one, ask which socket and which subnet are yours.
| Rule | Why |
|---|---|
| Keep the show network separate from the venue's | Venue and hotel traffic, other events and guests cannot reach or slow your gear |
| Wire every device you control | A cable either works or it does not, and the fault is easy to find |
| Use one subnet for the gear Companion controls | Every device can reach every other without a router |
| Label every cable at both ends | Anyone can trace the ATEM's cable in the dark |
| Power the switch from the same protected supply as the gear | A switch that loses power takes every button with it |
| Never put the Companion web page on the internet | Bitfocus warns that anyone who finds it gets a way to run commands on your machine |
Why Wi-Fi is a risk on show networks
Wi-Fi shares the air with every phone, laptop and access point in the room. A ballroom full of conference guests, or a theatre full of concert fans, fills that air. Messages wait their turn, arrive late, or go missing, and a device can drop off the network for a few seconds and rejoin. A cue that fires a second late, or not at all, is a failed cue.
Bitfocus's own advice is to use wired networking with Companion whenever possible, because some devices react badly to the frequent disconnects Wi-Fi can bring. Hotel and venue guest Wi-Fi often stops connected devices from seeing each other at all, which breaks Companion entirely. If a tablet must use Wi-Fi for safe buttons, give it its own access point on the show network, keep its job small, and never put a show-critical cue on it.
Computers with two networks
A Companion computer may have a wired adapter on the show network and Wi-Fi on the internet at the same time. That works, as long as both are not on the same subnet. Companion's web interface listens on all of the computer's networks by default; the launcher lets you choose one, which Chapter 4 covers.
Addresses on paper
Every show network needs an IP sheet: one page that lists every device, its address, its mask, the port and protocol Companion uses to reach it, and who owns it. It is written before load-in, printed, and taped at each position. When something stops answering at five minutes to doors, the IP sheet is what lets anyone check it in seconds.
| Device | IP address | Mask | Control port and protocol | Owner | Notes |
|---|---|---|---|---|---|
| Companion laptop | 10.0.0.10 | 255.255.255.0 | Web page on port 8000 | Video | Spare laptop set up identically but kept off the network |
| ATEM switcher | 10.0.0.20 | 255.255.255.0 | UDP port 9910 | Video | Set from ATEM Setup |
| Playback A | 10.0.0.31 | 255.255.255.0 | Per playback module | Video | Main |
| Playback B | 10.0.0.32 | 255.255.255.0 | Per playback module | Video | Backup, mirrors A |
| PowerPoint computer | 10.0.0.40 | 255.255.255.0 | Per slide control method | Video | Lectern side of stage |
| Audio desk | 10.0.0.50 | 255.255.255.0 | Per desk module | Audio | Agreed with the A1 |
| Lighting desk | 10.0.0.60 | 255.255.255.0 | Per desk module | Lighting | Agreed with the LD |
Notice the pattern in the plan. Each department or kind of device has its own block of numbers: the tens for control computers, the twenties for switchers, the thirties for playback, the forties for presentation, the fifties for audio and the sixties for lighting. A pattern makes an address easy to guess and a clash easy to spot. Playback A and B sit next to each other at 31 and 32 so that a third machine would naturally be 33.
Agree the plan with the other departments before the show. Audio and lighting often run their own networks for their own data, and their desks may already have addresses. A lighting desk at 10.0.0.60 on your switch is a decision the lighting designer makes with you, not one you make for them.
Keep the sheet with the Companion configuration file, update both together, and print a fresh copy whenever an address changes. An IP sheet that is out of date is worse than none, because people trust it.
Other ways in (serial, MIDI, HTTP, keystrokes)
Most show gear Companion controls today sits on a network. Some does not, and some offers more than one way in. Companion has modules for each of the common routes.
| Way in | What it is | How Companion reaches it | Gear you will meet |
|---|---|---|---|
| Serial | An older one-to-one cable, often called RS-232 or RS-422, with its own command language | The Generic TCP Serial module turns a serial port on the Companion computer into a network port that other modules can use | Older projectors, displays, decks and routers |
| MIDI | The music-equipment control standard, on 5-pin cables, USB or the network | The Generic MIDI module, including network MIDI through rtpMIDI | Audio consoles, playback software, lighting consoles |
| HTTP | The web's language: a device answers addresses like a web page | The Generic HTTP module sends GET, POST, PUT, PATCH and DELETE requests | Cameras, encoders, displays and software with a web API |
| Keystrokes | Pressing keys on another computer as if someone sat at it | The VICREO Listener app on the target computer, reached over TCP port 10001 | PowerPoint, Keynote, any software with keyboard shortcuts |
| Wake-on-LAN | A network message that switches a sleeping computer on | The Generic Ping and Wake module | Playback and slide computers at the start of the day |
Keystrokes deserve a word of caution. A keystroke goes to whichever program is in front on the target computer. If a pop-up window has appeared over PowerPoint, the next-slide key goes to the pop-up. Chapter 13 teaches how to make keystroke control safe. On macOS, the VICREO Listener needs the Accessibility permission in System Settings before it can press keys.
Serial needs one more caution. A serial cable connects one device to one computer, so the Companion computer must be near the device or use a serial-to-network converter. Note the serial settings, such as the speed, on the IP sheet with the device.
How to do it
- Read the IP sheet and find the address and mask set aside for the Companion computer, such as 10.0.0.10 and 255.255.255.0.
- Plug a labelled Ethernet cable from the computer's wired port to the show switch.
- In the computer's network settings, set the wired adapter's IPv4 to manual and enter the address and mask. Leave the router field empty unless the sheet gives one.
- Confirm the computer shows the address you entered, not one beginning 169.254.
- Open a terminal or command prompt and type ping followed by a device's address, such as ping 10.0.0.20, to check that replies come back. Press Control and C to stop it on macOS and Linux.
- Repeat the ping for every device on the sheet, and mark each one as answering or not.
- For any device that does not answer, check its cable, its switch port light, and its own address and mask before blaming Companion.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| The Companion computer cannot reach anything on the show network | Its wired adapter is still on DHCP and gave itself a 169.254 address | Set a static address and mask from the IP sheet |
| One device answers sometimes and drops out at random | Two devices share one IP address | Unplug devices one at a time to find the clash, and give each its own address from the sheet |
| A rental laptop cannot see the playback computers | It arrived set to 192.168.1.x, a different subnet | Change it to the show subnet or ask whoever owns it to do so |
| Buttons work in rehearsal and lag during the show | The device is on Wi-Fi and the audience's phones filled the air | Wire every device you control |
| Ping works but Companion still cannot connect to the device | Wrong port, the device's control is switched off, or a firewall blocks the port | Check the port in the module and the manual, enable remote control on the device, and check the firewall |
| The ATEM's buttons stop working the morning after load-in | The ATEM was on DHCP and received a new address | Give it a static address or a DHCP reservation and update the IP sheet |
Practice it
The Brightwater Health 2027 rental company delivers a second PowerPoint computer for the awards segment. Its network settings show IP address 192.168.0.112, mask 255.255.255.0, and its slide software is controlled by keystrokes through the VICREO Listener. Your show subnet is 10.0.0.x with mask 255.255.255.0.
- You can explain an IP address, a subnet mask and a port in plain words.
- You can tell at a glance whether two addresses share a subnet.
- You can set a computer to a static address and check it with ping.
- You can say how TCP, UDP and OSC differ.
- You can explain why show networks are wired and kept separate.
- You can write and read an IP sheet.
- You can name four ways into gear other than a network module.
Getting Companion Running
Before a single button can be built, Companion needs a computer, an install, a first launch and a few settings changed. This chapter covers which computer to run it on, how to install it, the launcher and the web setup page, plugging in a deck, the settings to change first, and how to keep the version stable through a show.
Before a single button can be built, Companion needs a computer, an install, a first launch and a few settings changed.
Which computer runs it
Companion runs on Windows, macOS and Linux, on a Raspberry Pi, and in a Docker container on a Linux server. Bitfocus's advice for a beginner is to start on your main computer, and to move to another computer later if needed, since the setup can be exported and imported.
| Computer | Requirements stated by Bitfocus | When it fits |
|---|---|---|
| Mac | macOS 13.5 or newer, from Companion 5.0 | Operators who already carry a Mac to the show |
| Windows PC | Windows 10 or newer, 64-bit | Operators on Windows; small shows running vMix and Companion together |
| Linux computer | x64 or arm64; a desktop build and a headless build | A dedicated control computer in a rack |
| Raspberry Pi | Officially the Pi 4 and Pi 5 and their derivatives, using the CompanionPi image | A small, always-on control box with no screen |
| Docker on a Linux server | Images for linux/amd64 and linux/arm64; no USB pass-through | Installs where decks connect over the network through Satellite |
Bitfocus does not support Raspberry Pi models older than the Pi 4. It lists the reasons: too little power to drive a Stream Deck, Ethernet sharing a USB bus with the decks, too little memory and too slow a processor. Do not save money on an old Pi for a show.
Companion can share a computer with other show software. Bitfocus notes that smaller setups often run vMix and Companion together. That fits a one-operator stream where vMix is the only machine. On a larger show, a separate Companion computer fits better: if the playback or PowerPoint computer freezes, Companion keeps running and can still command the backup machine.
Whatever computer you choose, check four things. It needs a wired Ethernet port, or a reliable adapter. It needs enough USB ports, and enough USB power, for your decks. It must not sleep, lock or install updates during the show. And you need a second computer, or a second Pi, set up the same way as a spare.
Installing and first launch
Download Companion from the Bitfocus website. Bitfocus offers a Stable build, which is tested and updated every few months, and a Beta build, which has newer features and occasional bugs. Start on Stable, and run Stable on shows.
| System | How to install |
|---|---|
| Mac | Unzip the download and drag Companion.app into the Applications folder |
| Windows | Download, run the installer, then run Companion |
| Linux desktop | Extract the download and run companion-launcher; Companion will prompt you to add the USB permission rules, called udev rules, that Stream Decks need |
| Linux headless | Use Bitfocus's install script, which sets up the system, the companion user and the udev rules |
| Raspberry Pi | Write the CompanionPi image to a fast microSD card with a tool such as Raspberry Pi Imager |
| Docker | Run the published image with port 8000 and the Satellite ports open, and a volume at /companion so the setup is kept |
On a computer with a screen, Companion opens with a small launcher window. Here you choose which network the web setup page is offered on, labelled GUI Interface, and the port, which is 8000 by default. Under the word Running, the launcher shows the address to open in a browser. The Launch GUI button opens that page on the same computer. The launcher also offers Start minimized and, on macOS and Windows, Run at login, which starts Companion when you log in.
The cog at the top right of the launcher opens deeper settings: the log level, a Developer section for module writers, Syslog for sending logs to a logging server, and a section called Dangerous Features. That section holds Shell command support, which lets buttons run commands on the computer, and Restricted modules. Both are off by default. Leave them off unless you know why you need them, because they let code run on the computer that hosts Companion.
On a Raspberry Pi there is no launcher. The first boot takes a few minutes while the system expands to fill the card. You then open the setup page from another computer at the Pi's address and port 8000, for example http://10.0.0.10:8000. On a headless install the launch settings are changed with Bitfocus's config tool from the command line.
The first time you open the setup page, Companion offers a Configuration Wizard. It walks through Surfaces, Button Grid, Buttons, Services, Usage Stats, Password and Timezone. You can run it again later from the Settings menu. Bitfocus recommends Google Chrome for the setup page and notes problems with the built-in browsers of older Android and iOS devices.
The setup page
Everything in Companion is built in a web page served by Companion itself, called the admin interface. You open it in a browser at the Companion computer's address and port 8000, such as http://10.0.0.10:8000, or at the address the launcher shows. It can be opened from another computer on the show network as well, which is useful when the Companion computer is in a rack.
The page has a sidebar on the left with every section of Companion, a large main panel in the middle and a second panel on the right for details and settings. On a wide screen you can drag the divider between them; on a narrow screen the panels combine. A help menu sits at the top right of the header.
| Sidebar item | What it is for | Taught in |
|---|---|---|
| Connections | The devices Companion controls | Chapter 5 |
| Buttons | The button grid and its pages | Chapters 6 and 7 |
| Image Library | Pictures to use on keys | Chapter 6 |
| Surfaces | Stream Decks and other panels, including Remote surfaces | This chapter and Chapter 20 |
| Triggers | Actions that run on events or times instead of presses | Chapter 8 |
| Variables | Values from devices, and your own custom values | Chapter 8 |
| Modules | Installed modules and their versions | This chapter and Chapter 5 |
| Settings | Configuration Wizard, General, Buttons, Protocols, Backups, Advanced | This chapter and Chapter 21 |
| Import / Export | Saving and loading the whole setup | Chapters 6 and 21 |
| Log | Messages from Companion, for finding faults | Chapter 21 |
| Interactive Buttons | The Emulator and Web buttons pages | Chapter 20 |
Treat the admin interface as the keys to the show. Anyone who can open it can change or press any button. Bitfocus warns never to make it reachable from the internet, because doing so gives whoever finds it a way to run commands on your computer. On a show network that is closed to the outside, the risk is from people in the room; Settings to change first covers the password that keeps casual visitors out.
Plugging in a deck
Before plugging in, close the Elgato Stream Deck app if it is running. Then connect the deck by USB. Open the Surfaces page and the deck should appear in the list of configured surfaces with its model and a serial number. If it does not, press Rescan USB, or turn on Watch for new USB Devices so that Companion finds new decks by itself. On Linux, if Companion shows an alert about USB permissions, follow it to install the udev rules.
Click the deck in the list to open its settings. The ones to set on a show are its name, so that you know which deck is which, and the page it starts on.
| Surface setting | What it does | On a show |
|---|---|---|
| Surface Name | The name used everywhere for this deck | TRANSPORT and CUES, not two serial numbers |
| Surface Group | Links decks so they move together, or gives a deck a stable identity | Set up before the show so a spare can be swapped in, see Chapter 21 |
| Use Last Page At Startup and Startup Page | Which page the deck shows when Companion starts | Start each deck on its home page, not wherever it was left |
| Horizontal and Vertical Offset in grid | Which part of a larger grid a smaller deck shows | Lets two small decks share one page |
| Surface Rotation and Button rotation | Corrects a deck mounted on its side | Rack or bracket mounts |
| Brightness | Key brightness | Lower at a dark FOH or on a film set |
| Never pin code lock | Leaves this deck unlocked when PIN lockout is on | The operator's own deck |
Companion's button grid is 8 columns by 4 rows on a new install, the same as a Stream Deck XL. A deck with fewer keys shows part of the grid, starting at the top left unless you set an offset. The first column of a new page holds the page up, page number and page down keys that move a deck between pages; Chapter 6 explains them.
A good first test: open the Buttons page, type a word on one button, and watch it appear on the deck. Then press the key on the deck and watch the button flash in the browser. Hardware, software and the link between them are now working.
Settings to change first
Most of Companion's settings can stay as they are. A few are worth changing before you build anything, and a few belong to the computer rather than to Companion. Companion applies its settings as soon as you change them; there is no save button.
| Setting | Where | Change it to | Why |
|---|---|---|---|
| Installation Name | Settings, General | The position and show, such as BWH27 VIDEO MAIN | Tells two Companion installations apart in browser tabs and on the network |
| Watch for new USB Devices | Surfaces page settings | On | A deck plugged in later is found without a rescan |
| Auto-enable newly discovered surfaces | Surfaces page settings | Off if other software shares your decks | Lets you choose which decks Companion uses |
| Grid Size | Settings, Buttons | Big enough for your largest deck | A + XL or X-keys may need more than 8 by 4 |
| Admin UI Password | Settings, Advanced | On, with a password | Stops casual visitors; Bitfocus states it does not make the installation secure |
| Backups | Settings, Backups | A rule that saves the setup on a schedule | Gets you back up after a failure, see Chapter 21 |
| Protocols | Settings, Protocols | Only what your show needs switched on | Each one lets other devices press Companion's buttons |
The computer needs its own settings. Turn off sleep, screen savers and screen locks on the Companion computer, or set them longer than the longest show day. Postpone system updates until after the show. Set the wired adapter to its static address from the IP sheet, as Chapter 3 showed. Close any program that does not need to run.
One more Companion setting deserves care. The PIN lockout on the Surfaces page can lock every deck after a time without use and ask for a PIN. That is useful for a deck in a public place, and a hazard for an operator who must press a cue after a long speech. If you turn it on, use Never pin code lock on the operator's decks.
Versions and keeping it stable
Companion changes often. At the time of writing, the Stable build is version 5.1. Since version 4.0, the modules for show gear are separate downloads that update on their own schedule, and since version 4.3 the surface modules for panels are too. Updating Companion does not update your modules for you; you update each one by hand from the Connections or Modules page.
That gives you control, and with it a responsibility. A module update can change how a device behaves, and a Companion update can change how the setup page looks or works. On a show, the safest version is the one you rehearsed on.
| When | What to do with versions |
|---|---|
| Weeks before the show | Choose the Stable version and the module versions you will use, and build on them |
| Before any update | Export the whole setup so you can go back |
| Show week | Do not update Companion, modules or the operating system |
| On the spare computer | Install the same Companion and the same module versions |
| On a computer with no internet | Download the offline module bundle for your Companion version from the Bitfocus website and import it on the Modules page |
| After the show | Try updates on a copy of the setup, away from any show |
Each connection can run its own module version, so two ATEMs can even use different versions if one needs an older module. Companion marks modules that their maintainers have retired with a yellow Deprecated badge; when you see one, plan a move to the newer module after the show, not during it.
When you import a setup onto another computer, check on the Connections page that the module versions it needs are installed. Bitfocus's own guide reminds users to do this.
How to do it
- Choose the computer and its spare, and check each has wired Ethernet and enough USB ports for your decks.
- Set the wired adapter to its static address from the IP sheet, and turn off sleep, screen lock and automatic updates.
- Download and install the Stable build of Companion.
- Open Companion, choose the show network in GUI Interface, leave the port at 8000 unless the sheet says otherwise, and press Launch GUI.
- Run the Configuration Wizard, set the Installation Name, and set the grid size for your largest deck.
- Close the Elgato app, plug in each deck, give each a Surface Name and a Startup Page, and test one key on each.
- Set the Admin UI Password and a backup rule, then export the setup and install the same versions on the spare.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| The deck is not in the Surfaces list | The Elgato app holds it, the surface module is off, or Companion has not rescanned | Quit the Elgato app, check the surface module is enabled, press Rescan USB |
| The setup page will not open from another computer | GUI Interface is set to a network other than the show network | Choose the show network in the launcher and use the address shown under Running |
| Companion closed when the laptop went to sleep during a long speech | The computer's sleep settings were left on | Turn off sleep, screen lock and screen savers before the show |
| Buttons behave differently after an overnight update | Companion or a module was updated during the show week | Freeze versions in show week and restore the exported setup if needed |
| On a Raspberry Pi 3 the deck flickers and Companion is unstable | Bitfocus supports only the Pi 4 and Pi 5 | Use a Pi 4 or Pi 5, or a small computer |
| The decks are locked when the operator needs a cue | PIN lockout timed out on the operator's deck | Set Never pin code lock on the operator's decks, or set the timeout to 0 |
Practice it
You are setting up Companion for The Night Shift's playback department. The cart holds a MacBook, two playback computers and a monitor switcher. The cart sometimes sits idle for an hour while lighting is set, and the production office wants the laptop to install updates overnight.
- You can choose a computer for Companion and say why it fits the show.
- You can install Companion and use the launcher's GUI Interface, port and Launch GUI.
- You can find every main section of the setup page.
- You can plug in a deck, name it and set its startup page.
- You set the Installation Name, password, backups and computer sleep before building.
- You freeze Companion and module versions in show week.
Connections
A connection is Companion's link to one device. Until a device has a connection, no button can command it. This chapter explains what a connection is, how to add one, how to read its status, what to do when no module exists for your gear, and how to keep a show's connections tidy.
A connection is Companion's link to one device.
What a connection is
Think of a connection as an interpreter assigned to one person in a room. The interpreter knows that person's language, knows where they sit, and stays with them all day. When you want something from that person, you tell the interpreter. A Companion connection knows one device's control language and its address, and every button that commands that device goes through it.
Each connection is built on a module, the plugin written for a make of gear. The module supplies four things to your buttons: actions, the commands it can send; feedbacks, the states it can show on a key; variables, the values it can read back, such as a clip name or a time remaining; and often presets, ready-made buttons you can drag onto a page. Most modules are written and maintained by the Companion community.
| A module supplies | What it is | Example from an ATEM connection |
|---|---|---|
| Actions | Commands a button can send | ME: Set Program input |
| Feedbacks | States that change a key's look | A key turns red when camera 2 is on program |
| Variables | Values read back from the device | The name of the input on program |
| Presets | Ready-made buttons | A row of program and preview keys for each input |
Each device needs its own connection, even if two devices are the same model. Bitfocus's own example is two Barco E2 processors, which need two connections. On The Low Tides, Playback A and Playback B run the same software and still get one connection each, because each has its own address.
A module's help page is the first thing to read about any device. It lists what the module can do, which device models and software versions it has been tested with, and what must be set on the device for Companion to reach it. The ATEM module's help, for example, states that ATEMs must be controlled over a network and that USB control is not supported.
Adding a connection
Open the Connections page. The list on the right shows the modules you can add, with a search box. Since Companion 4.0, modules are downloaded from Bitfocus's module store rather than shipped inside Companion, so you may need to switch the list to show all available modules, not only the installed ones. On a computer with no internet, import the offline module bundle first from the Modules page.
Search for the device, choose it, and read its help from the same list before adding it. When you add it, a dialog asks which version of the module to use; installed versions are listed, and if the store is reachable Companion offers to install the latest. Then the connection's configuration opens in the right panel. Each module asks for what it needs. For the ATEM, the fields include Target IP, Model and Preset Style; Companion can also offer ATEMs it has found on the network. Fill in the fields and click Save.
Give every connection a clear label. The label appears wherever the connection is listed, and Companion also uses it in variable names, so a short, plain label such as atem or pbA makes later chapters easier. Labels like atem_1 or generic-tcp-udp_3 tell nobody anything at five minutes to doors.
| Device at Brightwater Health 2027 | Label | Address | What to fill in |
|---|---|---|---|
| ATEM switcher | atem | 10.0.0.20 | Target IP and Model from the help page |
| Playback A | pbA | 10.0.0.31 | Target address and port from the playback module's help |
| Playback B | pbB | 10.0.0.32 | Same module, its own connection and address |
| PowerPoint computer | ppt | 10.0.0.40 | Target IP and the keystroke app's port, TCP port 10001 for VICREO Listener |
Some devices must be told to accept remote control before any connection will work. QLab, for example, needs OSC access turned on in its own settings, and QLab 5 workspaces have an OSC passcode that must be entered in the Companion connection. The module's help page lists these steps; follow them on the device itself.
Reading connection status
Every connection shows a status in the Connections list. Learn to read it at a glance, because it is the first place to look when a button does nothing.
| What you see | What it means | What to do |
|---|---|---|
| Green tick | Good: Companion is talking to the device | Nothing |
| Spinner | Connecting: Companion is trying to reach the device | Wait a few seconds; if it keeps spinning, check the path |
| Yellow warning triangle | Warning: the connection works but the module reports a problem | Hover over it to read the message |
| Red warning triangle | Error: the connection is not working | Hover over it to read the message, then check address, cable and device |
| Grey power symbol | Disabled: the connection is switched off | Switch it on if the show needs it |
Hovering over a warning or an error shows the module's own message, which says more about what is wrong, such as a failed connection or a bad setting. A connection that stays red usually has one of the faults Chapter 3 describes: wrong address, wrong subnet, an unplugged cable, a firewall, or remote control switched off on the device.
For more detail, the menu at the end of each connection's row offers Help, Known Issues, Variables and View Logs. Variables is a quick live test: if the device's values, such as the input on program, change as the device changes, the connection is working. View Logs shows the module's own debug messages, which a module's authors may ask for when you report a bug.
Companion also counts connection states in internal variables, such as $(internal:instance_errors) for the number of connections with an error, and the status of each connection by its label. Companion also has internal feedbacks that show a connection's status on a key. Chapters 7 and 8 use these to build a status key, so a red key on the deck warns you before you press a cue that cannot land.
When there is no module (generic TCP/UDP/OSC/HTTP)
Bitfocus lists more than 700 supported devices and programs, but some gear will still be missing. If the device has a documented control protocol, you can usually reach it with one of the generic modules. They send exactly what you type and nothing more, so they need the device's protocol manual beside you.
| Generic module | What it sends | What you need from the manual | What it gives back |
|---|---|---|---|
| Generic TCP/UDP | Text commands or HEX commands, with an optional ending such as a carriage return | Target IP, Target Port, TCP or UDP, and the exact command strings | With TCP, the last reply can be saved in a variable |
| Generic OSC | OSC messages with no value, whole numbers, decimals, text or several values | IP, port, and the OSC addresses the device understands | Feedbacks that listen for OSC messages, and variables for the last message received |
| Generic HTTP | Web requests: GET, POST, PUT, PATCH and DELETE | The device's web API addresses and body format | Parts of the reply can be stored in custom variables |
| Generic MIDI | MIDI messages | The MIDI messages the device responds to | Incoming MIDI, including MIDI Time Code, as variables |
| Generic Ping and Wake | A ping, and a Wake-on-LAN message | The device's IP and MAC address | Whether the host is alive, as a feedback |
A generic connection is less helpful than a dedicated one. It usually knows nothing about the device's state, so keys cannot turn red when something is live unless you build that yourself from the replies. Test every command on the device in prep, write each one on the button's notes, and keep the protocol manual with the show files.
Bitfocus asks users of the generic modules to request a proper module for their device, on the companion-module-requests page on GitHub, so that others benefit. Some community members can be hired to write modules, and Bitfocus will quote for module work.
Never invent a command. If the manual does not list it, or you cannot test it before the show, it does not go on a button.
Keeping connections tidy
A show's Connections page should read like its IP sheet: one line per device, a clear label, the right address, and nothing left over from the last job. A tidy page is faster to check before doors and easier for a colleague to take over.
When the list grows, Companion's collections help. Click Create Collection above the connections table, name it, and drag connections into it. Collections can sit inside other collections. Each collection has its own enable switch, and switching a collection off disables every connection inside it; when it is switched back on, each connection returns to the state it had.
| Habit | Why it matters |
|---|---|
| Label every connection after the device and its role | Variables and logs make sense at a glance |
| Group connections into collections by department or by main and backup | One switch takes a whole group off or on |
| Disable a connection you do not need today instead of deleting it | Its buttons and settings stay ready for tomorrow |
| Delete connections left from old shows | They clutter the list and may show errors that hide new ones |
| Match every connection to a line on the IP sheet | Anyone can check the address in seconds |
| Watch for the yellow Deprecated badge | The module is retired; plan a move to its replacement after the show |
| Export the setup after every change to connections | The spare computer and the backup stay current |
One connection per device is also a courtesy to the device. Some gear accepts only a limited number of control connections, and a forgotten duplicate connection, or a second Companion pointed at the same device, can use up a slot another operator needs. Check the device's manual if you are sharing gear with another department.
Updating a connection's module is done from its configuration panel, with the pencil next to the version number. Saving restarts the connection. Do it outside show week, as Chapter 4 explains, and test every button that uses the connection afterwards.
How to do it
- Find the device on the IP sheet and ping its address from the Companion computer.
- On the Connections page, search for the device's module and read its help, including anything that must be switched on at the device.
- Enable remote control on the device as the help page describes.
- Add the connection, choose the module version, give it a clear label, enter the address and any other settings, and click Save.
- Wait for the green tick. If it stays red or yellow, hover over it, read the message and fix the cause.
- Open the connection's Variables and change something on the device to see the values follow.
- Build one test button with one harmless action, such as setting preview rather than program, press it, and confirm the device responds.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| The module you need is not in the list | The list shows only installed modules, or the computer has no internet | Switch the list to all available modules, or import the offline module bundle |
| The ATEM connection stays red with the right address | The ATEM is on a different subnet, or its cable is out | Ping it, then check its address and mask in ATEM Setup and its cable |
| QLab ignores every command | OSC access is off, or the QLab 5 passcode is missing or wrong | Turn on OSC access in QLab and enter the correct passcode in the connection |
| Variables show names like generic-tcp-udp_2 that nobody understands | Connections kept their default labels | Relabel each connection after the device and its role, before building buttons |
| A generic TCP command does nothing | The command string or its ending, such as a carriage return, does not match the manual | Copy the command and ending exactly from the protocol manual and test on the device |
| The second operator's panel stops controlling the shared device | The device's limited control connections are used up by a duplicate connection | Remove duplicate connections and agree who connects to shared gear |
Practice it
At Brightwater Health 2027 you add connections for the ATEM at 10.0.0.20, Playback A at 10.0.0.31 and Playback B at 10.0.0.32. The venue also has a house projector that has no Companion module, but its manual lists text commands over TCP. After adding everything, the ATEM shows a green tick, Playback A shows a red triangle and Playback B shows a green tick.
- You can explain a connection and a module, and what a module supplies.
- You can add a connection with the right module version, label and address.
- You can read the status icons and act on each.
- You can use Variables to prove a connection is live.
- You can choose a generic module when no dedicated one exists.
- You keep connections labelled, grouped and matched to the IP sheet.
Building a Button
A button is the smallest unit of show control: one key, one label, one or more commands. This chapter walks through building one in Bitfocus Companion, from where it sits on a page to what it sends on press and release, how its commands are ordered, how it looks, and how to copy and reuse it. Everything here is checked against Companion 5.1.2, the current release in November 2026.
A button is the smallest unit of show control: one key, one label, one or more commands.
Pages, rows and keys
Open Companion's admin page in a browser and click the Buttons tab. What you see is a grid of empty squares. Each square is a button, and the grid is one page. A Stream Deck plugged into the Companion computer shows part of that page on its keys: press a key on the deck and Companion runs whatever is on the matching square. The deck is only a window onto the grid. The buttons themselves live in Companion.
A new Companion installation starts with one page, and you can add as many as you like; Companion has allowed unlimited pages since version 3.5. Pages are listed in the Pages tab on the right of the grid, where you can add, reorder and name them. Name every page. A page called "BW Awards" tells you, and the next operator, exactly what it holds. A page called "7" does not.
The grid has a size, set in Settings under Button Grid with Configure Grid Size. A new installation uses 8 columns by 4 rows, which is 32 buttons, the same shape as a 32-key Stream Deck XL. The grid can grow in all four directions, so you can add rows above or columns to the left of what you already have. A smaller deck, such as the 15-key Stream Deck MK.2 with three rows of five keys, shows the top-left corner of the page unless you move it with that surface's Horizontal Offset in grid and Vertical Offset in grid settings on the Surfaces page.
Every button has an address written as page/row/column, for example 1/0/1. Rows and columns count from 0, so 1/0/0 is the top-left button of page 1 and 1/0/1 is the one to its right. You will see these addresses on the yellow top bar of each key (if the top bar is turned on) and you will type them whenever one button needs to point at another.
| Term | What it means | Where you set it |
|---|---|---|
| Page | One full grid of buttons, with a number and a name | Pages tab beside the grid |
| Grid size | How many rows and columns every page has; 8 columns by 4 rows on a new install | Settings, Button Grid, Configure Grid Size |
| Location | A button's address as page/row/column, counting rows and columns from 0 | Shown on the key's top bar and in the editor |
| Surface | Companion's word for any deck or panel that shows buttons | Surfaces page |
| Startup page | The page a surface shows when Companion starts | Surface settings, Startup Page or Use Last Page At Startup |
| Offset in grid | Which part of a large page a small deck shows | Surface settings, Horizontal and Vertical Offset in grid |
Moving between pages is done with buttons too. New pages put three navigation buttons in the first column: Page up, Page number and Page down. Pressing Page number takes the deck back to its startup page. If you clear them and later want them back, the Page actions menu (the three dots next to the page selector) has Recreate navigation buttons. Companion also has internal actions, Surface: Set to page, Surface: Increment page number and Surface: Decrement page number, so any button can jump a deck to a chosen page.
One warning from the Companion guide is worth learning before the first show: be careful when reordering pages or inserting a page into the middle of the list. Anything that points at a page by its number, such as a Surface: Set to page action, is not updated for you, and existing buttons can break. Add new pages at the end, and only reorder before the show is built.
The kinds of button
Click an empty square and Companion asks what kind of button to create. Most of the time the answer is a regular button.
| Type | What it does | When you use it |
|---|---|---|
| Regular button | Runs one or more actions and shows your label and colours | Almost every button on a show |
| Button reference | Mirrors another button: shows what it shows, and pressing it presses the other button | The same key on several pages, such as a CUT or a PANIC key |
| Page up | Moves the deck to the next page | Navigation |
| Page number | Shows the page number or name; pressing it returns the deck to its startup page | Navigation, and a quick way home |
| Page down | Moves the deck to the previous page | Navigation |
The three page buttons have built-in behaviour. To restyle one, open it and use Edit to Convert to Normal Button, which turns it into a regular button with the matching actions already filled in. That conversion is one way and cannot be undone.
Every button also has a Notes field near the top of the editor. Nothing typed there appears on the key. Use it to write why the button exists and what it fires: "Opener. Cuts ATEM to Playback A, takes clip 1 on A and B. Owner: video." Notes are what let you, or someone covering for you, understand a show file months later.
Starting from a preset
A connection is Companion's link to one piece of gear, covered in chapter 5. Many connections come with presets: ready-made buttons with a label, actions and feedbacks already set. They live in the Presets tab on the right of the grid, grouped by connection. Drag one onto a square and you have a working button. The Blackmagic ATEM module, for example, offers preset buttons for each input on preview and on program, already coloured to show which input is live.
Since Companion 5.1, presets can be placed two ways, chosen with the When placed toggle at the top of the Presets tab. Linked, the default where the module supports it, keeps the button tied to the preset: when the module improves the preset, the button updates too. You can still switch a linked button to another connection of the same module, and change the values that make it different, such as which input it selects. Copy places a one-off button you can edit freely. A linked button can be turned into a normal button at any time with Edit at the top of the editor; that cannot be undone.
Presets are written by the module author, so you cannot create your own. Not every module has them. The Companion guide's suggestion for building your own library is to keep pages of finished buttons and export them, which the last section of this chapter covers.
Actions on press and release
An action is one command sent to one connection: cut the ATEM, take a clip on Playback A, press the right-arrow key on the PowerPoint computer. A button can carry many actions, from many connections. You add them in the button's actions area by searching in the box or browsing with the folder button. As well as the modules' actions, Companion has its own internal actions for things like waiting, changing pages and setting variables.
A button has separate groups of actions for different moments. Press actions run when the key goes down. Release actions run when it comes back up. Most show buttons need only press actions, because you want the command to leave the moment your finger lands.
| Group | When it runs | Typical use |
|---|---|---|
| Press actions | The moment the key is pressed | Cuts, takes, GO, next slide |
| Release actions | When the key is released | Ending something that the press started, such as a talkback that stays open only while held |
| Duration group, run while held | Once the key has been held for the time you set; shown as Held for, then the time in milliseconds | A protected key that fires only after a deliberate hold |
| Duration group, run on release | On release, if the key was held at least that long; shown as Release after, then the time in milliseconds | A long press that does something different from a short press |
| Short release actions | On release, only if the key was let go before the first duration group's time | The normal action on a key that also has a long-press action |
| Rotate left and Rotate right actions | When the dial for that button is turned, if Rotary actions is enabled | Fader or volume on a Stream Deck + dial |
Duration groups are added with Add duration group. Each has a time and a choice, Execute while held, that decides whether it fires while you are still holding or when you let go. As soon as a button has a duration group, its Release actions are renamed Short release actions, because they now run only on a short press.
Holding is a useful safety tool. Put a dangerous command, such as a fade to black on the ATEM, in a duration group of 1,000 milliseconds with Execute while held ticked, and nothing happens unless the operator holds the key for a full second. A brush of the finger does nothing. Chapter 16 returns to protecting the dangerous buttons.
Many module actions have a Learn values button beside them, which Companion describes as capturing the current values from the device. Set the ATEM to the transition you want, press Learn values on the action, and the action's options fill in to match. A few modules also support the Action Recorder, which builds a list of actions while you operate the device itself. Very few modules support it, so check the module's Help first.
To try a button without a deck, choose the Press tool in the toolbar above the grid and click the button: it runs its actions, exactly as if pressed on a surface. Older versions pressed a button on Shift-click; Companion 5.1 replaced that with the Press tool. Because the press sends live commands, only test on gear that is safe to move, never on anything feeding the room or the stream.
Order and delays
When a button has several actions, it matters when each one leaves. By default, actions at the top level of a list are sent concurrently: all at once, in parallel, as fast as Companion can send them. For most buttons that is what you want. A key that takes the same clip on Playback A and Playback B should fire both together.
To hold something back, add the internal action Wait. Its setting is Time expression (ms), a time in milliseconds, so 1,000 is one second and 500 is half a second. A Wait delays every action that comes after it in the list. Since Companion 3.5 this replaces the separate delay setting older versions had on each action.
For more control, add the internal action Action Group. It holds other actions, including more groups, and its Execution mode decides how they run.
| Execution mode | What happens | When it fits |
|---|---|---|
| Concurrent | Actions are sent in parallel, broken up only by any Wait actions | Commands to different machines that should land together |
| Sequential | Each action waits for the one before it to finish before starting | A chain where order matters and you would rather not guess at small delays |
| Inherit | Follows the mode of the group it sits in | Groups nested inside other groups |
Sequential has one catch, stated in Companion's own tooltip: if a module does not report when a particular action has finished, the next action starts immediately. Many modules do report it, but not all. If the order is critical, test the button on the rig and, where a device needs time to settle, put a Wait in.
Here is a worked example from Brightwater Health 2027. The opener video sits in clip 1 on both playback machines, and the ATEM has Playback A on input 3. The opener key needs the video on screen first and the clip rolling a moment later, so nobody sees a frozen first frame cut away from.
| Order | Action | Connection |
|---|---|---|
| 1 | Load clip (id) and Take to Program, clip 1 | pbA (Playback A, 10.0.0.31) |
| 1 | Load clip (id) and Take to Program, clip 1 | pbB (Playback B, 10.0.0.32) |
| 2 | Wait, 200 ms | internal |
| 3 | ME: Set Program input, input 3 | atem (ATEM, 10.0.0.20) |
The two takes leave together, so A and B stay in step, and the ATEM cuts a fifth of a second later. Whether that delay belongs there, and how long it is, depends on the machines; rehearse it and adjust it. The point is that the order is written on the button, not left to luck.
Companion also has Logic: If statement, which runs its Then actions only when its conditions are true and its Else actions otherwise, and Logic: While loop, which repeats while its conditions are true. The guide warns that a While loop with no Wait inside repeats as fast as it can, up to hundreds of times a second, flooding your devices with commands; a Wait of even 100 milliseconds inside the loop prevents that.
Once a button is running, a green play arrow appears among its status icons while actions are still running or queued, for example during a Wait. Right-click the button in the grid and choose Abort Actions to stop what is still pending, and the internal actions Actions: Abort button runs and Actions: Abort all button and trigger runs do the same from another key. Keep an abort key on the page if you build long sequences.
Buttons that step
A stepping button does something different each time it is pressed. In Companion this is done with steps, which since version 3.0 replace the older Latch setting. Open a button and click Add step: a second tab of actions appears. The first press runs Step 1, the next press runs Step 2, and the button keeps cycling. You can add as many steps as you need, and each step has its own press and release actions.
How a button moves between steps is set with Step Progression in the button's options.
| Step Progression | How the step changes | When it fits |
|---|---|---|
| On button release | Moves to the next step every time the key is released; the default | Simple toggles, such as a projector shutter: close on step 1, open on step 2 |
| Manual | Changes only when an action sets it, such as Button: Set current step or Button: Skip step | Buttons whose step another key or a trigger controls |
| Expression | The current step is calculated from an expression, for example from a variable | A key that follows a device's state rather than counting presses |
Steps are handy, and they carry a risk on a show: a stepping button only knows how many times it has been pressed, not what the device is actually doing. If a Play/Pause key is on step 2 and someone pauses the machine with its own mouse, the next press sends the wrong command. Two ways round it both work. One is separate keys, PLAY and PAUSE, which always send the same thing. The other is a stepping key whose step follows the device, using Step Progression set to Expression with a variable the module reports. Use separate keys for anything that goes to air, and stepping keys where a wrong press is harmless.
The current step is visible: with the top bar on, the key shows its step, and the internal feedback Button: Check step can change the key's colour on a chosen step, which chapter 7 covers.
Naming and colour
A label is the operator's only guide to what a key does, often read in the dark, at speed, out of the corner of an eye. Good labels are short, in capitals or a consistent case, and name the outcome, not the mechanism: "OPENER" not "PB A CLIP 1 TAKE". Colour then tells you the family the key belongs to before you have read a word.
Companion 5.0 rebuilt how buttons are drawn. Instead of one fixed style, a button is a stack of graphics elements, layered like an image editor, edited in the button's Style tab. A new button starts with a Background element, which is a Box filling the whole key, and a Text element on top. Elements higher in the list are drawn over the ones below.
| Element | What it is for |
|---|---|
| Text | A label, a variable or the result of an expression |
| Image | An icon, logo or picture, uploaded or from the Image Library |
| Box | A filled rectangle with optional rounded corners and border; the Background is a Box |
| Line | A straight line, for dividers |
| Circle | A circle or arc, for indicator dots |
| Gauge | A bar or ring that shows a value, such as a level or progress |
| Group | A container that moves and reuses several elements together |
| Reference | Mirrors the graphics of another button |
The Text element's Button text string holds the label. To force a second line, type a backslash and n where the break should go, so OPENER\nVIDEO prints on two lines. Font can be Default or Monospace; Monospace keeps numbers lined up, which suits timers. Weight is Normal or Bold, and Styles adds italic, underline or strikethrough.
Text size changed in 5.0. Text Size is now a percentage of the Text element's height, and Shrink to fit, when ticked, lets Companion shrink the text below that size if it would not otherwise fit, down to a tenth of the element's height. Set a comfortable size, tick Shrink to fit, and a short label stays big while a long one still fits. Colour sets the text colour, and Outline Colour draws a contrasting edge round each letter, which keeps text readable over a picture.
Images go in an Image element. You can upload a file straight onto the button or pick one from the Image Library in the sidebar. The library takes standard formats such as PNG, JPEG and SVG, and its page notes that square images of 72 by 72 pixels or larger generally look best, since Companion scales them to fit. Older Companion versions spoke of a PNG background; today the same job is an Image element. Use the library when the same picture appears on many keys: replace it once and every key follows. Fill Mode sets whether the picture is fitted whole, fills the key and crops, or is cropped without scaling.
Since 5.1, the Pinned view in the elements list gathers the properties you change most often, the text, its size and colour, and the background colour, in one place. Leave Pinned selected and every button you click opens straight onto its label and colours, which makes relabelling a page of keys quick.
The Canvas, at the bottom of the elements list, controls the frame around the key. Decoration can show the Top bar, with the button's location and its current step; Border when pressed, which hides the bar and draws a coloured border while the key is down; or None. The global default lives in Settings under Buttons. Show status icons controls the small icons in the top-right corner.
| Status icon | What it is telling you |
|---|---|
| Red triangle | A connection this button uses is in an error state |
| Orange triangle | A connection this button uses has a warning |
| Green play arrow | Actions on this button are running or queued |
Leave status icons on for show buttons. A red triangle on the OPENER key during the line check tells you Playback A has dropped off the network before you find out on the cue.
A colour plan for the show
Decide colours once per show and write them on the paperwork. The exact colours are yours; the discipline is that each colour means one thing everywhere on every deck.
| Colour | Means | Example keys |
|---|---|---|
| Red | Reserved for on air: program tally, live, recording | Kept for feedback, not used as a resting colour |
| Green | Reserved for preview and ready | Kept for feedback |
| Blue | Playback transport | PLAY, PAUSE, STOP, NEXT, PREV |
| Purple | Run-of-show cues | WALK-IN, VOG, OPENER, AWARDS |
| Grey | Navigation and utilities | Page keys, HOME |
| Orange | Protected or dangerous | FADE TO BLACK, PANIC, both hold-to-fire |
Keep red and green out of resting colours, because they belong to tally, which chapter 7 explains. A key that is red all the time teaches the operator to ignore red.
Copying, importing and reusing
Most of a show file is copies of a few good buttons. The toolbar above the grid chooses what a click does. Select, the default, opens a button in the editor; you can also drag a box across the grid, Shift-click a range or Ctrl-click (Cmd-click on a Mac) to select several. Multi adds each click to the selection, which is easiest on a touchscreen. Arrange lets you drag buttons to new places. Press runs a button's actions.
The second group of tools rearranges: Copy, Move, Swap and Delete. Pick a tool, click the button, then click where it should go, which can be on another page. The tool stays active, so you can stamp the same button several times; press Escape to go back to Select. Right-clicking a button gives Copy, Cut, Paste here, Swap here, Paste as reference and Clear, and when several buttons are selected the menu acts on all of them. The usual keyboard shortcuts work when the grid has focus: Ctrl or Cmd with C, X and V to copy, cut and paste, Delete to clear after a confirmation, and Page Up and Page Down to change page.
A Button reference, added in 5.1, is a live copy rather than a duplicate. Its only setting, Mirrored location, is the address of the button to mirror, such as 1/0/1. It looks exactly like that button and pressing it presses that button. Put one CUT key on page 1 and a reference to it on every other page, and there is only one CUT to maintain. If the location is empty or invalid the key shows Unresolved Reference.
Whole pages travel too. The Page actions menu has Export page, which saves that page's buttons to a file. The Import / Export page saves or loads a whole configuration as a .companionconfig file, in Compressed (the default and the smallest), JSON or YAML format. On import, the Full import tab chooses which parts of a file to bring in, and the Buttons and Triggers tabs import just some pages or triggers and can remap their connections, so a page built for one ATEM can be pointed at the ATEM on the next show.
| Import option | What it does |
|---|---|
| Import, Preserving unselected components | Replaces only the parts you selected and leaves the rest of the setup alone |
| Full Reset then Import | Resets everything, then imports only the selected parts |
| Buttons tab | Imports chosen pages, with an option to remap connections |
| Triggers tab | Imports chosen triggers, with an option to remap connections |
The guide's advice is to export your current configuration before any import, in case you make a mistake. Two details catch people out. When you import a page into a different page number, button references are not adjusted, so check them. And since Companion 4.0 modules are separate downloads, so the computer you import onto needs the right module versions installed; the Connections page lets you choose and install them.
Over time, build a library: a page of transport keys, a page of ATEM keys, a page of PowerPoint keys, each exported to a file named for what it holds. A new show then starts from tested buttons rather than from an empty grid.
How to do it
- Write down what the key must do in one sentence, and which machines it touches, before opening Companion.
- On a named page, click the square where the key belongs and choose Regular button, or drag a preset if one does the job.
- Add the press actions in the order they should leave. Add a Wait where a machine needs time, or an Action Group set to Sequential where order matters.
- If the key is dangerous, move its action into a duration group with Execute while held, so it fires only on a deliberate hold.
- Label it with the outcome, in the show's colour for its family, with status icons left on. Write what it does in Notes.
- Test it with the Press tool or the deck on gear that is safe to move, watching each machine respond in the right order.
- Export the page, and copy the key with Copy or a Button reference wherever else it is needed.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| A key fires two machines but they land out of step | A Wait sits between their actions, or one is inside a Sequential group | Put the commands that must land together at the same level with no Wait between them |
| A Play/Pause key sends Pause when the clip is already paused | It is a stepping key counting presses while someone used the machine's own controls | Use separate PLAY and PAUSE keys for anything on air, or make the step follow the device with an Expression |
| A key on another page now jumps to the wrong page | A page was inserted or reordered and page-number references were not updated | Add new pages at the end and check every Surface: Set to page action after reordering |
| An imported page shows Unresolved Reference on some keys | Button references kept their old addresses when the page landed on a new number | Edit each reference's Mirrored location to the new page number |
| A sequence carries on after the director has called a hold | The rest of the actions were still queued behind a Wait | Use Abort Actions, and keep an abort key on any page with long sequences |
| A long label is unreadable on the key | Text Size fixed too large with Shrink to fit off, or too many words | Shorten the label to the outcome, split it with a line break and tick Shrink to fit |
Practice it
Brightwater Health 2027. You are building the key that starts the awards segment. When pressed, the awards sting must roll on Playback A and Playback B (clip 5 on both), and half a second later the ATEM must cut to Playback A on input 3. The director also wants a FADE TO BLACK key on the same page that cannot be fired by accident.
- You can find any button by its page/row/column address.
- You know when to use press, release and duration actions.
- You can make two commands land together, or one after another, on purpose.
- You can build a stepping key and explain when separate keys are safer.
- You can label and colour a key so it reads in the dark.
- You can copy, reference, export and import buttons and pages.
- You never test a new button on anything feeding the room.
Buttons That Show State
A key that only sends commands leaves you guessing whether they arrived. A key that shows state tells you what is live, what is next and how long is left, so you can work by looking at the deck instead of turning round to every screen. This chapter covers feedbacks, tally colours, time and state on the key, and how much one key can carry, as they work in Companion 5.1.2.
A key that only sends commands leaves you guessing whether they arrived.
Feedbacks
A feedback is a rule that changes how a key looks, on its own, based on what is happening. The Companion guide's examples are exactly the ones a show needs: a key that turns red when a camera goes live, shows a different label when a mixer channel is muted, or lights up while a layer is on air. Nobody presses anything; the key changes because the gear changed.
The information comes back from the gear. When you add a connection, many modules do not only send commands, they also listen to the device and keep track of its state. The ATEM module knows which input is on program and which is on preview. The QLab module, in TCP mode, knows which cue is running. That state is what feedbacks read. It follows that feedback only works when the connection is talking both ways: if a device cannot report its state, or the module does not ask, the key cannot show it.
| Where a feedback comes from | What it can show | Example |
|---|---|---|
| A connection's module | Whatever the module reads back from the device | ATEM Tally: Program lights the key for the input on air |
| Companion's internal feedbacks | Logic on variables, connection status, button steps, surface pages | Variable: Check value turns a key orange while a custom variable is armed |
Feedbacks are added in the button editor, in the feedbacks list under the actions. Some modules' feedbacks have a Learn values button too, which fills the feedback's options from the device's current state.
Feedback is information, never a guarantee. A green key means Companion believes something, based on the last thing the device reported. Before doors, check each feedback against the device itself once: put Camera 2 on preview at the ATEM and make sure the right key turns green.
How a feedback changes a key
Companion 5.0 changed how feedbacks work, because buttons are now built from layered elements (chapter 6). A boolean feedback no longer sets a single button style. It overrides properties on chosen elements while its condition is true. Each feedback has a Style Overrides table. Click the plus sign to open Add Element Properties, pick which element to affect, such as the Background or the Text, pick which properties to change, such as Colour, and set the value. While the feedback is true, those values replace the element's own.
A feedback with no overrides does nothing, and Companion says so. One feedback can carry several overrides: turn the Background red and the Text white together, so the change is unmistakable.
Order matters when two feedbacks change the same property. Feedbacks are applied from the top of the list down, so the one lower in the list wins. The guide flags that this is the opposite of Companion 4.x, where the higher one won. A file built under 4.x is converted automatically to target the standard Text, Image and Background elements so it looks the same, but if you rearrange feedbacks after upgrading, remember the new rule. Put the most important state, usually program tally, at the bottom so it beats everything else.
| Feedback type | How it restyles the key | Example |
|---|---|---|
| Boolean | On or off: while true, its overrides apply | Tally: Program, Variable: Check value |
| Value | Produces a value, such as a level or a name; each override is an expression that can use $(this:value) | A fader level shown as text, or text that turns red above a threshold |
| Legacy style | Some older module feedbacks return a whole style; each override copies one of its properties onto an element | A module's own status colour |
| Generated image | Some modules draw a complete image for the key | A module's status picture |
Hover over the icon beside the Style Overrides heading to see which type a feedback is. Since 5.1, value feedbacks can restyle a key. The guide's example turns text red when a level goes above minus 6: the override is the expression $(this:value) > -6 ? 0xff4040 : 0xffffff, which returns red if the value is above minus 6 and white otherwise.
There is now a second route to a key that reacts. Every property of every element can be an expression instead of a fixed value, switched with the button at the end of its row, and it redraws whenever a variable it uses changes. A Text element's Colour can be an expression that returns red or green; its Enabled field can be blink(500) to make it flash. The guide's advice is to use whichever is clearer for the button. Feedbacks suit state that comes from a connection, and several changes that switch on and off together as one rule. Expressions suit a single property driven by a variable.
Feedbacks Companion provides itself
Companion's internal connection supplies feedbacks that do not depend on any device. These are the ones you will use most on a show.
| Internal feedback | What it checks | Show use |
|---|---|---|
| Variable: Check value | Whether a variable equals, does not equal, or is above or below a value | Show which presenter is next, or that a cue is armed |
| Variable: Compare two variables | One variable against another | Show when the running clip matches the one you expect |
| Variable: Check boolean expression | Whether an expression is true | Turn a countdown key orange under one minute |
| Connection: Check Status | A connection's state, with colours for OK, warning, error and disabled | A health key per machine on the utility page |
| Connection: When matches specified status | Whether a connection is in the state you chose | Flash a key if Playback B is in error |
| Button: Check step | Whether a stepping button is on a given step | Colour a two-step key differently on each step |
| Surface: When on the selected page | Whether a surface is on a given page | Show on the cue deck which page the other deck is on |
| Logic: Operation | Combines conditions with AND, OR or XOR | Light a key only when both playback machines are OK |
Connection: Check Status deserves a key of its own for every machine you depend on. Built once per connection, the row of keys reads like a dashboard: Playback A green, Playback B green, PowerPoint orange. Companion also shows the same problem on each affected key, with the red and orange triangles among its status icons. Between the two, a dropped machine is visible on the deck before its cue, not on it.
Tally colours
Tally is the light that says what is live. It comes from television, where a red lamp on top of a camera tells the camera operator and the presenter that the camera is on program, the output going to air, to the screens or to the stream. Preview, the source lined up to go next, is shown in green. Switcher panels use the same language: the program row lights red and the preview row green. On a deck, tally means the keys follow the same rule.
The ATEM module shows how a module carries tally. Its feedbacks include Tally: Program, which by default turns the key's background red with white text when the ATEM reports the chosen input as on program, and Tally: Preview, which by default turns it green with black text when the input is on preview. It also has ME: One ME program source and ME: One ME preview source, which check one mix effect bus only. The module's preset buttons for program and preview use a black key with white text that turns green for preview and red for program.
| Colour | Means | Rule on the deck |
|---|---|---|
| Red | Program: live, on air, recording | Only ever shown by feedback, never as a resting colour |
| Green | Preview: next, ready, armed and safe | Only ever shown by feedback |
| Resting colour | The key's family, such as blue for transport or purple for cues | What the key looks like when nothing is live |
| Flashing | Needs attention now | Kept for faults and warnings, used sparingly |
Keep tally colours for tally. If a red background means program on the ATEM keys, nothing else on any deck should rest in red. Then a single glance answers the question every operator asks most: what is on the screens right now?
Tally is not only for switchers. A playback key can show which clip is running, a QLab key can turn red while its cue is playing (the QLab module has feedbacks such as Show Cue # is Running), and a mic key can show muted or open. Use the same meaning. Red is what the audience is seeing or hearing now; green is what is lined up.
Some decks do not have full colour screens. The Companion guide notes that some surfaces show a button's state more simply, with a coloured LED or a ring of lights, and Companion normally picks which element to use for that. If it picks the wrong one, set that element's External Usage to Colour so the LED follows the tally colour.
Time and state on the key
A key's text can hold a variable as well as a fixed label, and the variable updates on the key as it changes. Chapter 8 covers variables fully. Here are the ones that matter most for showing state: the time, what is on program, and what is playing.
| What you want on the key | Variable | Comes from |
|---|---|---|
| Time of day | $(internal:time_hms) or $(internal:time_hm) | Companion itself |
| The input on program | $(atem:pgm1_input) | The ATEM module, for mix effect 1, with a connection labelled atem |
| The input on preview | $(atem:pvw1_input) | The ATEM module |
| Time left on the running QLab cue | $(qlab:r_hhmmss) or $(qlab:r_left) | The QLab module in TCP mode, with a connection labelled qlab |
| Name of the running QLab cue | $(qlab:r_name) | The QLab module in TCP mode |
| The live and pending lighting cue | $(eos:cue_active_num) and $(eos:cue_pending_num) | The ETC Eos module, with a connection labelled eos |
The part before the colon is the connection's label, which you set when you add the connection. The QLab module's own Help calls its default label qlabfb, so either keep it or rename it to something short before you build keys on it. Each module's variables are listed under Variables in the connection's menu on the Connections page.
A Text element can also be switched to Expression mode, which does calculations. The guide's example is a countdown to a 19:30 show start: secondsToTimestamp(max(0, timeDiff($(internal:time_hms), '19:30:00')), 'HH:mm:ss'). Put that on a key with the Monospace font and the digits do not jump about as they change. A countdown to a speaker's end time, a clock showing the show's local time, and the remaining time on a clip are the three most useful time keys on a corporate show.
Since Companion 5.0 a Gauge element shows a number as a bar or a ring that fills as the value rises. It has Minimum and Maximum, and Colour stops that change the fill colour at chosen values. A gauge across the bottom of a playback key, filling as the clip plays and turning orange near the end, tells you more at a glance than any number. It needs a variable the module provides, such as QLab's seconds elapsed and total run time.
The key's own state is visible too. With the top bar on, a stepping key shows its step, and while a key is held the top bar fills with colour or, in Border when pressed mode, a border is drawn. The guide notes that this pressed look stays on if a key was pressed by an action without a matching release, which is a clue when a key looks stuck.
Time keys for Brightwater Health 2027
| Key | Shows | Built with |
|---|---|---|
| CLOCK | Local time, hours and minutes | Text: $(internal:time_hm) |
| TO DOORS | Countdown to doors at 08:30 | Expression with timeDiff and secondsToTimestamp, Monospace font |
| PGM | Name of the ATEM input on program | Text: $(atem:pgm1_input) |
| CLIP LEFT | Time left on the opener video | A remaining-time variable from the playback module, if the module offers one; check its Variables list |
Too much on one key
A Stream Deck key is small; the guide's own aspect-ratio previews exist because keys come in several shapes, most of them square. It is tempting to put a label, a clock, a gauge, an icon and two feedbacks on one key. On a show, the operator reads the key from half a metre away, in the dark, while listening to the director. One key should answer one question.
| Overloaded key | Why it fails | Split it into |
|---|---|---|
| A label, a timer and a clip name | Three things to read in one glance; the timer shrinks to fit and becomes unreadable | A cue key with its label, and a separate CLIP LEFT key beside it |
| Red for live and red for error | Two meanings for one colour | Red for program only; a status icon or flashing orange for faults |
| Several feedbacks changing the background | The lowest one always wins and the others never show | One background feedback; show other states on the text or a small dot |
| A long cue name from the device | The text shrinks below readable size | A short fixed label, with the full name in the key's Notes |
A working rule is two lines of text at most, one colour that means something, and one optional gauge or dot. If a key needs more, it needs a neighbour. Information keys that only show state, such as CLOCK or PGM, can have no actions at all; give them a resting colour that is clearly different from keys that fire things, so nobody presses one expecting a cue.
Blinking is the loudest thing a key can do, and it stops meaning anything if it is used everywhere. Keep blink() for faults that need you now, such as a playback machine in error, and nowhere else.
How to do it
- Check the ATEM connection is OK and that its state is updating: change preview on the ATEM and watch the module's preview variable change on the Variables list.
- On each input key, add the ATEM feedback Tally: Preview, pick the key's input, and check its overrides set the Background to green.
- Add Tally: Program below it, so it wins when an input is on both, with overrides for a red Background and white Text.
- Set every key's resting Background to a colour that is neither red nor green.
- Put each input on preview and then on program at the switcher, and check the matching key changes each time.
- Add a Connection: Check Status key for the ATEM, so a dropped connection is visible before a stale tally misleads anyone.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| A tally key shows green while the input is on program | The preview feedback sits below the program feedback, so it wins | Move the program feedback to the bottom of the list |
| Keys stop changing but still show the old tally | The connection has dropped and feedback shows the last state reported | Keep status icons on and a Connection: Check Status key per machine; check the connection |
| A QLab time variable stays blank | The QLab connection is not in TCP mode, which its variables and feedbacks require | Tick Use TCP? in the connection's configuration |
| A key's text shows the variable name instead of its value | The connection label in the variable does not match the connection, or the variable is mistyped | Copy the variable from the connection's Variables list |
| An operator presses the CLOCK key expecting a cue | Information keys look like cue keys | Give display-only keys a distinct resting colour and keep them in one place |
Practice it
The Night Shift. On a hotel-room set, Leo watches the news on a wall TV fed from Playback A, and his laptop on the desk shows a looping clip from Playback B. The director wants to know at a glance which machine is playing, and the first assistant director wants to see when the news clip will end so the line about Nora Vance lands on time.
- You can add a feedback and set its style overrides on the right element.
- You know that the lowest feedback in the list wins in Companion 5.
- Red and green appear only as tally on every deck.
- Every machine you depend on has a status key.
- You can put the time, the program source or time left on a key.
- Each key answers one question and reads from half a metre away.
Variables and Triggers
Variables let a key show and use information that changes: the time, the clip on air, the next presenter. Triggers let Companion act without anyone pressing a key: at a time of day, when a value changes, when Companion starts. Together they turn a panel of buttons into a small control system, and they need care, because a trigger can fire a command when nobody is watching. Everything here is checked against Companion 5.1.2.
Variables let a key show and use information that changes: the time, the clip on air, the next presenter.
What a variable is
A variable is a named box that holds a value. The name stays the same while the value inside changes. On a show, plenty of things change all the time: the clock, the input on program, the cue running in QLab, the slide number. Companion keeps each of those in a variable, so a key, an action or a trigger can use the current value without anyone retyping it.
Every variable is written the same way: a dollar sign, then in brackets the source and the name with a colon between, such as $(internal:time_hms). The source is internal for Companion's own variables, the connection's label for a module's variables, or custom for the ones you make. You can see most of them on the Variables page, split by type. Any input field that accepts variables shows a small variables icon; fields without it usually do not.
| Kind | Written as | Who sets it | Example |
|---|---|---|---|
| Connection variable | $(label:name) | The module, from the device; read-only | $(atem:pgm1_input), the input on program |
| Internal variable | $(internal:name) | Companion itself; read-only | $(internal:time_hms), $(internal:instance_errors) |
| Custom variable | $(custom:name) | You, and actions you build | $(custom:next_speaker) |
| Expression variable | $(expression:name) | Recalculated from an expression you write | $(expression:to_doors), a countdown that updates every second |
| Local variable | $(local:name) | Belongs to one button, trigger or expression variable | A counter on one key |
| Page variable | $(page:name) | Shared by every button on one page | $(page:presenter) on a page set up for one speaker |
| Built-in button values | $(this:name) | Companion, about the button itself | $(this:page), $(this:step) |
Connection variables are read-only and only exist if the module provides them; not every module does. Look under Variables in the connection's menu on the Connections page to see exactly what each one offers. The internal variables include the date and time, from $(internal:time_hms) to $(internal:date_monthname), and the health of your connections, such as $(internal:instance_errors), the number of connections in error, and $(internal:connection_atem_status) for one connection labelled atem, which reads good, warning, error or disabled.
Because a connection variable starts with the connection's label, pick short, clear labels when you add connections and keep them for the run of the show: atem, pbA, pbB, ppt. Every key that shows $(pbA:...) depends on that label.
Variables on keys
The most common use is text on a key. In a Text element, the Button text string in Variables mode is plain text with variables dropped in. PGM $(atem:pgm1_input) shows the word PGM and the name of the ATEM input on program. When the input changes, the key changes.
Variables also go inside action and feedback options wherever the variables icon appears. A key that sends the PowerPoint computer to a slide number can take that number from a variable. A feedback can compare a module's variable with a value. And with a button reference (chapter 6), even the location being mirrored can contain a variable.
| Key | Text on the key | What the operator sees |
|---|---|---|
| Clock | $(internal:time_hm) | 08:42 |
| Program | PGM $(atem:pgm1_input) | PGM followed by the ATEM's name for the input |
| QLab running | $(qlab:r_name) $(qlab:r_left) | The running cue's name and time left, with QLab in TCP mode |
| Lighting | LX $(eos:cue_active_num) | LX followed by the active Eos cue number |
| Next presenter | NEXT $(custom:next_speaker) | NEXT followed by whatever you last set |
Companion also gives each button some values about itself under this, such as $(this:page), $(this:row), $(this:column), $(this:step) and $(this:actions_running). They are useful when you copy one key across a page and want each copy to know where it is, and they are what makes a key like $(this:page)/0/0 point at the top-left key of its own page.
Page variables, added in 5.1, belong to a page and are shared by all its buttons as $(page:name). They are made in the Page Variables tab next to the grid. On Brightwater Health 2027, a page variable called presenter could hold Dana Okafor on one page and Martin Lowe on a copy of it, so the same buttons label themselves for each speaker. Page variables travel with the page when it is exported. Triggers do not belong to a page, so they cannot read page variables, though they can set them.
Custom variables
Custom variables are the ones you create, on the Variables page. Each has a name, a Current value, a Startup value used when Companion restarts, and a Persist value option that keeps the current value across a restart. The guide notes that persisting increases disk activity, so use it only where losing the value would hurt.
A custom variable can hold text, a number, true or false, a list or a structured object. The value field has a switch: T for text, or the curly-bracket symbol for JSON, where you type a number, true or false, or a list such as ["Dana Okafor","Martin Lowe"]. Text is easier to enter in text mode.
Three internal actions change them: Custom Variable: Set value, Custom Variable: Reset to startup value, and Custom Variable: Write current value to startup value. Set value accepts an expression, and inside it $(this:current) is the variable's current value, so $(this:current) + 1 counts up by one. Some module actions also return a result, and those actions offer a Store Action Result option that writes the result into a custom, page or local variable.
| Custom variable | Holds | Set by | Used for |
|---|---|---|---|
| next_speaker | The name of the next presenter | A key per presenter on the run-of-show page | A NEXT key the stage manager can read |
| award_no | Which award is up, as a number | AWARD + and AWARD - keys using $(this:current) + 1 and - 1 | Labels and which clip the AWARDS key takes |
| armed | true or false | An ARM key | A safety condition on dangerous keys and triggers |
| show_mode | rehearsal or show | A key on the utility page | Turning triggers on only in show mode |
The guide's own description of what custom variables are good for includes aliases for values you may need to change, so you update them once rather than in hundreds of places. On a show, that is the clip number for the opener, or the slide number where the awards section starts. When the client moves the awards slide, you change one variable instead of six buttons.
Local variables, available since 4.1, live inside one button, trigger or expression variable as $(local:name) and cannot be read from outside it. They can take a value you set, the result of an expression, or the state of a feedback, which lets one key build its own logic without cluttering the shared list.
Expressions
An expression is a small formula. Where a normal field only swaps variables into text, an expression can do maths, compare values, make decisions and format text. Text inside an expression is quoted, numbers are not, and true and false are written as words.
| Expression | Result |
|---|---|
| $(custom:award_no) + 1 | The next award number |
| $(custom:armed) ? 'ARMED' : 'SAFE' | ARMED if armed is true, otherwise SAFE |
| secondsToTimestamp(685, 'mm:ss') | 11:25 |
| timeDiff($(internal:time_hms), '18:00:00') | Seconds until 18:00, negative afterwards |
| blink(1000) | Switches on and off once a second; used on an element's Enabled field |
The question mark form is the one you will use most: a condition, then what to return if it is true, a colon, and what to return if it is false. Expressions work in button text in Expression mode, in any element property, in the value of Custom Variable: Set value, in the internal feedback Variable: Check boolean expression, in expression variables and local variables, and in trigger conditions. Since 4.3, modules can support expressions in any action or feedback field, shown by an expression toggle beside the field; not every module has been updated yet.
The guide points out the most common confusion. In a normal text field, Cam $(atem:input_1_name) prints the word Cam and the variable. In an expression field the whole field is one formula, so the same text is an error; text must be in quotes. If a field shows an error, check which mode it is in.
Expression variables, made on the Variables page, hold an expression that recalculates automatically. Build a countdown once as an expression variable and every key that shows it reads the same number.
Triggers
A trigger is a set of actions that runs when something happens, instead of when someone presses a key. Triggers live in the Triggers tab. Click Add Trigger, give it a name, and fill in its three parts. A new trigger starts disabled, so it cannot run until you are ready.
| Part | What it is | Example |
|---|---|---|
| Events | When the trigger fires; it fires on any of the events listed | Time of Day, 08:25 |
| Condition | A filter: the actions run only if every condition is true, using the same feedbacks as buttons | Variable: Check value, show_mode equals show |
| Actions | What happens; any action a button can use | Button: Trigger press and release on the WALK-IN key |
The events available in Companion 5.1.2, as named in the program, are these.
| Event | Fires | Show use |
|---|---|---|
| Time Interval: Fixed | Every chosen number of seconds | Polling a device or refreshing a value |
| Time Interval: Random | At random times between a minimum and maximum number of seconds | Rarely on shows |
| Time of Day | At a set time on chosen days | Start the walk-in loop at a set time |
| Once on Specific Date & Time | Once, on a date and time | A one-off reminder or a scheduled start |
| On Sunrise/Sunset | At sunrise or sunset for a latitude and longitude, with an offset in minutes | Outdoor and installed systems |
| Startup | When Companion starts, after a delay in milliseconds | Putting every deck on its home page |
| Web client connect | When a web client connects, after a delay | Rarely on shows |
| On any button press | Whenever any button is pressed | Logging or a keep-awake |
| On any button release | Whenever any button is released | As above |
| On condition becoming true | When the trigger's condition changes to true | Flash a warning when a connection goes into error |
| On condition becoming false | When the condition changes to false | Clearing that warning |
| On variable change | When a chosen variable changes | Act when a console reports a scene recall |
| On computer becoming locked, or unlocked | When the Companion computer locks or unlocks; macOS and Windows only | Locking the decks with the computer |
Conditions are checked again at the moment an event fires, so they always see the current value. The Actions part can do anything a button does. To make a trigger do exactly what a key does, use Button: Trigger press and release and point it at the key; its Hold duration (ms) option holds the key down first, for keys with long-press actions. The trigger's edit panel also has a Test actions button, which runs its actions now.
Triggers can be grouped into collections, and the internal actions Trigger: Enable or disable trigger and Trigger: Enable or disable trigger collection switch them from a key. That gives you a TRIGGERS ON / OFF key on the utility page, with the internal feedback Trigger: When enabled or disabled to show which it is.
Here is a worked trigger for Brightwater Health 2027. Doors open at 08:30 and the walk-in loop must be on screen before then. A trigger named WALK-IN AUTO has the event Time of Day at 08:25 on the show day, the condition Variable: Check value with show_mode equal to show, and the action Button: Trigger press and release on the WALK-IN key. If anyone is in rehearsal mode, nothing happens. Two more triggers worth having on most shows are a Startup trigger that runs Surface: Set to page so each deck opens on its home page, and an On condition becoming true trigger, using Connection: When matches specified status, that turns on a warning variable when a playback machine goes into error.
Another example comes from the Allen & Heath SQ module, whose Help describes a sceneRecalledTrigger variable that changes every time a scene is recalled on the desk, intended for use in triggers. An On variable change trigger watching it can update a key showing the current scene, or remind the video operator that audio has moved on. This only works if the module provides such a variable, which is why the module's Help is always the first place to look.
Using them safely
A key does nothing until a person decides to press it. A trigger fires on its own, when you may be looking the other way, during rehearsal, or while the client is mid-sentence. That is the reason triggers start disabled, and it should shape every one you build.
| Rule | Why |
|---|---|
| No trigger fires anything that goes to air without a condition you control | A Time of Day trigger does not know the show is running late |
| Give dangerous triggers a show_mode or armed condition | Rehearsals, resets and line checks run at other times |
| Name every trigger for what it does, and write its purpose in Notes | The next operator has to know it exists |
| Keep a TRIGGERS OFF key, with a feedback showing the state | One press stops automation if the show goes wrong |
| Test with Test actions on safe gear, then disable until needed | A trigger is a button nobody presses |
| Put a Wait inside every While loop | Without one it repeats hundreds of times a second and floods devices |
| Avoid persisting values you do not need | Persist value increases disk activity |
Tell the show caller, and the other departments, about every trigger that can affect their world. A walk-in loop that rolls by itself at 08:25 is a cue like any other and belongs on the paperwork. The same goes for the reverse: if audio has a trigger watching your machines, you need to know.
Variables bring their own care. A key that displays a variable shows the last value Companion received; if the connection drops, the value may be stale. Keep status keys beside the ones that matter. Be careful with names: actions and keys that point at a custom variable or a connection label by name need checking if you rename them, and pages that are reordered break anything that points at a page by number. And avoid loops between local variables that depend on each other, which the guide warns will use excess processor time.
Finally, every machine keeps its own controls. Variables and triggers can make the deck feel like it runs the show, and it does not. If Companion stops, the operator at each machine must still be able to play, stop and switch by hand.
How to do it
- Create a custom variable show_mode with a startup value of rehearsal, and a key that sets it to show and another that sets it to rehearsal, each with a feedback showing the current mode.
- Build and test the key the trigger will press, such as WALK-IN, on safe gear.
- In the Triggers tab, click Add Trigger, name it for what it does, and write its purpose in Notes.
- Add the event Time of Day with the time and the show day.
- Add the condition Variable: Check value, show_mode equal to show.
- Add the action Button: Trigger press and release, pointing at the WALK-IN key.
- Use Test actions with the gear safe, then enable the trigger, and put the automatic cue on the paperwork and tell the show caller.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| The walk-in loop rolled during the morning rehearsal | A Time of Day trigger had no condition | Add a show_mode or armed condition, and keep a TRIGGERS OFF key |
| A key shows the variable as text, not its value | The connection label or variable name is wrong, or the field is in the wrong mode | Copy the variable from the Variables list and check Variables mode against Expression mode |
| An expression field shows an error with plain words in it | Text inside an expression is not quoted | Quote the text, or switch the field back to Variables mode |
| A counter goes back to zero after a restart | The custom variable reset to its startup value | Tick Persist value, or write the current value to the startup value before closing |
| Companion slows and a device is flooded with commands | A While loop or a fast interval trigger with no Wait | Add a Wait inside the loop, lengthen the interval, and disable the trigger |
| A trigger cannot read a page variable | Triggers do not belong to a page | Use a custom variable for anything a trigger must read |
Practice it
Brightwater Health 2027. The awards segment has eight awards. Each has a sting on the playback machines (clips 11 to 18) and a name on the next-up screen. The producer wants the deck to show which award is next, and wants the house music in the break to stop at exactly 10:58 so the VOG can call people back at 11:00.
- You can name the kinds of variable and write each one correctly.
- You can put a module's variable and the time on a key.
- You can make a custom variable and change it from a key.
- You can write a simple expression and know when a field is in Expression mode.
- You can build a trigger with an event, a condition and an action.
- Every trigger you build has a guard, a name and a place on the paperwork.
Your Job Decides the Layout
There is no standard Stream Deck layout, because there is no standard job. What goes on the keys depends first on what you are responsible for on this show, and then on the run of the show. This chapter teaches that order of thinking, the two-deck rig many operators use, one deck for transport and one for all the cues, and full worked layouts for a corporate conference, a concert, a television drama, an audio technician and a lighting technician.
There is no standard Stream Deck layout, because there is no standard job.
Start from your responsibilities
Patrice, Reboot’s founder, has controlled video switchers, media servers, playback machines and PowerPoint computers from Companion on corporate shows, concerts and film sets. Asked how he lays out a deck, his answer starts somewhere other than the deck: "It depends first of all on my responsibilities. Some shows we might have only one and on others many. Stream Deck and Companion come particularly in handy when you have more than one. So depending on the demands of the show and my responsibilities is how I program. But usually I have one Stream Deck for transport controls and one for all cues."
That is the order this chapter teaches. First, write down what you are responsible for on this show: which machines are yours, which moments in the show you must make happen, and which you only need to know about. Second, take the run of show, the running order of every segment and cue, and work out what you press, when, and on whose call. Only then open Companion. A deck laid out before those two lists exist is a deck laid out for a different show.
A responsibility is something that is yours if it goes wrong. On one show you may be responsible only for playback. On the next you may run playback, the slides and the switcher together. The machines can be identical on both shows; the layouts will not be, because the jobs are different.
| Question | Why it shapes the layout | Brightwater Health 2027 answer |
|---|---|---|
| Which machines are mine? | Only your machines get keys that fire | ATEM, Playback A, Playback B, PPT computer |
| Which machines do I only watch? | They get information keys or nothing | Audio desk and LX desk belong to other operators |
| Who calls my cues? | Decides whether keys follow a caller's numbers or your own judgement | The show caller calls every video cue by number |
| What repeats all show? | Repeated actions become transport keys | Play, pause, stop, next and previous on playback; next and previous slide |
| What happens once, in order? | One-off moments become cue keys, in run order | Walk-in, opener, walk-ups, awards stings, close |
| What is the backup for each machine? | Backups need their own keys, kept apart and protected | Playback B mirrors A; a key puts B to air |
| What must never be pressed by accident? | Those keys get colour, position and a hold | Fade to black, the swap to B |
Put the answers on paper with the IP plan for the show. The examples in this chapter use one plan throughout: Companion 10.0.0.10, ATEM 10.0.0.20, Playback A 10.0.0.31, Playback B 10.0.0.32, PowerPoint computer 10.0.0.40, audio desk 10.0.0.50, lighting desk 10.0.0.60, all on subnet mask 255.255.255.0. The audio layout adds the audio team's QLab computer at 10.0.0.51.
One responsibility
With one responsibility, you run one system. The media server operator on a concert, or the playback operator on a small corporate show, may own a single machine. Companion still helps, but its job is smaller: it gives that machine's most-used controls big, labelled, lit keys, and shows the state you would otherwise read off a screen.
A single 15-key Stream Deck MK.2 often covers one responsibility, and the machine's own interface does the rest. The two-deck pattern still holds when the cues are many: a few transport keys that never move, and the cues on their own deck in run order. When the cues are few, they can share one deck with transport, as long as transport keys stay in the same place on every page; a Button reference (chapter 6) does that without copying.
| One responsibility | Transport keys | Cue keys | One deck or two |
|---|---|---|---|
| Playback on a small conference | Take, play, pause, stop, previous and next clip | A handful of named clips | One MK.2, transport on the top row |
| Media server on a concert | Next and previous column, clear, wall black | One key per song | Two: transport on an MK.2, songs on an XL |
| Slides only | Next, previous, black | Jumps to section starts | One small deck, or the presenter remote and a deck as backup |
The trap with one responsibility is building a deck that copies the whole machine. If a function is used once in prep, leave it in the machine's own software. The deck is for the show.
Many responsibilities
Companion earns its place when you hold several jobs at once. Without it, an operator running a switcher, two playback machines and a slide computer has four keyboards and mice and four places to look. With it, one hand works one panel that reaches every machine, and each key shows what its machine is doing.
Many responsibilities change the layout in three ways. First, keys must say which machine they touch, by label and colour, because PLAY on the playback machine and NEXT on the slides look alike in the dark. Second, a single show moment may need several machines at once, which is where one key firing several machines comes in. Third, the operator's attention is split, so state on the keys matters more: the deck has to tell you what is live without you looking up.
| Problem with many jobs | What the layout does about it |
|---|---|
| Similar keys for different machines | Group each machine's keys in one row or block, with a colour per machine family and the machine in the label: PB PLAY, PPT NEXT |
| Moments that need several machines | Cue keys that fire each machine involved, built and rehearsed in order |
| Split attention | Tally on switcher keys, status keys for every machine, time left on playback |
| More ways to make a mistake | Dangerous keys in one place, in one colour, hold-to-fire |
| A machine fails mid-show | A backup key per machine, kept away from the cue keys |
Many responsibilities are also when the second deck pays for itself. Keeping transport and cues apart means the hand that rolls and stops playback never has to hunt across a page of cues, and the cue page can change without moving it.
The two-deck rig
The rig Patrice usually works with is two decks: one for transport controls and one for all the cues. Transport means the controls you use again and again on whatever is playing: play, pause, stop, next, previous and their relatives. Cues are the moments of this show, each happening once, in order.
| Transport deck | Cue deck | |
|---|---|---|
| Holds | Play, pause, stop, next, previous, take, back to one, black, and status | Every cue that is yours, in run-of-show order |
| Changes during the show | Never; every key stays where it is all show | Pages follow the run |
| Typical deck | 15-key Stream Deck MK.2 | 32-key Stream Deck XL |
| Page buttons | None; it is locked to one page | Page up, page number and page down in the first column |
| Built | Once, and reused from show to show | Fresh for every show, from the paperwork |
| Where it sits | Under the hand you work with, the same place every show | Beside or behind it, in view |
The value of the split is muscle memory. Play is in the same place on the first night and the last, on this show and the next, so your hand finds it without looking. The cue deck is free to be rebuilt for every show and to change page as the show moves on, and nothing on it can push transport somewhere else.
Setting up two decks in Companion
Plug in both decks and open the Surfaces page. Each deck appears as its own surface. In each surface's settings, give it a Surface Name, such as TRANSPORT and CUES, so you never confuse them in actions that choose a surface. Set each one's Startup Page, with Use Last Page At Startup off, so after a restart the transport deck comes up on its transport page and the cue deck on the first page of the show.
Since Companion 4.2, a surface or surface group can be limited to certain pages, under Page Permissions in its settings. Limit the transport deck to its one page, and even a stray page action cannot move it. Limit the cue deck to the show's pages, and it cannot wander onto a setup page during the show. The page buttons on the cue deck then step through the permitted pages in the order you selected them.
New pages come with page up, page number and page down in the first column. On the transport page, clear them, because that deck never changes page. A 15-key MK.2 shows the top-left three rows of five of the grid, so build the transport page in that corner. On a big show with many cues, two Stream Deck XLs side by side can be joined in a surface group, which the Companion guide describes as treating them as a single 16 by 4 device on the same page.
Two decks also need two spares, or one spare that can stand in for either. Chapter 21 covers spares and backups. A surface group helps here too: the guide notes that groups give a stable identity, so you can swap a failed deck into the group without changing any buttons.
One key, one machine or many
Should one cue key fire several machines, or one? Patrice's answer is "however you program it": it is the programmer's choice. Both are right in the right place, and good layouts use both.
| One key fires one machine | One key fires several machines | |
|---|---|---|
| Example | PPT NEXT sends one key press to the slide computer | OPENER takes clip 1 on Playback A and B and cuts the ATEM to Playback A |
| Fits when | Each machine is called separately, or timing between machines is a judgement call | The paperwork treats the moment as one cue, and the machines must land in a set order every time |
| Strength | You control each machine's timing; a failure stays contained | One press, one call, the same result every time |
| Risk | More presses at a busy moment; easy to forget one | If one machine fails, the others still go; order and delays must be rehearsed |
| Must have | Clear labels saying which machine | Notes listing every machine it fires, and a test in rehearsal |
A useful middle path is a mixed layout: build the combined cue key for the moment, and keep each machine's own keys within reach, on the transport deck or on a device page, so you can finish a cue by hand if one part of it fails. Chapter 16 goes further into building cues, ordering the actions within them, and standby and go.
Mirrored main and backup machines are a special case of one key, several machines. When Playback A and Playback B run the same clips, every transport key fires both, so B is always in the same place as A and can be cut to air at any moment. Commands at the same level of a button's action list are sent together (chapter 6), which is what keeps A and B in step.
Pages by device or by the run
There are two ways to organise pages, and most shows use both. Pages by device give each machine its own page: an ATEM page, a Playback page, a PowerPoint page. Pages by the run follow the show: an opening page, a keynote page, an awards page, each holding the cues for that part, in order.
| Pages by device | Pages by the run | |
|---|---|---|
| Organised as | One page per machine | One page per segment of the show |
| Best for | Setup, line checks, troubleshooting, shows with no fixed order | Running a scripted show with a show caller |
| Built | Once, kept in your library and reused | Fresh from each show's run of show |
| Operator thinks | Which machine do I need? | Where are we in the show? |
| Risk | During the show you search across pages for the next cue | A late change to the running order means moving keys |
The combination that suits the two-deck rig is this. The transport deck has one fixed page. The cue deck's show pages follow the run, so the next cue is always on the page in front of you, top-left to bottom-right in show order. Device pages exist too, for setup and for fixing things, but they are kept out of the cue deck's page permissions during the show and reached from the Companion admin page or the emulator instead.
The Companion guide notes two layouts people use with several surfaces: give each surface its own pages, or share pages and give each surface its own area of the page with the offset in grid settings. The two-deck rig in this chapter gives each deck its own pages, which keeps the transport page clear of cues.
Within a run page, keep one rule: a row is a segment, read left to right. When the show caller says the next cue, it should be the key to the right of the last one you pressed. And when the running order changes, which it will, move the keys, do not relabel them in place, so each key keeps the actions that match its label.
Worked layout: Brightwater Health 2027
Brightwater Health 2027 is a corporate conference, a general session in a hotel ballroom. Dana Okafor hosts and Martin Lowe, the CEO, gives the keynote. There is a walk-in, a VOG (voice of god, the off-stage announcer) to open the show, an opener video, an awards segment and a panel of five. The show caller calls the cues.
In this layout you are the video operator with many responsibilities: the ATEM switcher feeding the screens, two PlaybackPro Plus machines (Playback A main, Playback B a mirrored backup), and the PowerPoint computer, controlled through a VICREO Listener running on it. Audio and lighting are other operators' jobs.
| Connection label | Machine | Address | Module |
|---|---|---|---|
| atem | ATEM switcher | 10.0.0.20 | Blackmagic Design ATEM |
| pbA | Playback A, main | 10.0.0.31 | PlaybackPro Plus |
| pbB | Playback B, mirrored backup | 10.0.0.32 | PlaybackPro Plus |
| ppt | PowerPoint computer | 10.0.0.40, port 10001 | VICREO Listener |
The ATEM inputs are Camera 1 wide on input 1, Camera 2 on the lectern on input 2, Playback A on input 3, Playback B on input 4 and the PowerPoint computer on input 5. The VICREO Listener sends key presses on the slide computer, and PowerPoint's own shortcuts do the rest: Right arrow or N for the next slide, Left arrow or P for the previous one, and B to black the screen and back.
The transport deck, a 15-key Stream Deck MK.2
| Row | Key 1 | Key 2 | Key 3 | Key 4 | Key 5 |
|---|---|---|---|---|---|
| Row 1, playback | PB TAKE | PB PLAY | PB PAUSE | PB STOP | PB LAST 10 |
| Row 2, clips and slides | PB PREV CLIP | PB NEXT CLIP | PPT BACK | PPT NEXT | PPT BLACK |
| Row 3, status | A status | B status | PPT status | B TO AIR, hold | CLOCK |
Every PB key fires both machines with the matching PlaybackPro Plus action: Take clip to Program, Play from current location (Program), Pause playback (Program), Stop Program playback (Kill), Goto last 10 seconds, Previous Clip (Preview) and Next Clip (Preview). The PPT keys each send one key with the Listener's Single key action. The status keys use Connection: Check Status, one per connection. B TO AIR sets the ATEM's program to input 4 and sits in a duration group with Execute while held, so it needs a full second's hold. CLOCK shows $(internal:time_hm). Playback keys rest in blue, slides in a second colour, status keys in grey, and B TO AIR in orange.
The cue deck, a 32-key Stream Deck XL, page BW SHOW
| Row | Col 1 | Col 2 | Col 3 | Col 4 | Col 5 | Col 6 | Col 7 | Col 8 |
|---|---|---|---|---|---|---|---|---|
| Open | PAGE UP | WALK-IN | VOG, audio | OPENER | DANA WALK-UP | DANA SLIDES | CAM 1 WIDE | PGM |
| Keynote | PAGE NO. | MARTIN WALK-UP | MARTIN SLIDES | MARTIN VIDEO 1 | BACK TO SLIDES | MARTIN VIDEO 2 | BACK TO SLIDES | CAM 2 LECTERN |
| Awards | PAGE DOWN | AWARDS OPEN | AWARD $(custom:award_no) | AWARD + | AWARD - | WINNER CAM | AWARDS CLOSE | spare |
| Panel and close | CLOCK | PANEL WALK-UP | PANEL WIDE | CLOSE VIDEO | WALK-OUT | spare | spare | FTB, hold |
The whole run fits on one page, so this show has a single page in the cue deck's permissions. Each row is one segment read left to right. The keys behind the labels look like this.
| Cue key | Fires | Machines |
|---|---|---|
| WALK-IN | Loads and takes the walk-in loop on A and B, then cuts the ATEM to input 3 | pbA, pbB, atem |
| VOG, audio | Nothing; an information key in grey so you can see where the show is | None |
| OPENER | Takes clip 1 on A and B, waits 200 ms, cuts the ATEM to input 3 | pbA, pbB, atem |
| DANA WALK-UP | Takes the walk-up sting on A and B and cuts to input 3 | pbA, pbB, atem |
| DANA SLIDES | Cuts the ATEM to input 5 | atem |
| MARTIN VIDEO 1 and 2 | Takes the clip on A and B and cuts to input 3 | pbA, pbB, atem |
| BACK TO SLIDES | Cuts the ATEM to input 5, then stops playback on A and B | atem, pbA, pbB |
| AWARD $(custom:award_no) | Takes the sting for the current award and cuts to input 3 | pbA, pbB, atem |
| AWARD + and AWARD - | Change the custom variable award_no by one | internal |
| CAM 1 WIDE, CAM 2 LECTERN, WINNER CAM | Cut the ATEM to that camera, with program and preview tally on the key | atem |
| PGM and CLOCK | Show $(atem:pgm1_input) and $(internal:time_hm); no actions | None |
| FTB, hold | Fade to black on the ATEM, inside a 1,000 ms Execute while held group | atem |
Notice what is not on the deck: the VOG mic, the walk-in music and the house lights. They belong to audio and lighting, and they stay on those operators' desks. The VOG key is there only as a reminder of where the show is, with no actions behind it. Notice too that the camera keys carry ATEM tally, red on program and green on preview, so the deck always shows what the room is seeing.
In the BACK TO SLIDES key the order is reversed: the ATEM cuts away first and playback stops second, so the audience never sees the video freeze or go black. That kind of choice is why each cue key is written down and rehearsed.
Worked layout: The Low Tides
The Low Tides are an invented band playing a 3,000-seat theatre, with an LED wall behind them fed by a media server. Most songs are timecoded: the band's playback rig sends timecode, a running clock that the media server follows, so each song's visuals start and move in step with the music without anyone pressing a key.
In this layout you have one responsibility: the media server, Resolume Arena. Its Companion module talks to Resolume over OSC and its REST API; its Help notes that feedback needs the REST API, and that an optional OSC listener adds transport variables such as elapsed time, remaining time and clip name, and tracks the active column. In this show file each song is one column in Resolume, so triggering a column starts that song's look.
With timecode doing the work, the deck is for everything timecode does not do: the walk-in and the house looks, the songs that are not timecoded, and taking over if timecode drops out. It is also for the moments nobody can predict at a concert, such as a song played twice or dropped from the set. Agree with the director when you may press a song key while timecode is running; chapter 11 covers timecode and keys together.
The transport deck, a 15-key Stream Deck MK.2
| Row | Key 1 | Key 2 | Key 3 | Key 4 | Key 5 |
|---|---|---|---|---|---|
| Row 1, columns | PREV COL | NEXT COL | TAP TEMPO | RESYNC | TIME LEFT |
| Row 2, wall | WALL UP | WALL 50 | WALL BLACK, hold | CLEAR ALL, hold | CLIP NAME |
| Row 3, status | RESOLUME status | CLOCK | TO DOORS | spare | spare |
For a media server, transport is moving through columns rather than play and pause. PREV COL and NEXT COL use the module's Composition Previous Column and Composition Next Column actions. TAP TEMPO and RESYNC use Tap Tempo and Resync Tempo, for the songs that follow the band's tempo. WALL UP, WALL 50 and WALL BLACK set Composition Opacity Change, and CLEAR ALL uses Clear All Layers; the last two are hold-to-fire in orange. TIME LEFT and CLIP NAME show the module's transport variables from its Variables list, if the OSC listener is enabled.
The cue deck, a 32-key Stream Deck XL, page LT SET
| Row | Col 1 | Col 2 | Col 3 | Col 4 | Col 5 | Col 6 | Col 7 | Col 8 |
|---|---|---|---|---|---|---|---|---|
| Pre-show | PAGE UP | WALK-IN | HOUSE LOOK | BAND LOGO | INTRO, TC | spare | spare | spare |
| Songs 1 to 7 | PAGE NO. | 1 SALT, TC | 2 UNDERTOW, TC | 3 LIGHTHOUSE | 4 GREY HARBOUR, TC | 5 RIPTIDE, TC | 6 SLACK WATER | 7 NEAP, TC |
| Songs 8 to 14 | PAGE DOWN | 8 SANDBAR, TC | 9 BREAKWATER, TC | 10 LOW TIDE, TC | 11 DRIFT | 12 SPRING TIDE, TC | 13 SHORELINE, TC | 14 HIGH WATER, TC |
| Encore and out | CLOCK | ENCORE 1, TC | ENCORE 2 | THANK YOU | WALK-OUT | spare | spare | SAFE LOOK |
Each song key uses Connect Column for that song's column, and is labelled with its number, its title and TC if it runs from timecode, so you know at a glance which songs need your hand. Songs without TC, such as 3 LIGHTHOUSE, are the ones you fire on the director's call. Where the module's feedback can follow the active column, the live song's key lights red; check the module's feedback list for the one that does this. SAFE LOOK, bottom right in orange, puts up a plain look you can hold on if anything goes wrong.
Here the run of the show is the set list. When the band changes the set list in the afternoon, move the keys into the new order rather than editing the columns behind them, and walk the new order with the director before doors.
Worked layout: The Night Shift
The Night Shift is an invented television drama, the same series Reboot's 24 Frame Playback course follows. On set, the playback operator puts content on every screen the camera sees and makes it act on cue. Here the responsibility is two on-set screens in a hotel room: the wall TV, where Leo Marchetti watches the news, fed from Playback A, and the laptop on the desk, fed from Playback B. Maya's phone with the RIDEWELL app, and the call from Nora Vance, come from a phone system that chapter 17 covers.
Film work changes the layout in three ways. The two screens often need different timing, so each machine has its own transport row as well as a row that fires both. Every take returns to the same starting point, which crews call back to one, so that key is the most pressed on the deck. And the set is dark and quiet, so the deck must not light the scene or be seen in a reflection.
The transport deck, a 15-key Stream Deck MK.2
| Row | Key 1 | Key 2 | Key 3 | Key 4 | Key 5 |
|---|---|---|---|---|---|
| Row 1, A, wall TV | A ROLL | A PAUSE | A BACK TO ONE | A STEP FWD | A LOOP |
| Row 2, B, laptop | B ROLL | B PAUSE | B BACK TO ONE | B STEP FWD | B LOOP |
| Row 3, both | ROLL BOTH | BACK TO ONE BOTH | A status | B status | DECK DIM |
Each key uses one PlaybackPro Plus action: Play from current location (Program) to roll, Pause playback (Program), Goto In (Program) for back to one, Step Forward (Program) to move a frame at a time, and Loop Temp (Toggle) for loops. ROLL BOTH and BACK TO ONE BOTH fire the same action on both machines together. DECK DIM uses the internal action Surface: Set to brightness on both decks, so you can drop the decks to a glow when the camera is near; a second press, or a step, brings them back.
The cue deck, a 32-key Stream Deck XL, page SC 14 HOTEL
| Row | Col 1 | Col 2 | Col 3 | Col 4 | Col 5 | Col 6 | Col 7 | Col 8 |
|---|---|---|---|---|---|---|---|---|
| Wall TV, A | PAGE UP | NEWS LOOP | NEWS HERO | NEWS END CARD | TV OFF LOOK | spare | spare | A TIME LEFT |
| Laptop, B | PAGE NO. | LAPTOP DESKTOP | LAPTOP EMAIL | LAPTOP BLANK | spare | spare | spare | B TIME LEFT |
| Notes | PAGE DOWN | SCENE 14 | TAKE $(custom:take_no) | TAKE + | spare | spare | spare | spare |
| Utility | CLOCK | spare | spare | spare | spare | spare | spare | STOP BOTH, hold |
On a film set the run is the call sheet, the day's list of scenes in shooting order, so the cue deck has one page per scene and the pages follow the call sheet. Each content key uses Load clip (id) into Preview, so the clip is ready without going to the screen; A ROLL on the transport deck then takes it on action. The SCENE 14 and TAKE keys are information for you and for the script supervisor's questions; TAKE + adds one to a custom variable.
Patrice's point about responsibilities shows here. On a day with only the wall TV, Row 2 of the transport deck and the laptop row disappear and the deck gets simpler. On a day with four screens and a phone, the same two-deck rig carries them all, because the layout was built from the job.
An audio layout
Audio technicians use Companion too. This layout is built from the Companion module documentation and the consoles' published protocols, not from Reboot's own show experience, so treat it as a starting point and check every key against the module's Help and your console. In live sound, the A1 is the lead audio engineer who mixes the show, usually at FOH, the front-of-house position in the audience.
The scene is Brightwater Health 2027 again, from the A1's side. The responsibilities are the mics (Dana Okafor's headset, Martin Lowe's lectern mic, two handhelds for the awards, five panel mics), the VOG mic, walk-in and break music, the awards stings, and the audio from the playback machines. The console is a Yamaha CL5 at 10.0.0.50. Music and stings play from QLab on the audio team's computer at 10.0.0.51.
| Connection label | Machine | Module and what its Help says |
|---|---|---|
| cl5 | Yamaha CL5, 10.0.0.50 | Yamaha Remote Control Protocol: covers Rivage PM, CL, QL, TF, DM and others; selected set commands and scene recall and store; works only with connected hardware, not the offline Editor |
| qlab | QLab, 10.0.0.51 | QLab: Go, Stop, Panic, Pause, Resume, Next, Previous, Start (Cue/ID); variables and feedback need TCP mode |
The transport deck, a 15-key Stream Deck MK.2
| Row | Key 1 | Key 2 | Key 3 | Key 4 | Key 5 |
|---|---|---|---|---|---|
| Row 1, QLab | Q GO | Q PAUSE | Q RESUME | Q STOP | Q PANIC, hold |
| Row 2, QLab | Q PREV | Q NEXT | NEXT CUE NAME | RUNNING CUE | TIME LEFT |
| Row 3, status | CL5 status | QLAB status | CLOCK | spare | spare |
NEXT CUE NAME shows $(qlab:n_name), the cue at QLab's playhead. RUNNING CUE shows $(qlab:r_name), and TIME LEFT shows $(qlab:r_left). Q GO can use the QLab feedback Colours for GO status, which shows when QLab's double-GO protection is holding off a second GO. Q PANIC is hold-to-fire: the QLab Help explains that a panic is a brief fade out leading into a hard stop, and a second panic is an immediate hard stop.
The cue deck, a 32-key Stream Deck XL, page BW AUDIO
| Row | Col 1 | Col 2 | Col 3 | Col 4 | Col 5 | Col 6 | Col 7 | Col 8 |
|---|---|---|---|---|---|---|---|---|
| Open | PAGE UP | WALK-IN MUSIC | MUSIC FADE | VOG MIC | OPENER AUDIO | DANA HS | SCENE OPEN, hold | spare |
| Keynote | PAGE NO. | MARTIN LECT | VIDEO PB CH | SCENE KEYNOTE, hold | spare | spare | spare | spare |
| Awards | PAGE DOWN | AWARDS STING | WALK-UP MUSIC | HH 1 | HH 2 | SCENE AWARDS, hold | spare | spare |
| Panel | CLOCK | PANEL 1 | PANEL 2 | PANEL 3 | PANEL 4 | PANEL 5 | SCENE PANEL, hold | WALK-OUT MUSIC |
Music and sting keys use QLab's Start (Cue/ID) for a named cue, so each key always plays its own cue whatever QLab's playhead is doing. Mic keys switch the input channel's on key on the CL5; on Yamaha consoles a channel's on/off is its mute, and the console's parameter list for the CL and QL series includes the input channel fader on parameter. Give each mic key a feedback from the module so it shows whether the channel is on, and use the same tally meaning as video: red while the mic is open to the room. Scene keys recall a console scene and are hold-to-fire, because a wrong scene can change every channel at once.
Other consoles change the actions, not the thinking. The Allen & Heath SQ module's Help lists mutes for channels, groups, mixes, DCAs and mute groups, fader levels, soft keys, scene recall, a current-scene variable and a variable that changes on every scene recall, for use in triggers. The Allen & Heath dLive module controls mutes and faders and recalls scenes when connected to the MixRack, and cue lists and Go Next/Previous when connected to the surface.
The console stays the master. The A1 must see every mute on the console as well as on the deck, and must be able to undo any key by hand on the desk. Build mic keys as separate ON and OFF, or with a feedback-driven key, rather than a step that counts presses, so a mute made on the console is never reversed by the deck's next press.
A lighting layout
Lighting technicians use Companion as well, and this layout, like the audio one, is built from the module documentation and the consoles' manuals rather than from Reboot's own experience. On most shows the lighting operator presses GO on the console. A deck suits a lighting tech who runs lighting alongside another job, who needs a few specials within reach, or who wants information on keys.
Brightwater Health 2027 uses an ETC Eos family console at 10.0.0.60, with the cues for the general session in one cue list. The ETC Eos module's Help says to enable OSC RX and OSC TX on the console and to set the console's IP as the Target IP. It connects on port 3032, or port 3037 with the Use TCP SLIP option. Its User ID setting chooses which console user Companion's commands run as. Use a different user from the operator's, the Help advises, if someone is working the console at the same time, otherwise their command lines can conflict.
The transport deck, a 15-key Stream Deck MK.2
| Row | Key 1 | Key 2 | Key 3 | Key 4 | Key 5 |
|---|---|---|---|---|---|
| Row 1, cue list | LX GO | LX STOP/BACK | LIVE CUE | PENDING CUE | BLACKOUT, hold |
| Row 2, house and stage | HOUSE FULL | HOUSE HALF | HOUSE OUT | STAGE WASH | WORKLIGHT |
| Row 3, status | EOS status | COMMAND LINE | CLOCK | spare | spare |
LX GO uses Key: Go, which runs the next cue in the current list, the same as the console's Go button, and LX STOP/BACK uses Key: Stop/Back. LIVE CUE shows $(eos:cue_active_num) and $(eos:cue_active_label); PENDING CUE shows $(eos:cue_pending_num) and $(eos:cue_pending_label), so the deck says what is live and what GO will run next. BLACKOUT uses Key: Blackout and is hold-to-fire. The house and stage keys use Run Macro or Group Intensity, depending on how the lighting programmer built the show. COMMAND LINE shows $(eos:cmd), the console user's command line.
The cue deck, a 32-key Stream Deck XL, page BW LX
| Row | Col 1 | Col 2 | Col 3 | Col 4 | Col 5 | Col 6 | Col 7 | Col 8 |
|---|---|---|---|---|---|---|---|---|
| Open | PAGE UP | Q1 WALK-IN | Q2 PRESHOW | Q3 VOG | Q4 OPENER | Q5 DANA | spare | spare |
| Keynote | PAGE NO. | Q10 MARTIN | Q11 VIDEO | Q12 BACK | spare | spare | spare | spare |
| Awards | PAGE DOWN | Q20 AWARDS | Q21 WINNER | Q22 STAGE | AUDIENCE SUB | spare | spare | spare |
| Panel and close | CLOCK | Q30 PANEL | Q31 CLOSE | Q32 WALK-OUT | spare | spare | spare | spare |
Each cue key uses Run Cue with the list and cue number on its label, so a key always runs its own cue, even if the console's pending cue has moved. This suits a lighting tech who also has another job and works from the show caller's numbers. AUDIENCE SUB uses Submaster Bump; the module's Help suggests the press and hold state on press and release on release, so the audience light is up only while the key is held.
On The Low Tides, the lighting is more likely to be run on a grandMA3 and played by hand to the music. The grandMA3 module's Help describes control over OSC, which must be set up on the console under In and Out with Receive and Receive Command ticked, and lists running commands, toggling executor buttons, running quickeys, calling macros and selecting sequences and groups. A deck there carries effects and specials on executor buttons for the operator to play, not a cue list. Chapter 15 covers lighting consoles and who presses GO.
From layout to show
A layout is finished when it is on paper and has been run. Print each deck's key map like the tables in this chapter, tape a copy by the decks, and give one to the show caller, so when they say "standby opener" you both know which key that is.
| Before the show | Why |
|---|---|
| Every key's actions written in its Notes | Anyone covering for you can read what a key does |
| Each surface named, with its startup page and page permissions set | A restart puts each deck back where it belongs |
| Every cue key pressed in rehearsal, on gear that is safe to move | Never test new buttons live |
| Every machine still controllable by hand | If Companion stops, the show carries on from each machine's own controls |
| A spare deck, and an export of the configuration | A failed deck or computer is a swap, not a rebuild |
| Late changes made by moving keys, then rehearsed | A relabelled key with old actions is the most dangerous key on the deck |
The same rig will look different on every show, because the job will be different. That is the point Patrice makes: start with what you are responsible for, follow the run, and let the layout fall out of those two.
How to do it
- List your responsibilities: the machines that are yours, the ones you only watch, who calls your cues, and the backup for each machine.
- From the run of show, list every moment you must make happen, in order, and mark which machines each one touches.
- Sort the controls you use again and again into transport, and the one-off moments into cues.
- Lay out the transport deck from your library, the same as on your last show where you can, with status keys and protected keys in fixed places.
- Lay out the cue deck by the run, one segment per row, left to right, and decide for each cue whether it fires one machine or several.
- Name the surfaces, set startup pages and page permissions, and set the show's colours, with red and green kept for tally.
- Print the key maps, rehearse every key on safe gear, and give a copy to the show caller.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| The operator hunts for PLAY during a busy segment | Transport keys moved between pages or between shows | Keep transport on its own deck, locked to one page, in the same places every show |
| The cue deck jumps to a setup page during the show | Its page permissions include device pages | Limit the cue deck to the show pages under Page Permissions |
| A cue key fires the wrong clip after a running-order change | The key was relabelled in place but kept its old actions | Move keys to the new order instead of relabelling, then rehearse |
| A video operator's deck fades the walk-in music | Another department's cue was programmed onto the wrong deck | Give other departments' moments information keys only, unless they are your responsibility |
| Playback B is behind A when it is cut to air | Transport keys fire only Playback A | Make every transport key fire both mirrored machines together |
| A mic is unmuted by the deck after the A1 muted it on the console | A stepping mic key counted presses rather than following the console | Use separate ON and OFF keys, or a key driven by the module's feedback |
Practice it
The Low Tides have added a second show, and this time you hold two responsibilities: the Resolume media server as before, and an ATEM (10.0.0.20) switching two cameras to side screens for IMAG, image magnification, the live close-up of the band. Songs still run from timecode, except 3 LIGHTHOUSE, 6 SLACK WATER and 11 DRIFT, which you fire on the director's call.
- You list your responsibilities before opening Companion.
- You can sort controls into transport and cues.
- You can set up a transport deck and a cue deck with names, startup pages and page permissions.
- You can decide when one key should fire one machine and when several.
- You can lay out cue pages by the run and keep device pages for setup.
- You can sketch a layout for video, playback, slides, audio or lighting.
- Your key maps are on paper, rehearsed and shared with the show caller.
Controlling Video Switchers
The video switcher decides what the audience sees, so the buttons that drive it are the most watched buttons on the show. This chapter shows how Companion talks to the switchers you will meet, ATEM, vMix, Barco E2 and S3, Analog Way and Ross, what each one lets you do from a deck, and what must always stay on the switcher's own panel.
The video switcher decides what the audience sees, so the buttons that drive it are the most watched buttons on the show.
Controlling video switchers
A video switcher, also called a production switcher (a vision mixer in British broadcast), takes many video sources in and sends a chosen few out. Cameras, playback machines, the PowerPoint computer and graphics all arrive as inputs. The switcher puts one of them on program, the output the audience and the stream see, and lets the operator line up the next one on preview, the output only the crew sees. A cut swaps preview and program instantly; an auto transition does it with a dissolve or a wipe over a set time.
On a big show the person switching sits behind a full hardware panel. Companion does not replace that panel. It adds keys for the moves that are repeated, awkward, or belong to someone else: a playback operator who needs to take the opener video to the screens, a stage manager who needs a single key for the walk-in look, or a technical director who wants one press to set three screens at once. On a small show, a compact switcher plus a Stream Deck may be the whole control surface.
Every switcher Companion controls is reached the same way: the switcher has an IP address on the show network, Companion has a connection for it, and the connection's module turns your button actions into the switcher's own protocol. The words change from maker to maker, so learn the common ideas first.
| Idea | What it means | Words you will see |
|---|---|---|
| Program | What is live on the output now | PGM, program, on air |
| Preview | What is lined up next | PVW, preview |
| Cut | Instant change from preview to program | Cut, Cut Active |
| Transition | A timed change such as a dissolve | Auto, Take, Trans |
| Key | A layer over the picture, such as a lower third or logo | Upstream key, downstream key, DSK, layer |
| Aux | An extra output with its own source, such as a confidence monitor | Aux, AUX destination, output |
| Memory or preset | A stored look recalled with one command | Macro, preset, memory, MEM |
Two kinds of switcher exist on show sites. Production switchers, such as Blackmagic ATEM, vMix, Ross Carbonite and Ross Acuity, mix cameras for a program feed. Presentation switchers, also called screen management systems or image processors, such as the Barco E2 and S3 and Analog Way LivePremier, Midra 4K and Alta 4K, build layered looks across wide LED walls and projection screens. Both are controlled from Companion, but the second group thinks in screens, layers and stored presets rather than in a single program bus.
ATEM
Blackmagic Design ATEM switchers, from the ATEM Mini range up to the Constellation and 2 M/E models, are the most common switchers you will drive from Companion. The Companion module for ATEM says it should work with all models. It must reach the switcher over the network; the module's help states plainly that USB control is not supported, even though the ATEM Mini can talk to its own software over USB.
Getting connected
An ATEM needs a fixed IP address so that panels and software always know where to find it. That address is set in Blackmagic ATEM Setup. On the Brightwater Health 2027 show plan, the ATEM is 10.0.0.20 and Companion is 10.0.0.10, both with subnet 255.255.255.0. Add an ATEM connection in Companion, type 10.0.0.20 as the target IP, and the status should turn green.
If it does not, the module's own advice is to rule Companion out first: open ATEM Software Control on the same computer and see whether it can connect. If the Blackmagic software cannot reach the switcher either, the fault is the network, usually an address on a different range. Companion's discovery list can show ATEMs that you still cannot connect to, so a switcher appearing in the list proves nothing about the addresses.
What the ATEM module can do
| Group | Actions in the ATEM module | Typical button |
|---|---|---|
| Buses | ME: Set Program input, ME: Set Preview input, Aux/Output: Set source | CAM 2 to preview; PPT to the confidence aux |
| Transitions | ME: Perform CUT transition, ME: Perform AUTO transition, change transition type and rate | CUT, AUTO, MIX 1 sec |
| Keys | Set upstream and downstream key inputs and on-air, auto DSK transition | Lower third on and off |
| Fade to black | Set fade to black rate, execute fade to or from black | FTB at the end of the session |
| Macros | Run MACRO, Continue MACRO, Stop MACROS | WALK-IN look in one press |
| Other | SuperSource boxes, media player source, multiviewer window source, Mini-pro recording and streaming, audio inputs | Panel two-shot; logo still into media player 1 |
Macros are an ATEM's own stored sequences, recorded on the switcher. A macro can do many things in order, such as set four sources, run a transition and bring on a key. A Companion button that runs a macro keeps the logic inside the switcher, which is useful when the switcher operator also uses the same macro from the hardware panel. The module notes one catch: Companion cannot always see that a zero-length macro ran, so its key may never show the macro as running. Give the macro a one-frame pause and the feedback works.
The module also works around a multiviewer detail. In a layout with four large quadrants, the ATEM still numbers its windows on an underlying four-by-four grid, so the quadrants are windows 1, 3, 9 and 11, not 1 to 4. Changing window 2 does nothing you can see in that layout.
vMix
vMix is switching and streaming software that runs on a Windows computer. Inputs can be cameras, NDI sources, video files, PowerPoint and titles. The Companion module for vMix talks to it over vMix's TCP API on port 8099. The module's settings warn not to type the vMix Web Controller port into that field, and not to set the Web Controller itself to 8099, because the two would clash.
Most of the state Companion shows for vMix, the tally colours, the input names and the timers, comes from vMix's API on a timer called the polling interval. The module's help gives the default as 250 milliseconds and the minimum as 100 milliseconds. A shorter interval makes the keys respond faster; a longer one eases the load on a busy vMix computer. If vMix's processor use climbs when Companion connects, slow the polling down.
Every vMix shortcut, the commands vMix itself documents for its API, is available as a Companion action, and any of them can also be sent as a custom command. That makes vMix one of the most complete things Companion controls: cut, fade, overlays, lists, replay, recording and streaming all live in the same module. Streaming with vMix has its own chapter later in the book.
Because vMix often runs on the same computer as other software, keep its connection simple: Companion on a separate computer at 10.0.0.10 where you can, vMix at its own fixed address, and the vMix computer's own keyboard shortcuts left in place as a way back if the network drops.
Barco E2 and S3
Barco's Event Master range includes the E2, the S3-4K and the EX expansion unit. Barco describes the S3-4K as a compact version of the E2 that uses the same cards. They are screen management systems: one frame drives an LED wall, side screens and confidence monitors, each as its own screen destination with layers, plus aux destinations for single feeds. They are programmed and run from Barco's Event Master Toolset software or an Event Master controller.
The Companion module for this range is called Barco EventMaster. It uses the official EventMaster JSON API, and its help notes two traps. First, the API is not available in the simple simulator; you need a hardware frame or Barco's virtual box simulator to build buttons ahead of the show. Second, a green status only means the address answered a ping. It does not prove the API is responding, so test a button before trusting the connection.
| What you want | EventMaster module action | Notes |
|---|---|---|
| Recall a stored look | Recall Preset, to Preview or Program | The most used action on a show |
| Step through the show | Recall Next Preset | Recalls the next available preset |
| Take what is on preview | Cut Active, Take/Trans Active | Cut is instant; Take uses the transition |
| Run a sequence stored on the frame | Play Cue, Stop Cue, Pause Cue | Cues are built in Event Master Toolset |
| Freeze a picture | Freeze Source, Freeze Screen Destination, Freeze Aux Destination, Freeze Layer | On PDS-4K use layer freeze |
| Choose which screens a take affects | Arm/Unarm Destination | Unarmed screens are left alone |
| Show a test pattern | Change Screen Content, Change AUX Content | Useful during line-up, never during the show |
The module's settings include an authentication mode, where you enter an operator ID or the super user password if the frame is set to need one, and a choice called Enable Live Updates. With it on, the frame sends Companion a notification whenever content changes, so tally and variables update within about half a second instead of waiting for the next poll. For that to work, the notification port on the Companion computer, port 3000 by default, must be open to incoming TCP connections; on Windows the help says to set the network profile to Private.
On The Low Tides concert, the E2 drives the LED wall and two IMAG side screens. The video director runs the frame from Event Master Toolset. The media server operator has a deck with three keys that recall the song looks the director built, labelled with the song names, and one key that recalls the house look for changeovers.
Analog Way
Analog Way builds presentation switchers: the LivePremier series, which includes the Aquilon models, and the Midra 4K and Alta 4K series. They are operated from WebRCS, Analog Way's control software that runs in a web browser. Companion offers two modules for them, and choosing the right one matters.
| Module | Devices | Talks back? | When it fits |
|---|---|---|---|
| Analog Way AWJ | LivePremier, Alta 4K, Midra 4K | Yes; feedbacks, variables and source tally | Most shows; you want keys that show state |
| Analog Way LivePremier (REST API) | LivePremier series | No; it sends commands and does not read state | Simple fire-and-forget keys, or where the AWJ connection is not wanted |
The AWJ module connects the same way WebRCS does; the help says Companion appears to the device as another WebRCS client. It reads the device's features when it connects, so its menus only offer the inputs, screens and memories your device has. That also means you must be connected to build buttons. To program ahead of the show, the module help points to Analog Way's free simulators.
The most important idea in the AWJ help is selection synchronisation. In WebRCS you usually select something first, a screen or a layer, and then act on it, for example by pressing Take. Every WebRCS client keeps its own selection. If the operator's WebRCS has screen 1 selected and Companion has screen 2 selected, the same Take button does different things depending on where it is pressed. Turning on selection sync, in Companion and in the operator's WebRCS, makes them share one selection. The other way is to build Companion keys with direct commands, such as transition screen 1, that do not depend on any selection. The help advises not to mix the two methods on one deck.
Ross
Ross Video switchers, the Carbonite and Graphite, Acuity and Vision ranges, along with Ultrix routers and some openGear cards, are controlled from Companion through the Ross Video RossTalk module. RossTalk is Ross's own text command protocol. Ross's documentation says Carbonite accepts RossTalk commands on port 7788 automatically, and the module uses port 7788 by default.
The module's actions follow the switcher's own words: cut and auto transition, XPT for a crosspoint, MEM to recall a memory, the sequencer, keyers, fade to black and custom controls, which are sequences stored on the switcher. A TCP Keep Alive setting holds one connection open and shows its status continuously. Two actions on Acuity and Vision, set video mode and reset switcher, interrupt the switcher's output; the help says to use them with care, and on a show they belong nowhere near a deck.
The RossTalk help describes commands and ready-made buttons. It does not describe tally feedback, so if you want keys that show what is on air from a Ross switcher, check what the module version you have installed offers before you promise it to the director.
Tally on the deck
Tally is the signal that tells everyone which source is live. On a camera it is the red light the operator and presenter see. On a Companion key it is a colour that follows the switcher: by the usual convention, red means the source is on program, green means it is on preview. Companion gets this from a feedback, a rule the module offers that changes the key's look when the switcher's state matches.
| Switcher | Tally feedbacks in the module |
|---|---|
| ATEM | Tally: Program, Tally: Preview, Tally: Advanced |
| vMix | Tally - Program state, Tally - Preview state, Tally - Overlay state |
| Barco E2 and S3 | Source Active (Simple), Source Active on Destinations; red for program, green for preview |
| Analog Way (AWJ) | Source Tally, which tracks whether the source can be seen on screen |
Two details make tally on presentation switchers worth learning. The Barco module can show tally for a source anywhere, or only on one screen destination, such as LED MAIN program, so a key can light only when the source is on the main wall. The Analog Way AWJ help says its source tally follows visibility: it will not light if the layer is off the screen, has no area, is fully masked or fully transparent.
Tally on the deck is a guide, not a guarantee. It shows what the switcher reported last. If the network drops, the key keeps its last colour or turns to the module's disconnected look. The program monitor is the final word; glance at it after every important press.
What stays on the panel
Every switcher keeps its own controls, and on a show they stay within reach. The hardware panel, the switcher's software or its front-panel buttons are the way back when Companion, its computer or the network fails. Plan the deck so that losing it costs convenience, never the show.
| Keep on the switcher | Why |
|---|---|
| The main program cut and fade to black | The switcher operator must be able to take or kill the picture without Companion |
| Setup, video mode, reset and format changes | They interrupt the output; a stray press would black the screens |
| Saving and loading the show file | A load from a deck can wipe a look the director spent hours building |
| Building looks, presets and macros | Companion recalls them; the switcher is where they are made and checked |
Agree with the switcher operator before the show who presses what. If the playback operator's deck can take the opener to program, the technical director must know that, and the two of you must agree the cue word. Two people able to cut the same bus without a plan is how a camera ends up live in the middle of a video.
How to do it
- Confirm the switcher's IP address on the show's address sheet, for example the ATEM at 10.0.0.20, and that the Companion computer is on the same range with the same subnet mask.
- Check the switcher's own software can reach it from the network, such as ATEM Software Control, Event Master Toolset or WebRCS.
- Add the connection in Companion, enter the address and any settings the module asks for, such as a port, an operator ID or live updates, and wait for a green status.
- Drag the module's presets for preview and program sources onto a test page, then check one press on preview with the switcher operator watching.
- Add tally feedbacks so each source key shows red on program and green on preview, and confirm the colours match the multiviewer.
- Build the show keys, such as a macro, preset or look per segment, label them in the show's own words, and test every one before doors.
- Agree with the switcher operator which keys you will press and which moves stay on the panel, and write it on the running order.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| The ATEM appears in the discovery list but will not connect | The Companion computer is on a different address range or subnet | Put both on the same range, such as 10.0.0.x with 255.255.255.0, and prove it with ATEM Software Control first |
| An ATEM macro key never shows as running | The macro has zero length, so Companion cannot see it run | Add a one-frame pause to the macro on the switcher |
| The same Take key transitions a different screen on an Analog Way device | Companion and WebRCS each keep their own selection | Turn on selection sync in both, or build keys with direct commands that name the screen |
| The Barco connection is green but no button does anything | A green status only means the frame answered a ping | Check the JSON API is reachable, the authentication settings are right and you are not on the simple simulator |
| vMix slows down when Companion connects | The API polling interval is too short for the number of inputs | Raise the polling interval in the vMix connection settings |
| Tally keys stay red after a camera has left program | The connection has dropped, or live updates are off and polling is slow | Check the connection status, turn on live updates where the module offers them, and trust the program monitor over the deck |
Practice it
Brightwater Health 2027. An ATEM at 10.0.0.20 switches four cameras, the PowerPoint computer and Playback A for the IMAG screens and the stream. You run playback and have a Stream Deck on Companion at 10.0.0.10. The technical director has asked you to take the opener video to program yourself on her cue, because she will be talking the camera operators through the first walk-on.
- You can explain program, preview, cut, transition, key and aux.
- You can connect to an ATEM over the network and diagnose a failed connection.
- You know vMix's module uses the TCP API on port 8099.
- You can recall Barco and Analog Way presets and know why selection sync matters.
- You can add tally feedbacks and read them correctly.
- You know which switcher moves never go on a deck.
Controlling Media Servers
A media server plays the content on the LED walls and projection, often in layers, often locked to timecode. This chapter shows how Companion triggers and watches Resolume, Disguise, Watchout, Millumin and Pixera, what each one has to have switched on before it will listen, and how Companion buttons work alongside timecode instead of against it.
A media server plays the content on the LED walls and projection, often in layers, often locked to timecode.
Controlling media servers
A media server is a computer, or a dedicated machine, that plays video content to screens. Where a playback machine plays one clip full screen, a media server places content on a map of the actual screens: a curved LED wall, three projectors blended into one picture, the floor, the set. It can stack layers, run effects and play a whole show on a timeline. On The Low Tides concert, the media server feeds the LED wall behind the band with a different look for every song.
Media servers are usually run by their own operator from their own software. Companion earns its place in three ways: it gives the operator a physical key for each song, scene or cue, so they are not hunting with a mouse in the dark; it shows the time left on a clip on the key; and it lets someone else, such as a show caller or a playback operator, fire one agreed cue without touching the server.
Almost every media server needs control switched on before it will accept commands from the network. That is the step people forget. The server is running, Companion's connection is set, and nothing happens, because the server was never told to listen.
| Server | What must be switched on | Companion module | Port named in the docs |
|---|---|---|---|
| Resolume Arena | OSC in Preferences, OSC tab; the webserver for the REST API | Resolume Arena | OSC 7000, REST 8080 (defaults) |
| Disguise | An OSC device and an EventTransportOSC transport, engaged | Disguise OSC | Set in the device and module |
| Watchout 6 | The production computer or display cluster running and on the network | Dataton Watchout | 3040 production, 3039 display cluster |
| Watchout 7 | The Director with its HTTP API | Dataton Watchout 7 (JSON) | HTTP 3019 |
| Millumin | OSC in Interactions, Manage devices, OSC tab | Millumin | 5000 (default) |
| Pixera | An API port added in Pixera's settings, JSON/TCP | AV Stumpfl Pixera | Chosen by you; the module suggests 1400 |
Resolume
Resolume Arena is media server software built around a grid. Rows are layers, stacked over each other; columns hold clips. Trigger a column and every layer plays the clip in that column, so one column is one complete look. Concert video operators often build one column per song or per section of a song.
Resolume can be controlled two ways, and the Companion module uses both. OSC, Open Sound Control, is a network message format used widely in show software; Resolume's documentation says it is switched on in the OSC tab of Preferences and listens on port 7000 by default. The REST API is Resolume's web interface, switched on as the webserver in Preferences, on port 8080 by default in the module. The module help says feedbacks need the REST API; most other actions fall back to OSC if no REST port is set.
One status detail catches people. OSC has no reply, so if you only give the module an OSC port, it shows OK whether Resolume is listening or not. With the REST port filled in, the status turns to an error if Resolume is not answering, which is far more useful at lineup.
The module can also listen for OSC sent back from Resolume. Turn on its OSC listener, port 7001 by default, and in Resolume's OSC preferences turn on OSC Output pointed at the Companion computer on that port. That gives per-layer variables for the clip name, elapsed time, remaining time and progress, and a progress-bar feedback that changes colour as a clip nears its end.
| Button | Module action or preset |
|---|---|
| Song look | Connect Column |
| Next and previous look | Composition Next Column, Composition Previous Column |
| One clip on one layer | Trigger Clip, or Connect Clip (Play) over OSC |
| Kill a layer or everything | Clear Layer, Clear All Layers |
| Fade the whole output | Composition Opacity Change, or Master 0% and 100% presets |
| Tempo for beat-synced effects | Tap Tempo, Resync Tempo |
| Countdown on the key | Clip Name + Remaining, Progress Bar presets (OSC listener) |
Disguise
Disguise, still often called d3, is a media server platform that runs on its own hardware and is programmed in its designer software. A Disguise show is a timeline of tracks divided into sections, with cues tagged on the timeline. It is common on concert tours, large corporate events and broadcast.
Disguise's help describes OSC transport control in four steps. First, an OscDevice; Disguise includes one called osc 1 in the Devices manager. Second, in the transport controls, add a new event transport and choose EventTransportOSC. Third, in that transport's settings, select the OSC device. Fourth, click disengaged in the transport window; it flashes green when transport control is engaged. Until that last step, OSC commands are ignored.
The Companion module for this is Disguise OSC. Its settings hold a send port and a receive port, 7401 and 7400 by default in the module, which must match the ports set on the Disguise OSC device. The module help warns that full functionality needs Disguise set to always send OSC feedback; Disguise's own help describes the feedback mode choices as always send or only send changes.
| Group | What the Disguise OSC module offers |
|---|---|
| Transport | Play, Play to end of section, Loop section, Stop, Previous Section, Next Section, Return to start, Previous track, Next track |
| Cues | Cue, with one to three number parts such as 1.2.5, and Float Cue |
| Master | Fade up, Fade down, Hold, master brightness and volume up and down |
| Variables | Current and next section name, section time elapsed and remaining, timecode position, track name, master brightness and volume, bpm, heartbeat |
A second module, Disguise Multi Event Transport Control, uses Disguise's Multitransport Manager. Commands are sent as JSON over a telnet connection, and the setup is done in Disguise: create a Multitransport Manager, assign transports and tracks, then add an event transport with a listening port. Whichever module you use, agree with the Disguise programmer which transport Companion is allowed to drive.
Watchout
Dataton Watchout plays content across many displays from a timeline. In Watchout 6 and earlier, a production computer holds the show and display computers play it; once the show is distributed, the display computers can run as a display cluster without the production computer. Watchout 7 reorganised the system around a Director and an Asset Manager.
Companion has a module for each. The Dataton Watchout module controls Watchout 6 production computers and display clusters. Its code connects to port 3040 for a production computer and port 3039 for a display cluster, and Dataton's protocol guide confirms 3039 for the cluster. The guide also gives a quick test: open a telnet connection to that port, type ping and press Return, and Watchout replies with a Ready message and its version.
The Watchout 6 module's actions are Run, Pause, Kill, Reset, Jump to time, Jump to cue, Go online, Enter Standby, Set Input, Load Show and Layer Conditions. Loading a show takes the full path on a production computer and only the show name on a display cluster, and the help says names must use basic ASCII characters only. In its feedback modes the production computer sends status updates on its own, whenever a task changes or every few seconds.
The Dataton Watchout 7 module connects to the Director's HTTP API on port 3019, with live updates for playback state. It can play, pause or stop a timeline, jump to a time or a cue, send values to show inputs and load shows. Because Watchout 7 reuses its internal IDs, the module help notes that the same buttons can work across different shows, with timeline names updating on the keys. One trap: for inputs to work through the API, the Key field must be set on the variable in Watchout, because the API matches the Key and not the Name.
Millumin
Millumin is media server software for Mac, popular in theatre, dance and corporate shows. Like Resolume, it is organised in layers and columns, and it also has timelines. The Companion module sends OSC to Millumin on port 5000 by default; the port is set in Millumin under Interactions, Manage devices, OSC tab. Feedback, such as the time remaining on a layer, needs Millumin set to send OSC back to Companion and the layer named in the Companion action.
The actions cover what an operator needs on a show: launch a column by number or name, next and previous column, play media on a layer, play, pause and stop the timeline, go to a named timeline segment, restart, pause and stop media, and stop all columns.
Pixera
Pixera, from AV Stumpfl, is a media server platform with a timeline-based workflow, used on large projection and LED shows. Its API is switched on by adding an API access port in Pixera's settings and choosing the JSON/TCP protocol. Pixera's help says only JSON/TCP supports all the API's return values reliably. You choose the port number; the Companion module's default is 1400, so either use 1400 in Pixera or type your chosen number into the module.
The AV Stumpfl Pixera module works on timelines: transport mode, next and previous cue, go to timecode, go to a cue by name or index, blend to a timecode or cue, and timeline opacity and fades. Its feedbacks colour a key by timeline state and put the timeline's timecode or time remaining on the key. A raw API action can send any Pixera JSON command; the module itself labels that function use at your own risk.
Buttons and timecode
Timecode is a running clock, hours, minutes, seconds and frames, sent from one machine to others so they stay in step. On The Low Tides, the band plays to a click track, and each song's playback session sends timecode to the lighting desk and the media server. The LED wall's content moves on the beat because it follows the same clock as the music.
When a show runs on timecode, the clock is in charge, not the buttons. Companion does not need to fire each look; the media server's timeline does that as the timecode arrives. Pressing a play or jump key while the server is chasing timecode can fight the clock, and the result depends on how the server is set up. Before you build keys for a timecoded show, ask the media server programmer how the timeline follows timecode and which keys are safe to press.
| Job on a timecoded show | Where Companion helps |
|---|---|
| Seeing where you are | Timecode position, section name and time remaining on keys, from modules such as Disguise OSC and Pixera |
| Rehearsal and line-up | Jump to a song or cue by name so the band can run a section again |
| Songs that are not on timecode | A key per look for the acoustic number or the encore that is called live |
| Getting out of trouble | An agreed hold, fade or safe look if timecode drops |
A clear rule for the deck helps. Keys that only show information can be pressed by anyone. Keys that move the timeline or change a look on a timecoded show are pressed by the media server operator, or on the operator's call. Put the safe look key somewhere the operator can find without looking, and agree what it does before the first song.
How to do it
- Ask the media server operator which actions you may trigger and from which transport, timeline or layer.
- On the server, switch on network control: OSC in Resolume or Millumin, an engaged OSC transport in Disguise, an API port in Pixera, or the HTTP API on a Watchout 7 Director.
- Note the server's IP address and the port it listens on, and set any feedback the server sends back to the Companion computer's address.
- Add the connection in Companion with the same ports, and use a two-way method, such as Resolume's REST port, so a dead server shows as an error.
- Build a test key for one harmless action, such as a column or cue name on the key, and confirm it reads correctly.
- Build the show keys in the order of the set or the running order, with names matching the server's cue names.
- Agree with the operator what happens on timecode and which keys stay theirs, and test every key in rehearsal, never in the show.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| Resolume shows OK in Companion but nothing triggers | Only the OSC port is set, so the status cannot tell whether Resolume is listening, and OSC is off in Resolume's Preferences | Turn on OSC in Resolume and add the REST API port so the status means something |
| Disguise ignores every OSC command | The OSC transport is still disengaged | Click disengaged in the transport window so it flashes green |
| A Watchout 7 input key does nothing | The variable's Key field is empty in Watchout | Set the Key on the variable; the API matches the Key, not the Name |
| A Watchout 6 Load Show key fails on the cluster | The full path was given, or the name has non-ASCII characters | Use only the show name on a display cluster, in plain ASCII |
| Pixera will not connect | No API port is set in Pixera, or the module's port does not match it | Add a JSON/TCP API port in Pixera and enter the same number in the module |
| A jump key throws the LED wall out of step with the band | The server was chasing timecode and the key fought the clock | Agree with the programmer which keys are safe on timecoded songs |
Practice it
The Low Tides, 3,000-seat theatre. Resolume Arena drives the LED wall with one column per song. Songs 1 to 9 run on timecode from the playback rig; song 10, an acoustic number, and the encore are called live. The media server operator wants a deck with song names and time remaining, and a safe look in case anything fails.
- You can say what must be switched on in each server before it listens.
- You can connect Resolume with both OSC and the REST API and read its feedback.
- You can engage a Disguise OSC transport.
- You know which Watchout module fits Watchout 6 and which fits Watchout 7.
- You can set up Millumin and Pixera ports to match Companion.
- You know which keys are safe on a timecoded show and which are not.
Controlling Playback Machines
A playback machine plays the videos, stings and walk-in loops a show depends on, and it plays them once, on cue, in front of everyone. This chapter covers the playback software you will drive from Companion, QLab, PlaybackPro Plus, ProPresenter, VLC and others, the A and B machine practice that protects the show, and how to lay out a transport deck.
A playback machine plays the videos, stings and walk-in loops a show depends on, and it plays them once, on cue, in front of everyone.
Controlling playback machines
A playback machine is a computer or a recorder whose job is to play prepared files on cue: the opener video, the award stings, the walk-in loop, the sponsor reel, the countdown. Its output goes into the video switcher, and often its audio goes to the audio desk. On Brightwater Health 2027, Playback A at 10.0.0.31 and Playback B at 10.0.0.32 feed two ATEM inputs and two channels on the audio desk.
Playback operators control their machines from Companion every day. A physical key for play, pause and stop is faster and surer than a mouse click on a laptop in a dark control position. The key can also show what is loaded and how much time is left, so the operator can call stand by and the remaining time to the show caller without looking away from the screens.
Every playback machine needs to be told to accept network control, and each does it differently. The common pattern is the same as any show gear: a fixed IP address, a setting switched on in the software, a port, sometimes a password, and a matching connection in Companion.
| Software | What must be switched on | Port named in the docs or module |
|---|---|---|
| QLab | OSC access for the workspace, with a passcode in QLab 5 | 53000 |
| PlaybackPro Plus | Network control in PlaybackPro; the module offers TCP or UDP | TCP 4647 in the module |
| ProPresenter | Enable Network, and for the older module ProPresenter Remote with a controller password | Shown in ProPresenter's network settings |
| VLC | The Web interface, with a Lua password, then restart VLC | 8080 |
| Mitti | OSC/UDP Controls set to Enable | Feedback to Companion on 51001 |
| HyperDeck | Remote control enabled on the deck | 9993, Blackmagic's protocol port |
QLab
QLab, from Figure 53, is Mac show-control software that runs sound, video and lighting cues from a cue list. Its central idea is the GO button: the playhead sits on the next cue, and GO fires it and moves to the one after. On corporate shows QLab often plays walk-in music, VOG announcements and video stings, and the playback operator builds a cue for each moment in the running order.
QLab listens for OSC on port 53000. In QLab 5, OSC access is set per workspace, under Network and OSC Access in Workspace Settings. New QLab 5 workspaces get a random OSC passcode, and the module help says QLab 5 needs a passcode to work reliably from Companion. Copy the passcode from the workspace settings into the module's OSC Passcode field. QLab ignores commands after too many wrong passcodes in a row, so the module stops retrying when it sees a wrong one; enter the right passcode and save to start it again.
The module used here is the QLab Advance module, whose help is headed QLabFB. Its help says to tick Use TCP? in the connection, because variables and feedback only work over TCP. With TCP on, keys can show the playhead cue's name and number, the running cue's name and time remaining, and colour the key with the cue's own QLab colour.
| Action | What it does, from the module help |
|---|---|
| Go | Tells the current cue list to GO |
| Stop | Stops playback but lets effects, such as reverb, decay naturally |
| Panic | A brief fade out into a hard stop; a double panic stops immediately |
| Pause, Resume | Pauses or resumes all running cues in the workspace |
| Next, Previous | Moves the selection to the next or previous cue |
| Reset | Stops all cues and returns the playhead to the top of the list |
| Start (Cue/ID) | Starts one cue without moving the playhead |
| GoTo (Cue/ID) | Moves the playhead to a cue without starting it |
| Set Minimum Go | Sets the double-GO protection time |
| Show Mode | Switches the workspace between show mode and edit mode |
Two of those matter for safety. Set Minimum Go stops a second GO within a set time from firing the next cue, which protects you from a bounced finger. Show Mode locks the workspace against editing; run the show in it. Reset is not a stop key: it clears every cue and sends the playhead to the top, so keep it off the live page.
PlaybackPro
PlaybackPro Plus, from DT Videolabs, is Mac playback software built for live events. It works like a small switcher for clips: you load a clip into preview, check it, then Take it to program, the output feeding the screens. It is a common choice for corporate playback, and its ready-made Goto last 10, 20 and 30 seconds commands are made for checking the end of a clip before the show.
The Companion module is listed as PlaybackPro Plus. Its settings are the target IP and a choice of TCP or UDP. The module's code connects on TCP port 4647, which other show-control makers also document as PlaybackPro Plus's default. Remote control over the network must be allowed in PlaybackPro itself; check the setting in the version you have.
| Key | PlaybackPro Plus module action |
|---|---|
| Load the next clip | Next Clip (Preview), Load clip (id) into Preview |
| Go | Take clip to Program |
| Load and go in one press | Load clip (id) and Take to Program |
| Pause and play | Pause/Resume (Program), Play from current location (Program) |
| Kill | Stop Program playback (Kill) |
| Check the end | Goto last 10, 20 or 30 seconds |
| Fine moves | Step Backward, Step Forward, Fast Reverse, Fast Forward |
| Save | Save Show file |
The module's help lists actions and ready-made buttons but no feedbacks or variables, so its keys will not show what is playing or time left. Watch PlaybackPro's own screen for that, or put the countdown somewhere else, such as a timer on the switcher's multiviewer.
ProPresenter
ProPresenter, from Renewed Vision, presents slides, lyrics, video and stage displays, and is used at corporate events, conferences and churches. On a corporate show it may play the walk-in loop and the speaker lower thirds, and drive a stage display with the next slide and a countdown clock for the presenter.
Companion has two ProPresenter modules. The newer one, listed as ProPresenter API, uses ProPresenter's public API, needs only Enable Network switched on in ProPresenter's network settings, and the IP address and port shown there. Its help says versions older than 7.9.2 need the older module, listed as ProPresenter, which connects the way the mobile remote app does. For that one, open ProPresenter's network settings and switch on Enable Network, Enable ProPresenter Remote and Controller, and note the controller password, port and IP address.
The useful actions on a show are next and previous slide, a specific slide, clear actions such as Clear All, Clear Slide and Clear to Logo, timers and messages, and triggering media and props. The older module's help notes that ProPresenter gives no feedback for whether a timeline is playing, so a key cannot show it, and that on Windows a Clear All loses the current slide position in some versions. Both are reasons to watch the ProPresenter screen as well as the deck.
VLC
VLC is a free media player that plays almost any file. It is not show playback software, but it turns up on small shows, in breakout rooms and as a quick backup. The Companion module for VLC talks to VLC's web interface.
To switch it on, open Tools then Preferences in VLC, tick the Web option on the Main interfaces page, and set a password under Main interfaces then Lua. The module help says VLC must be closed and restarted before the password takes effect. The module's default port is 8080. A simple test from the help: if you can reach VLC from a web browser with those details, the module will work.
The module offers Play, Play ID for a playlist item, Stop, Pause / Resume, Seek To, Next, Previous, Full Screen, Loop and Repeat, and variables for the playing item's name and the time remaining. One trap from the help: VLC gives no error for a Play ID that is not in the playlist, it simply plays the current item. A key labelled for the opener can play the wrong clip without any warning.
Other playback machines
Two more machines you will meet. Mitti, from imimot, is Mac cue playback software for events and theatre. To connect it, set Settings, OSC/UDP Controls to Enable in Mitti and enter the Mitti computer's address in Companion; for feedback, set Mitti to send to Companion, which the module listens for on port 51001 by default. Its module offers play, stop, panic, next and previous cue, play a cue by name or number, Goto 30, 20 and 10, and variables for the cue's time left.
Blackmagic HyperDeck recorders also play back, and are common on shows with an ATEM. The module offers play, stop, go to a clip or a timecode and record, with feedback for transport status and clip. The help warns that older HyperDecks, made before 2023, accept only one controller at a time, including an ATEM or another copy of Companion; if Companion cannot connect, disconnect the other controllers first.
A and B machines
On a show that cannot stop, playback runs on two machines. A is the main; B is the backup. Both hold the same files in the same order with the same settings, both feed the switcher on separate inputs, and both are started together, so B is always at the same point in the clip as A. If A freezes or crashes in the middle of the opener, the switcher cuts to B and the audience sees, at worst, a cut.
Companion makes A and B practical, because one key can send the same command to both machines. On Brightwater Health 2027, the PLAY key holds two actions: play on the Playback A connection at 10.0.0.31 and play on the Playback B connection at 10.0.0.32. The same goes for pause, stop, next and previous. Pressing once keeps the two in step far better than two mouse clicks ever could.
| Rule | Why |
|---|---|
| Same files, same names, same order on both machines | A cue number or clip ID must mean the same clip on A and B |
| Same software version and settings | Fades, loops and end behaviour must match |
| One key, both machines, for every transport command | Two presses drift apart; one press keeps them together |
| Feedback from each machine on its own key | You must be able to see that B is playing, not just A |
| Separate switcher inputs, both on the multiviewer | The switcher operator can see B before cutting to it |
| A spare key per machine | To restart one machine without touching the other |
Feedback is what turns A and B from a hope into a backup. Put a key for each machine that shows its own state, playing, paused or stopped, and its own time remaining. If the two times drift or one shows stopped, you know before the switcher needs B. Agree with the technical director the call for switching to B, such as "Go to B", and who makes it.
Whether one key fires both machines or each machine has its own keys is the programmer's choice, and both have a place. For the transport, one key for both is the practice, because that is what keeps them in step. For recovery, separate keys per machine are essential, so you can stop and re-cue B while A carries the show.
The transport deck
Transport means the commands that move playback: play, pause, stop, next, previous and the moves around them. When a show has several machines and many cues, a common layout is one Stream Deck for transport and a second for all the cues. The transport deck never changes during the show; the cue deck follows the running order. Your hands learn where play and stop are, and they are always in the same place.
A transport deck works best when it is laid out like the transport on any player, and when the dangerous keys are hard to hit by accident. A 15-key deck in three rows of five might look like this for an A and B rig on PlaybackPro Plus, whose module has the last-ten-seconds command.
| Row | Key 1 | Key 2 | Key 3 | Key 4 | Key 5 |
|---|---|---|---|---|---|
| Top | A state and time left | B state and time left | Cue loaded, name | Next cue, name | Page or spare |
| Middle | PREVIOUS (A and B) | PLAY or GO (A and B) | PAUSE (A and B) | NEXT (A and B) | LAST 10 SECONDS (A and B) |
| Bottom | RE-CUE A only | RE-CUE B only | Blank | Blank | STOP or KILL (A and B) |
The top row only shows information and is safe to press. The middle row is the show itself, with play in a position the hand finds without looking. Stop sits alone in a corner with blank keys beside it, and in a strong colour, so it is pressed on purpose. The re-cue keys work on one machine each, for recovery. A cue deck alongside it holds a key per running-order moment, such as OPENER, WALK-ON DANA, AWARDS STING and SPONSOR REEL, each loading the right clip on both machines.
Before the show, play every clip through on both machines, check that A and B start and end together, and check the end of each clip with the last-ten-seconds key. During the show, Companion is the way you press, not the only way. Each playback machine keeps its own controls, and its keyboard, mouse and screen stay within reach.
How to do it
- Copy the same files into the same folder structure on both machines, build identical cue lists or playlists, and check versions and settings match.
- Give each machine a fixed address, for example Playback A 10.0.0.31 and Playback B 10.0.0.32, and switch on network control in the software, with the passcode or password noted.
- Add two connections in Companion, named clearly as Playback A and Playback B, and confirm both show a green status.
- Build the transport keys so each holds the same action twice, once per connection, and add state and time feedback from each machine on its own key.
- Build separate re-cue keys for each machine for recovery, and put stop in a corner away from play.
- Play every clip on both machines, watch both on the multiviewer, and confirm they start and end together.
- Agree with the technical director the call to switch to B and who makes it, and rehearse it once before doors.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| Companion cannot connect to QLab 5 | The OSC passcode is missing or wrong | Copy the passcode from Workspace Settings, Network and OSC Access, into the module and save to restart it |
| QLab keys fire but show no cue names or times | Use TCP? is not ticked in the connection | Tick Use TCP?; variables and feedback only work over TCP |
| B is a few frames behind A every time | A and B are started with separate presses or separate keys | Put both play actions on one key so one press starts both |
| The opener key plays the wrong clip in VLC | The Play ID is not in the playlist, so VLC played the current item | Check the playlist numbers and keep the playlist identical on both machines |
| Companion cannot reach a HyperDeck | An older model accepts only one controller and the ATEM already has it | Disconnect the other controller, or plan which one controls the deck |
| A double press fires two QLab cues in a row | No double-GO protection is set | Use Set Minimum Go to set a protection time |
Practice it
Brightwater Health 2027. You run Playback A at 10.0.0.31 and Playback B at 10.0.0.32, both on QLab 5, feeding two ATEM inputs. The show opens with a 90-second opener video, then Dana Okafor walks on. Later the awards segment uses five stings.
- You can switch on network control in QLab, PlaybackPro Plus, ProPresenter and VLC.
- You can connect QLab 5 with its passcode over TCP and show cue names and time left.
- You can build an A and B rig where one key drives both machines.
- You can show each machine's own state and time on its own key.
- You can lay out a transport deck with play easy to find and stop hard to hit.
- You know each machine keeps its own controls within reach during the show.
Controlling PowerPoint Computers
Most corporate shows still run on slides, and the slides still run on a computer that someone has to advance at exactly the right moment. This chapter shows the ways Companion can drive a PowerPoint or Keynote machine, how that sits beside the presenter's own clicker, and how to keep a main and a backup computer showing the same slide.
Most corporate shows still run on slides, and the slides still run on a computer that someone has to advance at exactly the right moment.
Controlling PowerPoint computers
Picture the general session of Brightwater Health 2027. Martin Lowe, the CEO, walks on for his keynote with a clicker in his hand. His slides live on a laptop at the tech table, the presentation computer, often called the PPT machine whatever software it runs. Its output goes into the video switcher and up onto the screens. At the same table a graphics operator watches the script, because Martin sometimes forgets to click, sometimes clicks twice, and the awards segment later in the day has forty slides that must land on the beat of the music.
A presentation computer is the simplest machine on the show to understand and one of the easiest to get wrong. It does one thing: show the next slide when told. The difficulty is that it can be told by several hands at once, the presenter's clicker, the operator's keyboard and Companion, and it has no idea which of them is right. Everything in this chapter is about making sure the slide on screen is the slide the script says.
PowerPoint was built to be driven by a person at a keyboard, not by a network. That shapes how Companion reaches it. There are three routes, and you will meet all three on shows.
| Route | How it works | When it fits |
|---|---|---|
| Key presses | A small listener program on the PPT machine receives commands from Companion over the network and presses keys as if someone typed them | Any slide software, any version; quick to set up; the most common route |
| A PowerPoint add-in | An add-in installed inside PowerPoint listens on the network and moves the slideshow directly, often reporting the slide number back | Windows shows where you want slide-number feedback and go-to-slide commands without relying on keyboard focus |
| A presentation manager | A separate program such as PresentationTools APS opens, runs and switches decks, and Companion talks to that program | Conferences with many speakers and many files, where the operator loads and swaps decks all day |
Whatever the route, the computer keeps its own keyboard and mouse, and the operator keeps their hands near them. Companion adds a button panel; it does not take the computer away from the person responsible for it. In the IP plan used through this book the PPT machine sits at 10.0.0.40 and Companion at 10.0.0.10, both on subnet 255.255.255.0.
Key presses from Companion
Companion cannot press keys on another computer by itself. It needs a helper program running on the PPT machine, a listener, that waits for commands on a network port and turns them into key presses inside the logged-in desktop session. Companion has a module for each listener. Two are widely used.
| Listener | Companion module | Port it listens on | What it can do |
|---|---|---|---|
| VICREO Listener (Windows, macOS, Linux beta) | VICREO Listener (vicreo-hotkey) | TCP port 10001 unless changed | Single keys, special keys and two-key combinations free; longer combinations, typing text, mouse, opening files, shell commands, window focus and a process watchdog need a licence |
| Bitfocus Listener (Mac and Windows) | Bitfocus Listener | Port 12001 by default, password protected | Key press, key down and up, key combinations, typing a string, mouse moves, and on macOS sending a key to a named application or running AppleScript |
Setting one up follows the same three steps. Install and start the listener on the PPT machine. On a Mac, give it permission under System Settings, Privacy and Security, Accessibility; without that permission it cannot send keystrokes, and Bitfocus warns that keyboard control then silently does nothing. Then add the matching connection in Companion with the PPT machine's address, 10.0.0.40, and the port. Finally put a single key, such as Right Arrow, on a button and press it while you watch the PPT machine.
Both listeners are powerful. Bitfocus Listener's own documentation warns that with shell commands, AppleScript or file opening switched on, anyone who can reach it can run programs on that computer, and that its traffic is not encrypted. New installs ship with those three off. Leave them off unless the show needs them, keep the show network closed, and on VICREO set a password. Both listeners let the person at the PPT machine switch off whole classes of command.
The keys PowerPoint understands
Once Companion can press keys, the buttons are simply the slideshow shortcuts PowerPoint already has. These are the ones Microsoft lists for PowerPoint on Windows, on a US keyboard layout.
| Button | Key PowerPoint expects | Notes |
|---|---|---|
| Start show from slide 1 | F5 | Use with care: it restarts the deck |
| Start from current slide | Shift+F5 | The safer start once a deck is parked on its first slide |
| Next | Right Arrow, Page Down, Space, N or Enter | Advances the next animation, not always the next slide |
| Previous | Left Arrow, Page Up, P or Backspace | Steps back one animation or slide |
| Go to slide | The slide number, then Enter | Two key presses on one button, with a short delay between |
| Black screen | B or full stop | Press again to return |
| White screen | W or comma | Rarely wanted on a show |
| End show | Esc | Drops to the editing view; keep it away from Next |
Note the word animation. If a slide has builds, bullet points that fly in one at a time, every Next press reveals one build before the deck moves on. The script might say slide 12, but slide 12 might take four presses. Ask for the final deck early, step through it once, and write the press count beside each cue on your script.
A go-to-slide button is two actions on one key: the number, then Enter. VICREO's help notes that for PowerPoint on a Mac you can send the number keys to the PowerPoint process by name and add a delay of about 30 milliseconds before Enter. That delay is set in the button's action list, which chapter 6 covers.
The focus trap
A key press goes to whichever window is in front. If a software update notice, a chat message or a battery warning pops up on the PPT machine, your Next press lands in that window and the slide does not move. Prepare the machine before doors: notifications off, updates paused, sleep off, other applications closed. Both listeners have a way round this on macOS: they can bring a named application, such as Microsoft PowerPoint, to the front before pressing the key. VICREO can also bring a window to the foreground on Windows with a licence.
Modules that talk to PowerPoint directly
Key presses work with any software, but they are blind: Companion presses Right Arrow and has no way of knowing whether the slide moved. Several Companion modules talk to PowerPoint through an add-in or a companion program instead, and some of them report back. Each needs its own software on the PPT machine, so check the module's help page and test on the show computer, never on the day.
| Module | What runs on the PPT machine | What the help page lists |
|---|---|---|
| PowerPoint Remote VSTO WebSocket | A PowerPoint add-in for Windows, installed from the developer's release page | Start and end the slideshow, next, previous, first, last, go to a slide or a presentation, blackout and whiteout, laser pointer; feedback for presentation mode, current and total slide number and the file name |
| Irisdown Remote Show Control | The Irisdown add-in for PowerPoint | Open and close a presentation, run, run from current, stop, next, previous, go to a numbered slide or section |
| OSCPoint | A free add-in for PowerPoint 2016 or later on Windows | Control by OSC, with feedback on the current slide and build, notes text and media state |
| PresentationTools APS | APS, a presentation manager for Mac and Windows, port 31600 by default | Open the next or previous presentation full screen at a set slide, go to a slide or a PowerPoint section, capture and show still images, blackout or freeze, change some APS settings |
The value of these modules is the feedback. A button that shows the current slide number, say 12 of 40, tells you at a glance whether Martin's clicker double-fired. A button that goes red when the slideshow is not in presentation mode tells you someone pressed Esc. Chapter 7 shows how to put that state on a key.
The cost is another piece of software on a computer that is often the client's own laptop, or a hire machine imaged that morning. Add-ins depend on the PowerPoint version, and some only run on Windows. On a show where the speakers bring their own laptops five minutes before they speak, key presses are usually the only route that will work in time.
Presenter remotes and Companion
Presenters like to hold their own clicker. It lets them pace their talk, and many will not walk on without one. A presenter remote is a small handheld transmitter with a USB receiver that plugs into the PPT machine. The computer sees the receiver as an ordinary USB keyboard, so pressing forward simply sends a key such as Right Arrow, and no driver is needed. Two you are likely to meet on corporate shows are the Logitech Spotlight and the DSan PerfectCue family. Logitech sells the Spotlight as plug-and-play through its USB receiver, but it can also pair by Bluetooth instead, so ask which way a presenter's clicker is connected before you go looking for a receiver.
Because a clicker is just another keyboard, it and Companion both talk to the same slideshow, and both are obeyed. That is useful and dangerous in equal measure. If Martin clicks and the operator presses Next a moment later to help, the deck jumps two slides. Agree with the presenter, in rehearsal, who advances. Common arrangements are below.
| Arrangement | Who advances | Where it fits |
|---|---|---|
| Presenter drives | The presenter clicks; the operator only steps in when asked or when a slide is plainly stuck | Confident speakers, simple decks |
| Operator drives | The operator advances from Companion on the presenter's cue words; the presenter has no clicker or a dummy one | Scripted segments, awards, anything timed to music or video |
| Presenter drives, operator protects | The presenter clicks; the operator watches the slide number and corrects with Previous or go-to-slide | Long keynotes with nervous speakers |
The cue-light receiver
A cue-light presenter system such as the DSan PerfectCue goes further. Its receiver sits at the tech table, flashes a light each time the presenter presses forward, back or blank, and passes those presses to the computer. DSan's guide for the PerfectCue Micro says the receiver appears to the computer as a standard keyboard and by default sends Right Arrow, Left Arrow and B, and that the keys can be changed with DSan's free programming app. The receiver has two USB ports, which is the basis of main and backup control in the next section.
Companion has a DSan PerfectCue module. Its configuration notes that it reaches the PerfectCue through a Global Caché TP2SL and a DSan TP-2000X, network interface units, over TCP, by default to port 4999. It offers Forward, Reverse, Black Out on and Black Out off, and reads back the forward, reverse and blank lights. That lets an operator's Companion button go through the same receiver as the presenter's handheld, so both machines behind it step together, and lets the deck show when the presenter pressed.
Main and backup
On any show that matters, there are two PPT machines running the same deck: a main and a backup. Both outputs go into the switcher. If the main crashes, freezes or shows a dialog box, the video operator cuts to the backup and the audience sees one slide change. That only works if the backup is on the same slide as the main at every moment. Keeping them there is called mirroring or keeping them in sync.
The deck file must be the same file. Copy it to both machines from one source, check the file name and the slide count on both, and when a speaker sends a late change, update both before either goes live. Then the presses must reach both.
There are three ways to make every press reach both machines.
One Companion button, two actions. Build two listener connections, one to the main and one to the backup, and give each Next button a Next action for each machine. Watch both connection statuses: if one connection is down, only one machine steps.
Dual-output presenter receiver. A receiver with two USB ports, such as the PerfectCue Micro, feeds the same keys to both computers. A press the receiver misses is missed by both, which keeps them together.
Presentation manager. Software such as APS runs on each machine, and Companion sends the same command to each. Each copy needs its own connection in Companion and must have the same deck open.
Machines drift out of step for ordinary reasons: one was slower to open a video, one missed a press while it was busy, an operator touched one keyboard. Check the two outputs on the multiviewer at every pause. A go-to-slide button that sends the same number to both machines is the fastest way to bring them back together; with a slide-number feedback on each, you can see the disagreement before the switch happens.
Whether one Next press should fire both machines or each machine should have its own buttons is the programmer's choice. One press for both is faster and is usual for main and backup. Separate buttons per machine let you correct one without touching the other. Many operators build both: a pair of combined buttons on the cue deck, and a page of per-machine buttons for repairs.
Keynote and other slide software
Keynote, Apple's slide software, is common with presenters who bring a Mac. It answers to keys in the same way. Apple's Keynote guide for Mac lists Right Arrow or Space for the next slide or build, Left Arrow to go back, a slide number then Return to jump to a slide while playing full screen, and Esc to stop. Apple's guide for Keynote on iPad lists B for a black screen; test it on the show Mac. Pressing the question mark key during a Keynote show displays every shortcut, which is the quickest way to check on the machine in front of you.
The VICREO module comes with ready-made presets for Keynote and for PowerPoint on the Mac, so a basic transport page can be dragged onto a deck. On a Mac, sending the key to the named application, Keynote or Microsoft PowerPoint, rather than to whatever window is in front, avoids the focus trap.
Keynote can also be driven by AppleScript, the Mac's scripting language, and Bitfocus Listener can run AppleScript sent from Companion. Script commands vary between Keynote versions, and Listener turns AppleScript off by default because it can run anything. Treat it as an advanced route and test the exact script on the show machine.
Other slide software turns up too. Google Slides runs in a browser, and there is a Companion module for a separate Google Slides controller app that opens presentations, moves slides and manages the speaker notes window. PDF decks open in Adobe Acrobat or similar, which APS can also drive. ProPresenter, used heavily in houses of worship and some corporate work, has its own network control and is covered with playback software in chapter 12.
For any of these, the rule is the same: find out which keys or commands the software accepts on that exact computer, build the buttons, and test every one on the show file before doors.
Watching the show computer
A PPT machine that has stopped responding still shows its last slide, so the screen looks fine until someone presses Next. The VICREO Listener, with a licence, includes a process watchdog: it watches named programs on the PPT machine, such as POWERPNT.EXE on Windows or Keynote on a Mac, and reports whether each is running, in front and responding. Its Process state feedback can turn a button red when PowerPoint stops or hangs.
Bitfocus Listener can report basic system information, such as processor and memory use, to Companion. Either way, a status key per PPT machine on your cue deck, green when all is well, gives you warning before the audience gets it.
How to do it
- Get the final deck early. Copy the same file to the main and backup machines from one source and confirm the file name and slide count match on both.
- Prepare both machines: notifications off, automatic updates paused, sleep and screen saver off, unrelated applications closed, power adapters plugged in.
- Install and start the same listener on both machines. On a Mac, grant it Accessibility permission. Leave shell commands, AppleScript and file opening switched off unless you need them.
- Give each machine its address on the show network, for example main 10.0.0.40 and backup 10.0.0.41, and add one listener connection in Companion for each. Confirm both show as connected.
- Build Next, Previous, Black and Go to slide buttons that each carry one action per machine, and a separate page with the same buttons for each machine alone.
- Step through the whole deck on both machines with the buttons while watching both outputs on the multiviewer. Write the press count for slides with builds beside each cue on your script.
- Agree with each presenter, in rehearsal, who advances. If they keep a clicker, connect its receiver so both machines receive its presses and test it from where they will stand.
- At every pause in the show, compare the two outputs and correct drift with the go-to-slide button before the next segment.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| Companion shows the connection as OK but the slide does not move. | The listener on a Mac has no Accessibility permission, or another window has focus on the PPT machine. | Grant Accessibility permission and restart the listener; close the pop-up; use the send-to-application action on macOS so the key goes to PowerPoint or Keynote by name. |
| The deck jumps two slides on one cue. | The presenter clicked and the operator pressed Next for the same cue, or a slide's builds were miscounted. | Press Previous once, then agree in rehearsal who advances; count the builds on every slide and mark them on the script. |
| The backup machine is one slide behind the main. | One machine missed a press while busy, or its connection dropped for a moment. | At the next pause send the same slide number and Enter to both machines; watch both connection statuses and slide-number feedbacks. |
| A Next press throws PowerPoint out of the slideshow. | An End Show button sending Esc sits beside Next, or a show started with F5 restarted the deck. | Move Esc and F5 off the cue deck, or protect them as chapter 16 shows; use Shift+F5 to start from the current slide. |
| The add-in module will not connect after a laptop swap. | The add-in is not installed on the new machine, or the new machine runs a version or operating system the add-in does not support. | Fall back to key presses through a listener, which works with any version, and install the add-in before the next session. |
Practice it
At Brightwater Health 2027 you run slides for the general session. Martin Lowe insists on his own Logitech clicker for his keynote. The awards segment has 40 slides timed to stings from audio, and is run by the operator. A main machine and a backup machine both feed the switcher.
- You can install a listener, give it permission and connect Companion to it.
- You can build Next, Previous, Black and Go to slide buttons from PowerPoint's own shortcuts.
- You can explain the focus trap and prepare a PPT machine so it cannot catch you.
- You can name a module that talks to PowerPoint directly and what it reports back.
- You can agree with a presenter who advances and keep their clicker from fighting your buttons.
- You can keep a main and a backup machine on the same slide and bring them back together.
- You can drive Keynote with the same approach and check its shortcuts on the machine.
Controlling Audio Consoles
Audio technicians use Companion to put mutes, scene recalls and playback on buttons beside the console. This chapter explains what Companion can do on the mixing desks you will meet, how each one is connected, and the rules that keep a button panel from ever putting a live microphone in the wrong state. The first of those rules is that the sound engineer owns the desk.
Audio technicians use Companion to put mutes, scene recalls and playback on buttons beside the console.
Controlling audio consoles
An audio console, also called a mixing desk or just the desk, takes every microphone and playback source on the show, sets their levels and sends the mix to the speakers. The front of house position, FOH, is where the desk sits, usually facing the stage from the back of the room. The engineer who mixes there is the A1. On a corporate show the A1 mixes the presenters' radio microphones, the playback from video and the VOG, the voice of god, the off-stage announcer who says ladies and gentlemen, please welcome.
Modern digital desks can be controlled over the network. The makers publish a protocol for that so that tablet apps, installation systems and products such as Companion can move faders, mute channels and recall scenes. A scene, called a snapshot on some desks, is a stored state of the whole desk or a chosen part of it, recalled in one go. A DCA, a digitally controlled amplifier, is a control fader that turns a group of channels up or down together, for example all five panel microphones.
What audio technicians put on Companion is usually small and repetitive. These uses come up again and again in the module help pages.
| Use | Example on Brightwater Health 2027 | Usually who presses |
|---|---|---|
| Mute and unmute channels or groups | Panel of five muted as a group between sessions | The A1, or an A2 on a side deck |
| Recall scenes | Scene for the general session, another for the panel, another for awards | The A1 |
| Show channel state on a key | A key per presenter mic, red when muted, showing the fader level | Anyone watching; display only |
| Play back walk-in music and stings | Walk-in playlist, award stings from the desk's USB player | The A1 or a playback operator |
| Talkback | A key that talks to the stage monitors or a mix | The A1 |
The desk keeps its own faders, buttons and screen. Every Companion button does something the A1 could also do on the surface, and the surface always wins. In the IP plan used in this book the audio desk is at 10.0.0.50 and Companion at 10.0.0.10. Most desks come from the factory with a different address, so the A1 sets the desk onto the show network, or the show network is built around the desk's address.
The A1 owns the desk
A Companion button that mutes a channel reaches into someone else's mix. On a live show, the A1 is responsible for every sound the audience hears, and they will not accept a button they have not seen, programmed by someone they have not spoken to. Nor should they. The etiquette is simple and it is not optional.
| Rule | What it means in practice |
|---|---|
| Ask first | Before you add an audio connection, ask the A1 whether they want Companion on their desk at all and what for |
| Agree every button | Sit with the A1, list each button, what it does and who presses it, and get their yes |
| They choose the channels | Mute groups, DCAs and scene numbers come from their show file, not from your guess |
| Display before control | If in doubt, give the deck keys that show state and leave the pressing to the desk |
| No changes after sign-off | A button changed after the A1 approved it is a new button and needs a new yes |
| Their desk, their call | If the A1 asks for the connection to be disabled, disable it |
There is a technical reason behind the etiquette as well. The help page for the Allen & Heath Avantis module repeats Allen & Heath's warning that MIDI connections are not aware of console user profiles or restrictions. A function the A1 has locked on the surface may still be reachable from Companion. Several protocols have the same blind spot. Treat a Companion connection to a desk as privileged access: a closed network, a locked Companion, and only the buttons that were agreed.
Yamaha
Yamaha digital desks are everywhere in corporate and theatre work: the CL and QL series, the TF series, the DM3 and DM7, and the flagship Rivage PM. Companion reaches them through the Yamaha Remote Control Protocol module, written by Andrew Broughton and supported through the checkcheckonetwo community forum, not by Yamaha. Its readme lists Rivage PM, CL1, CL3, CL5, QL1, QL5, TF1, TF3, TF5, TF-Rack, DM3, DM5 and DM7, and some Yamaha I/O racks.
The module offers selected set commands, such as mutes and levels, and recall and store of scenes. Its help page notes that it works only with a connected desk, not with Yamaha's offline Editor software. It can pick up a channel's colour from the desk and colour the button to match, which keeps the deck readable alongside the desk's own scribble strips.
The module also has a macro learn function: you start recording on a Companion button, operate the desk, and the operations are stored on that button. That is a convenient way to build a button, and a convenient way to build a button nobody checked. Record macros with the A1 beside you, and play them back once in rehearsal before they are trusted.
Store scene is the one command to keep off a show deck. A store overwrites the A1's saved scene with whatever the desk is doing now. Recall is what operators need; store belongs to the A1 at the desk.
dLive, Avantis, SQ and Qu
Allen & Heath desks range from the small Qu, CQ and SQ to the Avantis and the large dLive system. Each family has its own Companion module, and each uses Allen & Heath's MIDI over TCP/IP protocol: the desk listens on a network port for MIDI messages, the language music gear has used for decades, carried over the network instead of a five-pin cable.
| Desk | Companion module | Connection detail from the help page | Highlights |
|---|---|---|---|
| dLive | Allen & Heath dLive | Connect to the MixRack or the surface; port 51325 for a MixRack and 51328 for a surface by default; the encrypted ports are not supported | Every control action in the dLive MIDI over TCP/IP protocol V2.0 except get commands; scene recall from the MixRack; cue list recall and Go next or previous from the surface |
| Avantis | Allen & Heath Avantis | Firmware 2.0 or newer; MIDI/TCP on port 51325; optional console synchronisation on port 51321 | Mutes, faders, timed fades, scene recall by number or name, USB player and recorder, Virtual Soundcheck |
| SQ | Allen & Heath SQ | The desk's IP, model, MIDI channel and NRPN fader law must match the desk's own MIDI settings | Mutes, levels, soft keys, scene recall and a current-scene variable, a talkback preset |
Two details from these help pages matter on a show. First, some dLive actions, Mute Toggle and the fader increment and decrement, need to know the desk's current state. On the first press after connecting, the module asks the desk for the value and waits up to one second; if the desk does not answer, the action is skipped and a warning is logged. Adding a feedback for that channel caches the value so the first press works at once.
Second, the Avantis module will not guess. Timed and relative fader moves need a known starting level, and if it does not know the level, the help page says it refuses the move rather than guess with live audio. Its connection variables tell you whether the command path is online and, separately, whether the state it shows is synchronised. Do not trust a level or a mute on a key until synchronisation reports ready.
The dLive defaults are 192.168.1.70 for a MixRack and 192.168.1.71 for a surface, which will not match a show network like 10.0.0.0. Agree with the A1 which address the desk will use; never change the desk's network settings yourself.
DiGiCo
DiGiCo desks, the SD range and Quantum, are common on concerts and large corporate shows. The Companion DiGiCo module uses OSC, Open Sound Control, a network message format carried over UDP, and it pretends to be DiGiCo's own iPad control app. That is why setup starts on the desk, where the A1 has to add it.
The help page walks through it. On the desk, System, External Control is enabled and a device of type DiGiCo Pad is added with the Companion computer's address, not the desk's. Its examples use UDP port 7000 for the desk to send and 7001 for it to receive. A Commands Allowed file for the desk family must be loaded, otherwise the desk shows that no commands are enabled. Bundles are set off and Suppress OSC Retransmit on. In Companion, the destination is the desk's local IP address shown in the External Control window, and the ports mirror the desk's.
Every step of that happens in the desk's system menus, during the A1's setup time. Ask for it at the advance stage, not at line check. The module can also pass traffic through to a DiGiCo iPad on the same network, so the A1 does not lose their tablet because Companion is connected.
Once connected, the module controls channels, outputs, snapshots and macros. On and off actions offer Off, On and Toggle where the desk supports them; Toggle reads the current value before sending the opposite. DiGiCo macros are a natural fit for Companion: the A1 builds the macro on the desk, tested and named, and Companion only fires it.
Midas and Behringer
The Behringer X32 and the Midas M32 share a design and a Companion module. Its help page lists mutes and fader levels for channels, aux inputs, effects returns, buses, matrices and mains; send levels and mutes; mute groups; channel trim and head-amp gain; scribble-strip names and colours; loading the desk's internal cues, scenes and snippets; the built-in recorder, which Behringer calls the tape deck; and talkback. A fader move can take a fade time; running another action on that value cancels the first fade.
The Behringer WING has its own module with a long list of actions: faders, pan, sends, mutes, solo, gain, EQ, scene recall, talkback, the USB player and recorder, and the WLive SD card recorder. One point from its help page matters a great deal in practice: the WING supports only one active subscription at a time, and the most recent subscriber is the only one that gets updates. If the A1 uses another application that subscribes to the desk, the two can fight, and one of them will show the wrong state. Ask what else is connected before you add Companion.
The WING module lists Format Card and Delete Session among its recorder actions. Those belong nowhere near a show deck. When a module offers commands that destroy data, leave them out entirely, and if a button must exist, protect it as chapter 16 describes.
Other desks have modules too: the Behringer X Air, the Soundcraft Ui series and other Allen & Heath models among them. The same approach applies to all of them: read the module's help page, set the desk's network control on with the A1, and test each button against the show file.
Mic mutes
A microphone that is open when it should be closed broadcasts a private remark to the whole room. One that is closed when it should be open leaves the CEO talking to nobody. Mic mutes are the most sensitive buttons in audio, and the most commonly put on Companion. Treat them with the most care.
The principle is that mutes must fail safe. If Companion, the network or the deck fails, nothing on the desk should change and the A1 must still have full control of every channel at the surface. A Companion button is a convenience on top of the desk, never the only way to mute a microphone.
| Practice | Why |
|---|---|
| Use explicit Mute and Unmute actions for show cues, not Toggle | A toggle sent when the state is unknown, or pressed twice, leaves the mic in the opposite state from the one intended |
| Put the desk's own state on the key with a feedback | The key should show what the desk is doing, not what Companion last sent; the dLive module, for example, colours a key red when the channel is muted |
| Mute groups and DCAs from the A1's show file | The A1 already organises the mics; your button follows their grouping |
| Keep mute keys away from transport and cue keys | A mute pressed by mistake is heard by the room at once |
| Never mute the VOG or the host from a deck someone else can reach | Those mics carry the show; their mutes stay with the A1 |
| Check the connection status before trusting a key | A grey or disconnected key is showing old information |
On Brightwater Health 2027 the panel of five shares a mute group on the desk. The A1 agrees one Companion key for it: Mute Panel and Unmute Panel as two separate keys, each with a feedback from the desk that turns the key red while the group is muted. Dana Okafor's host mic and the VOG are on the deck as display keys only, showing state and level, with no action.
Even a good button can be pressed at the wrong time. The A1 decides whether any mute key lives on a deck outside their own reach, and many will say no. That is a normal answer.
Walk-in music and stings
Walk-in music plays while the audience arrives. A sting is a short musical hit, a few seconds long, under an award name or a speaker's walk-on. Both are classic Companion buttons, because they are fired on a cue from the script and must be instant.
Where they play from decides which machine the button talks to. Many desks have a built-in USB player or recorder, and the modules reach it: the Behringer X32 tape deck's play, stop and pause; the WING USB player's play, stop, pause, previous and next; the Avantis USB playback and recording. On most larger shows the music comes from a playback computer running QLab or similar, which chapter 12 covers; there the Companion button fires the playback software, and the desk channel only carries the audio.
Either way, the volume belongs to the A1. A sting button should start the sound, not set the fader. If a walk-in needs to fade out at doors close, agree with the A1 whether the fade is theirs on the desk, a timed fader action they have approved, or a fade built into the playback cue.
Stings need to land on the beat of the announcement, so they often sit on a combined cue with the slide and the lights, described in chapter 16. Test the timing in rehearsal at show level, never during the show.
How to do it
- At the advance, ask the A1 whether they want Companion on the desk, what for and who will press it. Note the desk model and software version.
- Read the Companion module's help page for that desk and send the A1 the settings it needs, such as External Control on a DiGiCo or the MIDI channel on an Allen & Heath.
- Sit with the A1 and list every button: label, action, channel, mute group or scene number, and who presses it. Get their yes on the list.
- Agree the desk's address on the show network, for example 10.0.0.50, and let the A1 set it. Add the connection in Companion and confirm its status is OK.
- Build display keys first, with feedbacks showing the desk's state. Check they follow the desk when the A1 moves a fader or presses a mute on the surface.
- Build the agreed action keys with explicit Mute and Unmute actions, and leave Store, Format and Delete commands off the deck.
- Test every key with the A1 watching, at line check, with the speakers safe. Change nothing after they sign it off.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| The first press of a toggle or fader-increment key on a dLive does nothing. | The module had not yet read the value from the desk, and the desk did not answer within the timeout. | Add a feedback for that channel so the value is cached, check the desk's MIDI feedback is on, and prefer explicit Mute and Unmute actions. |
| The WING keys show levels that do not match the desk. | Another application has taken the desk's single subscription. | Find out with the A1 what else is connected, agree which tool keeps the subscription, and restart the Companion connection. |
| The DiGiCo connection shows OK but nothing happens. | The Commands Allowed file is missing or wrong, or the DiGiCo Pad device points at the desk's address instead of Companion's. | With the A1, load the correct Commands Allowed file and set the device address to the Companion computer, then match the ports. |
| An Avantis fade key refuses to move the fader. | The module does not know the starting level and will not guess with live audio. | Enable console synchronisation if the A1 agrees, wait for it to report ready, or use a fixed-level action. |
| A mute key shows green but the mic is muted. | The key shows what Companion last sent, not the desk's state, or the connection has dropped. | Use a feedback driven by the desk, watch the connection status, and trust the desk's surface over the key. |
Practice it
On Brightwater Health 2027 the A1 runs a Yamaha CL5 at 10.0.0.50. The producer asks you to put the panel mics, the host mic, the award stings and the scene changes on your Companion deck so the A1 can concentrate on mixing.
- You can explain why the A1 owns the desk and agree every button with them first.
- You can name the Companion module and connection method for Yamaha, Allen & Heath, DiGiCo, Behringer and Midas desks.
- You can set up a display key that shows a channel's mute and level from the desk.
- You can build mic mute keys that fail safe and avoid toggles for show cues.
- You can keep Store, Format and Delete commands off a show deck.
- You can fire walk-in music and stings from the right machine without taking the level from the A1.
Controlling Lighting Consoles
Lighting consoles have their own operators, cue lists and Go buttons, and Companion can reach almost all of them. This chapter shows how Companion connects to the grandMA, ETC Eos, ChamSys and Hog consoles, how it can drive lights with no console at all, and why the most important lighting decision is who presses go.
Lighting consoles have their own operators, cue lists and Go buttons, and Companion can reach almost all of them.
Controlling lighting consoles
A lighting console, or LX desk, stores every look in the show as a cue. Cues sit in order in a cue list, and the operator presses Go to move to the next one, with whatever fade time the designer set. The person who designs the lighting is the LD, the lighting designer; on smaller shows the LD also runs the desk, and on larger ones a programmer or board operator does. The desk sends its output to the lights over DMX, a control signal with 512 channels per universe, or over the network as Art-Net or sACN, which carry DMX universes over Ethernet.
Lighting technicians use Companion for the same reasons as everyone else: buttons in a second place, state on a key, and one press that fires several things. The common uses are below.
| Use | Example | Usually who presses |
|---|---|---|
| Extra Go and Back buttons | A Go key on a deck at the LD's side while they watch the stage | The LD or the board operator |
| Run a cue, macro or preset by number | House lights to walk-in state | The board operator, or a stage manager if agreed |
| Show cue state on a key | Active and pending cue number and label on the deck | Anyone; display only |
| A combined show cue | Slide, sting and lighting look on one key for an award | Whoever calls the segment, by agreement with the LD |
| A virtual keypad | Numbers and command keys for an onPC console with no hardware | The operator of that console |
In the IP plan used in this book the LX desk is at 10.0.0.60 and Companion at 10.0.0.10. Lighting networks are often kept separate from the show control network, because Art-Net and sACN can carry a lot of traffic. Ask the LD where Companion should join, and never plug into the lighting network without them knowing.
The rules from the audio chapter apply with equal force. The LD owns the desk and the show file. Every Companion button that touches lighting is agreed with them, and the most important of those rules is this: never fire lighting cues from a deck the LD has not approved.
grandMA, ETC Eos, ChamSys and Hog
Each major console family has its own Companion module, and each module reaches the desk in a different way. Read the help page, set the desk side with the LD, and test on the show file.
grandMA2 and grandMA3
MA Lighting's grandMA consoles run large concerts, television and corporate shows. The grandMA2 module connects by Telnet, a plain text command connection, and the help page reminds you to switch on Telnet Remote in the console's global settings first. It can run any command-line command, press and release console keys, turn encoders and spin the wheel, and it shows the last response from the console in a variable.
The grandMA3 module uses OSC. The console's IP, OSC port and prefix are set in the module and must match an OSC line on the console, set up under In and Out, with Receive and Receive Command ticked; the module's help page says it will not work otherwise. MA's own manual explains that the prefix, a short word with no slashes, means the console only processes messages that start with it, and that Receive Command is what allows command line commands over OSC. The module can select sequences, groups and MAtricks, call macros and plugins, run quick keys and commands, and toggle executor buttons.
Run Command is the most powerful action on either module. It types into the console's command line as if the operator did. On a running show, a command typed by Companion lands in the same command line the programmer is using. Agree with the LD exactly which commands are allowed, and prefer macros and executors they have built and named.
ETC Eos
ETC's Eos family, from the Element and Ion to the Eos Ti and Apex, is the standard in theatre and common in corporate work. The Companion module talks OSC over TCP, on port 3032, or port 3037 when Use TCP SLIP is set. The help page shows where OSC RX and TX are switched on in the console's setup, which moved between software versions.
The module has a setting that matters for etiquette: the User ID. Eos lets several users work on one show, each with their own command line. The help page advises using a different User ID for Companion if someone will be running the console while it is being controlled, otherwise their command lines can conflict. Give Companion its own user, agreed with the LD.
The actions include Go and Stop/Back, which behave like the console's own buttons, Run Cue, Run Macro, Fire Preset, channel, group and submaster intensity, key presses and custom commands. Feedbacks colour a key when a chosen cue is pending or active, and when the connection changes. Variables show the active and pending cue number and label, the show name and the command line. A Go key that shows the pending cue number is one of the most useful lighting keys there is.
ChamSys MagicQ and QuickQ
ChamSys MagicQ consoles and the free MagicQ PC software are common with rental companies and on tours. There are two Companion modules: one using OSC, with feedback, and an older one using UDP, with a default port of 6553 in its help page. The OSC module can set and adjust playback levels, Go, flash, pause and release playbacks, jump to a cue, control execute buttons and faders and the 10 Scene controls, and send remote commands.
Its help page is unusually frank about limits, and they are worth learning. The Desk Black Out action presses the console's blackout button; what that does depends on how the console's DBO function is set, which the module cannot read. On some settings Black Out Off does not end the blackout, and on one it taps tempo instead. The blackout feedback shows what Companion last sent, never what the rig is doing. Do not rely on that key to tell you whether the stage is dark. ChamSys QuickQ, the simpler range, has its own module with playback levels, Go, flash, pause, release and 10 Scene.
High End Hog 4
The Hog 4 family, now supported by ETC, takes OSC from tablet apps such as TouchOSC. ETC's support article on setting up the iHog OSC app recommends console input port 7001 and output port 7002, says the two must differ, and shows where to enable OSC in and out in the console's network settings. The Companion module can Go on a cue in a cue list, Go, halt, release and resume cue lists, scenes and macros, press master and hardware keys, set master fader levels and send MIDI notes. Its help page says it does not yet read status back, so Hog keys cannot show cue state.
| Console | Companion module | How it connects | Reads state back |
|---|---|---|---|
| grandMA2 | grandMA2 (telnet) | Telnet, with Telnet Remote on in global settings | Last console response only |
| grandMA3 | GrandMA3 | OSC; IP, port and prefix match an OSC line with Receive and Receive Command on | Not listed in the help page |
| ETC Eos family | ETC Eos | OSC over TCP, port 3032, or 3037 with TCP SLIP | Yes: active and pending cue, show name, command line |
| ChamSys MagicQ | Chamsys MagicQ (OSC) or MagicQ UDP | OSC to the console's receive port, with a feedback port; or UDP | Playback and execute levels with OSC; not blackout |
| High End Hog 4 | High End Hog4 | OSC, console input and output ports set in network settings | No |
Other consoles have modules too, among them Obsidian ONYX over OSC, and MA's MIDI Show Control over Ethernet. Whatever the desk, confirm in its module's help page what it can and cannot do.
Lighting with no console
Not every show has a lighting console. A small corporate breakout, a press conference, a product launch with four LED fixtures, a film set with a few practical lamps: often the lights need only a handful of states, on, off, a colour, a level. Companion can send DMX itself, over the network, through its generic Art-Net and sACN modules. Each fixture's DMX channels are then set from Companion buttons, and the lights listen to a network-to-DMX node or take Art-Net or sACN directly.
Each module sends one universe; for more universes you add more connections. Values run from 0 to 255 on each of the 512 channels, and both modules can fade to a new value over a set time.
| Module | How it sends | Useful actions from the help page |
|---|---|---|
| Generic Art-Net | To one node's IP address, which the help page recommends, or to a broadcast address on small dedicated networks only | Set a value, set several channels at once, set a run of consecutive channels for a multi-channel fixture, offset a value; each with a fade time |
| Generic sACN (E1.31) | Multicast to the universe's group address automatically, or unicast to one receiver; send or receive mode | Set or fade single channels in 8-bit or 16-bit or as a percentage, set several channels, offset; receive mode exposes channel values as variables |
Two cautions. First, if a lighting console is also on the network, Companion and the console can both send the same universe. With sACN the receiver takes the source with the higher priority; the Companion module sends at priority 100 by default, which is also the usual default, so the two may merge or fight. Never send onto a universe the LD is using unless they have set it up for you. Second, Art-Net broadcast sends every packet to every device on the network; the module's help page keeps it to small or dedicated lighting networks, and unicast is the better habit.
On The Night Shift, a practical lamp in Nora Vance's office set is on a small dimmer fed by sACN. The gaffer, who heads the electrical department on a film set, agrees a single Companion key that fades it from 0 to 70 percent over two seconds and a second key that fades it back. Chapter 17 covers light from the deck on film sets in detail.
A console-free rig still has an owner. On a show it is the LD or the lighting technician; on a film set it is the gaffer. The same agreement applies: they say which channels Companion may touch and what each button does.
Who presses go
On a show, cues are called. In a theatre the stage manager calls them over the headset: standby lights cue 42, then lights cue 42 go, and the board operator presses Go on the word. On a corporate show the show caller or producer does the same for lights, sound, video and slides. On a concert the LD often runs the show by eye and ear, or the songs are timecoded so the console runs cues from the music, as on The Low Tides.
Companion makes it easy to put a lighting Go on a button anywhere: on the video operator's deck, on a combined cue, on a tablet. That ease is the danger. A Go fired twice skips a cue; a Go fired by the wrong person at the wrong moment puts the stage in the wrong look in front of the audience. Who presses go is decided by the LD and the show caller, not by the person who programmed the deck.
| Show | Who presses lighting go | What Companion does |
|---|---|---|
| Brightwater Health 2027 | The lighting operator, on the show caller's call; one award cue combined by agreement | Display keys showing active and pending cue; the combined award key, approved by the LD |
| The Low Tides | The console, from timecode, with the LD ready to take over | Display only on any deck outside the LD's position; no lighting actions |
| The Night Shift | The gaffer or the dimmer operator, on the first assistant director's cue | Agreed keys for practical lamps |
When a lighting cue is part of a combined Companion cue, the same rule holds: the LD approves that key before it exists, and approves it again if anything on it changes. Chapter 16 covers building those combined cues; this is the lighting part of the agreement.
Treat some lighting keys as dangerous: blackout, release all, anything that clears or overwrites, and Run Command with free text. Leave them off show decks, or protect them as chapter 16 describes. And remember that the console keeps its own Go button, its own faders and its own operator. If Companion fails, the show continues from the desk.
How to do it
- Ask the LD whether they want Companion on the lighting desk, what for, and who will press each key. Note the console, its software version and which network Companion should join.
- Read the module's help page and give the LD the console-side settings it needs, such as Telnet Remote on a grandMA2, an OSC line with Receive Command on a grandMA3, or a separate User ID on Eos.
- Let the LD set the console's network side. Add the connection in Companion with the console's address, for example 10.0.0.60, and confirm its status is OK.
- Build display keys first: active and pending cue where the module offers them. Check they follow the desk when the operator presses Go.
- Build only the action keys the LD agreed, using cue, macro or executor numbers from their show file. Leave blackout, release all and free-text commands off the deck.
- Test each key with the LD watching, in a rehearsal or a dark stage session, never during the show. Change nothing after they approve it.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| The grandMA3 connection is up but nothing happens. | Receive or Receive Command is not ticked on the console's OSC line, or the prefix or port does not match. | With the LD, check the OSC line under In and Out matches the module's IP, port and prefix, with Receive and Receive Command on. |
| The Eos operator's command line fills with strange commands. | Companion is sending as the same User ID as the operator. | Set a separate User ID for Companion in the module, agreed with the LD and set up on the console. |
| The MagicQ blackout key shows off but the rig is dark. | The feedback shows what Companion last sent; MagicQ never reports blackout state, and the DBO function may be latched. | Look at the stage and the console, not the key; ask the LD how DBO is set and remove the key if it cannot be trusted. |
| Fixtures flicker between two looks. | Companion's Art-Net or sACN module and the console are sending the same universe. | Stop the Companion connection, and agree with the LD a universe or channels that only Companion uses. |
| A lighting cue was skipped during the show. | Go was pressed on the console and on a Companion key for the same cue. | Agree one person per Go; turn the second deck's Go into a display key showing the pending cue. |
Practice it
The Low Tides play a 3,000-seat theatre. The LD runs a grandMA3 at 10.0.0.60, with most songs timecoded. The video director asks for a lighting Go and a blackout key on the video deck for the encore, and the tour manager wants a house-lights key at the merchandise stand.
- You can explain why the LD owns the desk and why no lighting cue fires from a deck they have not approved.
- You can name the Companion module and connection method for grandMA2, grandMA3, ETC Eos, ChamSys and Hog 4.
- You can set up a key that shows the active and pending cue on an Eos console.
- You can give Companion its own user or prefix so it does not collide with the operator.
- You can drive a small rig with no console over Art-Net or sACN without fighting a console on the same universe.
- You can say who presses go on each kind of show and keep dangerous lighting keys off the deck.
Building Cues
A cue is one planned moment of the show: the lights change, the video rolls, the slide moves on, all at the instant the caller says "go". This chapter teaches how to turn the show's paperwork into Companion buttons that fire those moments cleanly, whether one press moves one machine or five, and how to keep the buttons that can end a show out of reach of a stray finger.
A cue is one planned moment of the show: the lights change, the video rolls, the slide moves on, all at the instant the caller says "go".
What a cue is
On a show, a cue is a numbered, written moment when something changes. "Video cue 4: play the opener" is a cue. "Lights 12: house to half" is a cue. Every cue has three parts: what changes, which machine changes it, and the moment it happens. The moment is usually set by a person called the show caller, often the stage manager or the producer, who speaks on headset ("comms") and says "standby" before the cue and "go" when it fires.
Companion turns a cue into a button. You put the cue number and a short name on the key, you load it with the actions that make the change, and when the caller says "go" you press it. The earlier chapters taught how to build a button and how to talk to each kind of machine. This chapter is about the decisions above that: how many machines one cue button should drive, how to arrange the buttons so they follow the show, and how to keep the dangerous ones safe.
| Word | What it means on a show |
|---|---|
| Cue | One planned, numbered change in the show |
| Cue sheet or cue list | The written list of every cue for your department, in show order |
| Run of show | The producer's minute-by-minute plan of the whole event, every segment and who is on stage |
| Show caller | The person who calls standby and go for every department, usually on comms |
| Standby | Get ready, the next cue is coming; finger near the button, eyes on the stage |
| Go | Fire the cue now |
| Transport | Play, pause, stop, next, previous and similar controls that move media |
One button, many machines
The question every new programmer asks is whether one cue button should fire several machines at once, or whether each button should drive one machine. Patrice's answer, from corporate shows, concerts and film sets, is that it is however you program it. Companion lets a single button hold actions from many connections, so both ways are open to you. The choice belongs to the programmer, and the show decides which one fits.
One button, one machine
Here each key does one thing on one device: "PB-A PLAY", "ATEM CUT", "PPT NEXT". Nothing happens that is not written on the key. If the opener video needs Playback A to roll and the ATEM to cut to it, you press two keys in order, or two people each press their own.
This fits when cues are loose and the timing is decided live, when the order can change at any moment, when several operators share the work, and when you are new to a show and still learning it. It is also the easiest layout to troubleshoot: if a key misbehaves you know exactly which machine to look at. Most transport decks are built this way, one key per command per machine, because transport is about live control rather than planned moments.
One button for several machines
Here one key holds a whole cue. At Brightwater Health 2027 the key "C7 OPENER" might roll Playback A at 10.0.0.31, cut the ATEM at 10.0.0.20 to that input, and recall a lighting cue on the desk at 10.0.0.60, all from one press. The caller says "go" once and three departments move together.
This fits when a moment has to land in several places at exactly the same time, when the cue is rehearsed and will not change, and when one person owns all the machines involved. It also fits moments that are too fast for two hands: a video that must start on the same frame the switcher cuts to it.
When each fits
| Situation | Usually fits | Why |
|---|---|---|
| Rehearsed opener: video, switcher and lights land together | One button, many machines | One press, one moment, no gap between machines |
| Panel of five, mics and cameras follow whoever speaks | One button, one machine | Nobody knows the order in advance |
| Concert song starts on timecode | One button, many machines, or a trigger from timecode | Everything must start on the same frame |
| Two operators share the show | One button, one machine | Each person owns their own machines and their own keys |
| Film set, a phone text arrives as an actor reacts | One button per device, plus one reset key for all of them | Cues are timed to the actor; resets must be fast and total |
| You inherit a show file you did not build | Read every multi-machine button before you trust it | A key can do more than its label says |
Most working decks mix the two. Patrice's habit on a show with many machines is two decks: one for transport, built one key per command, and one for all the cues, where a key may drive one machine or several depending on the cue. Chapter 9 covers that layout. Whatever you choose, the label must tell the truth. A key that fires three machines says so, for example "C7 OPENER PB+ATEM+LX", so the next person, or you at two in the morning, knows what it will do.
Cues follow the paper
Every cue button starts on paper. The paper is the run of show from the producer and the cue sheet for your department. Your buttons copy the paper: the same numbers, the same names, the same order. When the caller says "standby video 7", you look for a key that says 7, not a key you named "OPENER THING".
Before you program anything, write your cue sheet. For each cue note the number, the name, what changes, which machines, what triggers it (the caller, a line spoken on stage, timecode), and any note about timing. Then build the buttons from the sheet. If the paper changes, change the sheet first and the buttons second, never the other way round.
| Cue | Name | Machines | What happens | Called on |
|---|---|---|---|---|
| 1 | Walk-in | PB-A, Audio | Walk-in loop plays, walk-in music up | Doors |
| 2 | VOG | Audio | Voice of god announcement plays | Caller, five minutes to start |
| 3 | Opener | PB-A, ATEM, LX | Opener video rolls, switcher cuts to it, house lights out | Caller |
| 4 | Host on | ATEM, LX, Audio | Camera on Dana Okafor, stage wash up, host mic open | End of opener |
| 5 | CEO slides | PPT, ATEM | Martin Lowe's deck on screen | Dana says his name |
| 6 | Awards sting | PB-B, Audio | Award graphic and sting play | Each winner announced |
That is the general session at Brightwater Health 2027, cut short. The "Machines" column is where you decide, cue by cue, whether the button drives one machine or several. Cue 6 is called many times during the awards, so it wants its own key that can be pressed again and again without stepping forward, while cue 3 happens once.
Laying the cue page out
Lay cue keys in show order, left to right and top to bottom, the way you read a page. Put the cue number first in the label, then a short name. Group a segment on one row if you can: the walk-in cues on the top row, the opener and host on the next, the awards on the next. Leave a blank key between segments if it helps the eye. Colour keys by department or by type, and keep the same colour meaning across every show you do, as chapter 6 taught.
Large shows outgrow one page. Then the page becomes the segment: page 3 "GENERAL SESSION", page 4 "AWARDS", page 5 "CLOSE". Name each page. Put a page-change key in the same corner of every page so your hand learns where it lives.
Order and timing in a cue
When one button drives several machines, the order and timing of its actions matter. Chapter 6 introduced actions, delays and order on a single button. Here is how those tools behave inside a cue.
In current versions of Companion the actions at the top level of a button run in what the user guide calls Concurrent mode: they all start together, in parallel, except where you insert the built-in "Wait" action, which delays every action that follows it. The Wait action replaced the older per-action delays in Companion 3.5. For finer control there is an "Action Group", which can hold other actions and run them Concurrent (together) or Sequential (one after the other, each waiting for the last to finish).
Sequential mode has a catch the user guide spells out: not every module tells Companion when an action has completed. With a module that does, sequential order is reliable. With one that does not, Companion cannot know when to start the next action, so test the sequence and, where the gap matters, use a Wait.
| Tool | What it does | Use it when |
|---|---|---|
| Actions at the top level | Start together, in parallel | Several machines must move at the same instant |
| Wait action | Holds every action after it for the time you set | One machine must lead another by a known gap |
| Action Group, Sequential | Runs its actions in order, each after the last finishes | Step two must not start before step one is done |
| Action Group, Concurrent | Runs its actions together | A bundle inside a longer sequence must fire at once |
| Duration group | Actions that run only after the key is held for a set time | A dangerous action needs a long press |
Why timing matters between machines
Machines do not respond at the same speed. A playback machine may need a few frames to start rolling. A switcher cut is almost instant. A lighting cue has its own fade time set on the desk. If the opener key starts Playback A and cuts the ATEM at the same instant, the audience may see a frame of black or a frozen first frame before the video moves. The usual fix is to start the playback first, then add a short Wait before the switcher cut. Find the right gap in rehearsal, by watching program output, not by guessing.
Note the timing on the cue sheet: "PB-A play, wait 200 ms, ATEM cut". If someone rebuilds the button later, the paper tells them why the wait is there.
Buttons that step through cues
Companion buttons can have steps, which replaced the old latch feature in Companion 3.0. Each press runs the next step's actions, and the button cycles back to the start after the last step. A step button can hold a whole run of cues behind one key, which some operators like for a fixed sequence such as the walk-in loop, the VOG and the opener. The risk is that the key does not tell you where it is unless you show the step on its face, and a double press skips a cue. On a show where cues may be called out of order, separate keys are safer.
Standby and go
A called show runs on two words. The caller says "standby video 3" a few seconds or a minute before the moment. You answer "standing by" (or the house's form of it), find the key, and rest your eyes on the stage or the program monitor. When the caller says "video 3, go" you press on "go", not before and not after. If you are not ready when standby is called, say so at once: "video not ready".
Companion can help you stay on the right cue. Some operators build a "next cue" display: a custom variable (chapter 8) holds the number of the next cue, a key shows it in large text, and each cue key sets the variable to the cue that follows. Others use feedbacks (chapter 7) so the next cue key lights in a standby colour and the last fired cue shows a different colour. Keep it simple: one colour for "next", one for "done", and the rest dark or neutral.
Do not build a single "GO" key that fires whatever cue is next unless the show is a fixed sequence and everyone has agreed it will never jump. Called shows jump: a speaker runs long, an award is skipped, the producer asks for the sting again. With one key per cue you can fire any cue the caller names. A single GO key only knows "next", and when the show changes order it fires the wrong moment.
| You hear | You do |
|---|---|
| Standby video 3 | Answer, find cue 3, hand near the key, eyes on stage or program |
| Video 3, go | Press on the word go |
| Standby video 3 and lights 12 | Your key may drive both, or each operator presses their own; know which before the show |
| Hold | Do not press; the cue is delayed |
| Cancel video 3 | Take your hand away; the cue will not happen |
| Silence on comms at the moment you expected go | Do not press; a cue is fired by the word, not by your sense of timing |
Cues across departments
Departments on a show are video, audio, lighting, and on larger shows stage management and show control. Each department normally fires its own cues on its own console. Companion makes it easy to reach into another department's machine, because the audio desk at 10.0.0.50 and the lighting desk at 10.0.0.60 sit on the same network as your switcher. Being able to reach a machine does not mean you should fire it.
A key that fires a lighting cue or opens a microphone is taking over part of someone else's job. Before you build one, agree it with the person who owns that machine. They need to know your key exists, what it does, and when you will press it. They also need a way to override it from their own desk, and they will want to see the cue in their own cue list so their desk stays the record of what happened.
When a shared cue makes sense
Shared cues earn their place on moments that must land together and are rehearsed. At The Low Tides, a song may start on timecode, with the media server, lights and video all following the clock. Chapter 11 covers that. On a corporate show the opener often works best as one shared cue: the video, the house lights going out and the music fading all on one press. On those moments, agree in advance who presses, write it on every department's cue sheet, and rehearse it.
| Question | Ask it of |
|---|---|
| May my key recall your cue? | The lighting or audio operator who owns the desk |
| Which cue number on your desk? | The same operator; write it on your sheet |
| Who presses on the day? | The caller and both operators |
| How do you override me? | The owner of the desk; they must always be able to |
| What happens if my key fails? | Everyone; the owner fires it by hand from their desk |
Audio and lighting operators use Companion too, for mic mutes, walk-in music, lighting presets and more, as chapters 14 and 15 explain. When several departments each run their own Companion, or share one, the same rule holds: every cue has one owner, and everyone knows who it is.
Protecting the dangerous buttons
Some keys can end a show if pressed by accident: stop all playback, fade the switcher to black, cut the stream, mute every microphone, blackout the stage. These are the dangerous buttons. They need to exist, because sometimes you must do exactly that, but they must be hard to press by mistake.
| Protection | How to build it in Companion | Good for |
|---|---|---|
| Place it apart | Put it in a corner, away from the cue keys, with blank keys around it | Every dangerous key |
| Colour it | One warning colour, used only for dangerous keys, on every show | Every dangerous key |
| Long press | Add a duration group so the action runs only after the key is held, for example for one second | Stop all, fade to black, end stream |
| Two-step arm | Step 1 of the button only arms it and changes its colour; step 2 fires; a Wait and a step reset disarm it if not confirmed | Rare, high-risk keys |
| Separate page | Keep dangerous keys on their own page, reached on purpose | Keys used only in emergencies |
| Lock the deck | PIN lockout in Companion, set on the Surfaces page and in Settings | Decks left unattended at FOH or backstage |
A long press uses the duration groups described in the user guide. Once a duration group is added, the normal release actions become "Short release" actions, and the timed group only runs when the key has been held for its set time. The press actions still run at once, so leave them empty on a dangerous key, or use them only to change the key's colour as a warning.
PIN lockout locks every connected surface after a set time of inactivity, or on demand from a button, and needs a PIN to unlock. The "Never pin code lock" setting on a surface keeps a chosen deck unlocked, for example the one in front of you, while a deck left at the lectern locks itself. Chapter 20 has more on giving other people safe buttons.
Never test a new button on a live show. A dangerous key, above all, is built and tested in rehearsal with every machine safe to interrupt, and once the show is running you leave it alone.
How to do it
- Get the run of show and your department's cue sheet. If there is no cue sheet, write one from the run of show and have the caller check it.
- For each cue, write the number, name, machines, what happens and what it is called on.
- Decide, cue by cue, whether the key drives one machine or several. For any key that reaches another department's machine, agree it with that operator first.
- Build the keys in show order on a named page, cue number first in every label. Name multi-machine keys so the label lists every machine.
- Set the order and timing inside each multi-machine key, using Wait actions or Action Groups, and write the timing on the cue sheet.
- Add feedbacks so the next cue and the last fired cue are easy to see.
- Build the dangerous keys apart, in the warning colour, with a long press or a two-step arm.
- Run every cue in rehearsal with the caller, watching program output, and adjust the timing. Export the configuration once it is right.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| The audience sees a frame of black before the opener video moves | The switcher cut and the playback start fired at the same instant | Start playback first, add a short Wait before the cut, and find the gap in rehearsal |
| A cue fires on the wrong machine, or fires on more machines than expected | A multi-machine key was copied from another show, or its label does not list every machine | Read every action on inherited keys; label multi-machine keys with every machine they drive |
| The lighting operator's desk jumps to a cue they did not fire | Your key recalls a lighting cue nobody agreed | Agree every cross-department key with the desk owner, and write it on both cue sheets |
| A single GO key fires the wrong cue when the show changes order | The key only knows the next cue, and the caller skipped one | Use one key per cue on called shows; keep GO keys for fixed sequences |
| Someone brushes the deck and the stream stops | The end-stream key had no protection | Move it apart, colour it, and put it behind a long press or a two-step arm |
| A sequential group pauses forever or runs out of order | The module does not report when its action has finished | Test sequences with that module; use a Wait where completion is not reported |
Practice it
Brightwater Health 2027, general session. You run video: Playback A (10.0.0.31), Playback B (10.0.0.32), the PPT machine (10.0.0.40) and the ATEM (10.0.0.20), all from one Companion at 10.0.0.10. The opener must roll on Playback A as the ATEM cuts to it and the house lights go out. During the awards, the sting on Playback B plays each time a winner is named, in no fixed order. The producer also wants a key that fades the ATEM to black.
- You can explain when one key should drive one machine and when it should drive several.
- You can turn a cue sheet into a page of keys in show order.
- You can set order and timing inside a cue with Wait actions and Action Groups.
- You press on the word "go", not on your sense of timing.
- You agree every cross-department key with the owner of that desk.
- You can protect a dangerous key with placement, colour and a long press.
Companion on Film Sets
On a film or television set, every screen the camera can see is cued by the playback operator, and a Stream Deck running Companion is one of the tools that operator reaches for. This chapter teaches what changes when the deck moves from a live event to a set: the camera can see your light, the room must be silent while the camera rolls, and every take ends with a reset that has to be fast and total.
On a film or television set, every screen the camera can see is cued by the playback operator, and a Stream Deck running Companion is one of the tools that operator reaches for.
Companion on a film set
On a film or television production, the person who runs every screen in front of the camera is the playback operator, part of the department known as 24-frame playback. When Maya in the invented drama The Night Shift reads a text from Leo Marchetti, the text arrives because the playback operator cued it. When the newsroom monitors behind Nora Vance change to breaking news, the operator cued that too. Playback operators cue every on-camera screen: phones, tablets, laptops, monitors, televisions, projection and LED walls.
That is a lot of machines to cue at once, often from a cart at the edge of the set. Companion fits the job for the same reason it fits a corporate show: one panel can talk to many machines. Patrice has controlled playback machines from Companion on film sets as well as on corporate shows and concerts. A typical cart might have a computer playing the newsroom monitors in PlaybackPro or QLab, a second computer driving an LED wall outside a car window, and phones running ProtoPie interactions, all within reach of one deck.
| Screen in the scene | What usually plays it | What a Companion key might do |
|---|---|---|
| Background monitors in the newsroom | A playback computer running PlaybackPro or QLab | Start the loop; switch to the breaking news clip on cue |
| A television in the scene | A playback computer or a media player | Play the news report as the actor turns to look |
| Maya's phone | A ProtoPie interaction on the phone | Send the message that makes Leo's text arrive |
| City through the car windows | An LED wall fed from a media server or playback computer | Start the drive plate; hold on its first frame |
| Every screen in the shot | All of the above | Reset everything to the first frame for the next take |
How a set differs from a show
Most of this book is about live events, where the audience watches the stage once, as it happens. A set works differently, and the differences change how you build and use the deck.
| On a live show | On a film set | What it means for the deck |
|---|---|---|
| Each cue happens once | Each moment is shot many times, from several angles | Every cue must repeat exactly, and reset fast |
| The caller says standby and go | The first assistant director calls rolling, action and cut; the actor's timing is the cue | You cue off the actor, the director or a hand signal |
| The deck sits at FOH, out of the audience's view | The deck may be a few metres from the camera | Its light can show up in the shot or in reflections |
| The room is never silent | The set must be silent while the camera rolls | No clicks, no beeps, no talking on a speaker |
| The run of show is fixed for the day | The day follows the call sheet, and the order can change at any moment | Pages per scene, not one long show page |
The camera itself sits on a dolly, a jib or a rig, and it moves. A deck that is out of shot for the wide may be in shot when the dolly tracks in. Ask the camera department where the camera will go on each set-up, and move with it.
Organise pages by scene. A page named "SC 12 NEWSROOM" holds the keys for scene 12; "SC 15 MAYA FLAT" holds the next. The call sheet tells you which scenes shoot tomorrow, so the night before you build or check those pages and test them against the devices.
Light from the deck
A Stream Deck is a panel of small, bright screens. In a dark ballroom that is useful. On a set it can be a problem, because the camera sees light that your eye ignores. A deck near the edge of frame, or reflected in a window, a car windscreen, a glass-fronted cabinet or an actor's glasses, can put coloured spots of light into the shot. Light also spills: a bright white key a metre from a dark corner can lift the shadows the director of photography (DP) lit on purpose.
Companion lets you turn the keys down. Each surface has a "Brightness" setting on the Surfaces page, which sets how bright its keys are. On a set, set it low enough to read the keys and no brighter. Then make the keys themselves darker: dark backgrounds with small coloured text, not large blocks of white or bright colour. Keep one colour for "playing" so it stands out without being bright.
| Problem | What you see | What to do |
|---|---|---|
| Deck in frame | Coloured keys at the edge of the shot | Move the cart, or turn the deck away from the lens |
| Reflection | Small lights in a window, windscreen or glasses | Watch the monitor, move the deck, or shade it |
| Light spill | A coloured glow on a wall or the floor near you | Lower the brightness; use dark key backgrounds |
| Your laptop screen too | A glow on the actor's side of the set | Dim it or close it to the deck you need |
| Night exteriors | Every light reads as a light | Lowest brightness, deck shaded, and ask camera where they will look |
The surest check is the video village monitor or the camera's own monitor. Before the first take on each set-up, ask to look at the frame, or ask the camera assistant if anything of yours is in it. If a spot of light is coming from your corner, fix it before the first assistant director has to ask. On a dark set, many operators also shade the deck with a hood made of black wrap, the matte black foil the electrics and camera departments use to block light.
Back to one
When a take ends, the first assistant director calls "cut", then "back to one". Back to one means everyone returns to their starting positions for another take. For playback it means every screen in the shot goes back to its first frame, the state it was in when the take began, and it must happen fast. A crew of fifty does not wait for the screens.
This is where one button driving many machines earns its place. A single "BACK TO ONE" key for the scene can stop and cue the newsroom loop to its first frame, cue the television clip to the top, hold the LED wall drive plate on its first frame, and send Maya's phone the message that resets her interaction, all in one press. You build one such key per scene, on that scene's page, and test it until a reset is total every time.
The cue keys during the take may well stay one key per machine, because each is timed to a different moment in the actor's performance. The reset key is different: it has no timing to catch, only a state to restore, and it must not miss a screen.
| What the reset must do | Check after each take |
|---|---|
| Every device back to its first frame or first state | Look at each screen, or at its feedback on the deck |
| Nothing left playing or paused mid-clip | Feedbacks show stopped and cued, not paused |
| Phones back to the start of their interaction | Look at the phone itself before you hand it back to props or the actor |
| Wall or projection back on the first frame of the plate | Check the wall, not just the computer |
| Your next cue key ready | The first cue of the take is lit as next |
Feedbacks are what make this fast. If each device's key shows its state, you glance at the deck and see at once that one machine is still paused mid-clip. Without feedbacks you are walking the set looking at screens while everyone waits.
Working quietly
When the first assistant director calls "rolling" and the sound department is recording, the set must be silent. Any sound you make can end up on the dialogue track. That changes small habits that do not matter at a live event.
| Source of noise | What to do |
|---|---|
| Talking, even quietly | Stop when rolling is called; use hand signals or wait for cut |
| Computer alert sounds and notification chimes | Turn system sounds off on every playback machine and on the Companion computer |
| A laptop fan running hard | Keep heavy machines away from the set, or further back |
| Speakers on a playback computer | Mute local audio unless sound has asked to hear it; route audio as sound asks |
| Phones on the cart | Silent, vibrate off, unless the phone is a prop that rings on cue |
| Rolling the cart, dropping cables | Move between takes, never while rolling |
Even a key press can make a small sound close to a microphone. Press gently and keep the deck on something soft if it sits near the actors. Most of all, be still: on many takes your only work while rolling is one or two presses at the right moment, and the rest is watching.
Your cue during a take may be the actor's line, a look, a reach for the phone or a hand signal from the director or the first assistant director. Agree it in rehearsal. If a screen is cued by a line, learn the line. If the cue is a signal, stand where you can see it.
Phones, ProtoPie and Companion
Phones and tablets in a scene are often run with ProtoPie, a prototyping tool for building interactions that look like working apps. The playback team builds a "pie" that shows Maya's RIDEWELL app or a text arriving from 555-0142, and the phone plays it. To make several phones act together, or to fire a phone from a computer, ProtoPie Connect runs on a computer and passes messages to the phones. Each message is a name and a value that the pie listens for.
Companion can join in. Bitfocus lists a module called ProtoPie Bridge whose help page describes one action, "Send Message", with a message and a value, sent to a computer running ProtoPie Connect at the IP address and port you set in the connection. With it, a Companion key can send the message that makes Leo's text arrive, and the scene's back-to-one key can send the message that resets every phone. It is a simple, older module, so check that it appears in the connection list of the Companion version you run, and test it on your own phones before you plan a scene around it.
A second route needs no module. ProtoPie can react to a key pressed on a keyboard, so a Companion key that sends a keystroke to the computer running the pie can fire it. Chapter 13 covers sending keystrokes from Companion, and the same tools work here.
| Route | How it works | Good for |
|---|---|---|
| ProtoPie Bridge module | Companion sends a message and value to ProtoPie Connect, which passes it to the phones | Several phones cued or reset together |
| Keystroke | Companion sends a key press to the computer running the pie | One device driven from one computer |
| Operator's own trigger | A hidden touch or a second device the operator controls | When the phone is in the actor's hand far from the cart |
Phones in a scene usually connect over wireless, and wireless drops. Keep a way to cue or reset each phone by hand, and know where every phone is between takes, because props and the actors handle them too.
Where to learn the whole job
This chapter covers the deck. The playback job is much wider: reading the script, the breakdown, clearances, how each kind of screen behaves on camera, syncing screens to the camera, coaching actors on their interactions, and the language and manners of a set. Reboot's course Introduction to 24 Frame Playback teaches all of it, using the same invented series, The Night Shift.
How to do it
- From tomorrow's call sheet, list the scenes and every screen in each one.
- Build or check one page per scene, named by scene number and set, with a cue key per device and one back-to-one key for the whole scene.
- Add feedbacks so every device shows playing, paused or cued on its key.
- On set, turn system sounds off on every machine and set the deck's brightness low.
- Ask where the camera will be for each set-up, and place the cart and deck out of frame and out of reflections.
- Look at the frame on the monitor before the first take and fix any light from your corner.
- Agree each cue with the actor, the director or the first assistant director, and test every cue and the reset in rehearsal.
- After each cut, press back to one, check every screen and every feedback, and be ready before the crew is.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| A small coloured light shows in a car windscreen in the shot | The deck is reflected in the glass | Move or shade the deck, lower its brightness, and check the frame on the monitor |
| One monitor is still on the last frame after back to one | The reset key missed that machine, or its command failed | Add the machine to the reset key, add feedbacks, and check every key after each reset |
| Sound reports a chime on the take | A notification or system alert played on a playback computer | Turn system and notification sounds off on every machine before the day starts |
| The phone text arrives a beat late | The cue was fired off the operator's guess, not the agreed moment | Agree the cue (line, look or signal) in rehearsal and watch for it |
| The phone does not respond to the Companion key | The phone lost its wireless link, or ProtoPie Connect is not running | Check the link and Connect, and keep a way to cue the phone by hand |
| The deck is in frame after the dolly tracks in | The deck was placed for the wide shot only | Ask camera about every set-up and move the cart before each one |
Practice it
The Night Shift, scene 12, a newsroom at night. Six background monitors play a loop from a computer running QLab. A wall television plays a news report when Nora Vance turns to look at it. Maya's phone, on the desk, gets a text from Leo Marchetti as she sits down. The camera is on a dolly and will track in for a close-up of the phone. Your cart is at the side of the set, with one deck.
- You can name every screen in a scene and the machine that plays it.
- You build one page per scene with a back-to-one key for all its screens.
- You set the deck's brightness low and keep it out of frame and reflections.
- You turn off every sound your machines can make before rolling.
- You cue off the actor or the agreed signal, not your own timing.
- You check every screen and feedback after each reset.
Streaming
A stream sends the show live to people who are not in the room, and a recording keeps it for later. This chapter teaches how a stream is put together, why starting the stream and starting the recording must be two separate, protected buttons, and how Companion controls the two programs you will meet most for streaming, OBS Studio and vMix, plus what changes when the event is hybrid.
A stream sends the show live to people who are not in the room, and a recording keeps it for later.
Running a stream
A live stream takes the program output of the show, the same picture and sound the room sees on the screens and hears in the speakers, and sends it over the internet to viewers. Between the show and the viewer sit four things: an encoder, which squeezes the video and audio into a stream small enough to send; a destination, such as a streaming platform or a company's own video service; the internet connection that carries it; and the player the viewer watches it in.
The encoder can be software on a computer, such as OBS Studio or vMix, or built into hardware, such as an ATEM Mini Pro switcher. The destination gives you two things to type in: a server address, usually starting rtmp://, and a stream key, a private code that tells the platform which channel the stream belongs to. Anyone with the stream key can stream to that channel, so treat it like a password.
| Part | What it does | Common examples |
|---|---|---|
| Encoder | Compresses the program feed into a stream | OBS Studio, vMix, ATEM Mini Pro, hardware encoders |
| Destination | Receives the stream and shares it with viewers | Streaming platforms, a corporate video service, a custom RTMP server |
| Server address and stream key | Tell the encoder where to send and which channel | rtmp:// address plus a private key |
| Internet connection | Carries the stream out of the venue | Wired venue internet, a dedicated line, a bonded cellular unit |
| Recording | Keeps a copy of the show on a drive | The same software, the switcher, or a separate recorder |
The stream operator's job
On a small show the person running video also runs the stream. On a larger one there is a stream operator. Either way the job is the same: set up and test the stream well before the show, start it on time, watch it the whole way through, and stop it only when the producer says the show is over. Watching means watching the stream as a viewer sees it, on a separate device, not only the encoder's own preview. The encoder can look fine while the stream is frozen for every viewer.
Companion's part is to put the stream controls and, above all, the stream's health on the deck: is it live, how long has it been live, is it dropping frames, is the recording running, how much disk is left. A key that shows "LIVE 00:42:10" in red is easier to watch than a window buried behind the switcher software.
Stream and record are separate buttons
Starting the stream and starting the recording are two different jobs, and on the deck they belong on two different keys. Both OBS and vMix treat them as separate controls: OBS has separate "Start Streaming" and "Start Recording" buttons in its Controls dock, and vMix has separate Stream and Record controls in its main window.
Keeping them apart matters because their timing is different. The recording often starts before the stream, to catch the walk-in or a rehearsal, and it often keeps running after the stream ends, to catch a question-and-answer session the client did not want public. If one key started both, you could not do that. If one key stopped both, a single mistake could end the stream for every viewer and lose the recording too.
The two also fail differently. A stream can drop because the internet drops; the recording, made on the local drive, carries on. A recording can stop because the drive is full; the stream carries on. With separate keys and separate feedbacks you see which one is in trouble.
| Key | Colour while active | Protection | Feedback to show |
|---|---|---|---|
| START STREAM | Red when live | Long press or two-step arm | Live state and stream time |
| STOP STREAM | Warning colour | Long press, placed apart | Live state |
| START RECORD | Red when recording | Long press | Recording state and recording time |
| STOP RECORD | Warning colour | Long press, placed apart | Recording state |
| STREAM HEALTH | Changes colour when the stream struggles | Display only, no action | Bitrate, dropped frames, reconnecting |
Avoid toggle keys for streaming and recording. A toggle starts on one press and stops on the next, which means a double press stops the stream a moment after it started. Separate start and stop keys, each behind a long press as chapter 16 describes, mean every press does only what its label says. When the producer says "we're live", press start stream; when they say "we're clear", wait for the full stop, then press stop stream.
OBS
OBS Studio is free, open-source software for recording and live streaming, widely used for small events, webinars and church streams, and often the first streaming software a new technician meets. Since OBS Studio 28, OBS has had a remote control server built in, called obs-websocket. Before version 28 it was a separate download. Companion's OBS Studio module connects to that server.
Connecting Companion to OBS
The module's help page gives the steps. In OBS, open "Tools", then "WebSocket Server Settings", enable the server, and choose "Show Connect Info" to see the address, port and password. Enter those in the OBS Studio connection in Companion. The default obs-websocket port is 4455. OBS creates a password the first time the server is used, and the obs-websocket project strongly recommends keeping one set, because anyone on the network who can reach that port could otherwise control your stream.
Check the version needs before the show. At the time of writing the current OBS Studio module states that it needs OBS Studio 32.1 or newer and Companion 5.0 or newer. If you run older software, the connection page lets you choose an older module version; match versions in prep, not on show day.
What Companion can do in OBS
| Area | Actions in the module | Feedbacks and variables |
|---|---|---|
| Streaming | Start, stop or toggle streaming | Streaming Active, Streaming Reconnecting, stream time, bitrate |
| Recording | Start, stop, toggle, pause, resume, split the file, add a chapter | Recording Active, Recording Paused, recording time, file name |
| Scenes | Set the program scene, set the preview scene, a smart switcher that previews then takes | Which scene is in program and in preview |
| Transitions | Perform a transition in Studio Mode, set type and duration | Transition in progress |
| Sources and audio | Show or hide sources, change text, mute, set volume | Muted, volume, peaking |
| Health | None | Skipped and missed frames, CPU use, free disk space, Disk Space Remaining |
That list comes from the module's help page. The health variables are the ones to put on a key. "kbits_per_sec" shows the bitrate leaving the machine, the frame counters show whether OBS is dropping frames, and the free disk space tells you how long the recording can run. A key that turns from green to amber when "Streaming Reconnecting" is true tells you the stream is struggling before the client's message does.
OBS's Studio Mode works like a switcher's preview and program: you set up the next scene in preview and transition it to program. If you run OBS as the show's switcher, build your scene keys the way chapter 10 builds switcher keys, with preview and program feedbacks.
Streaming from vMix
vMix is live production software for Windows: a switcher, graphics, playback, recording and streaming in one program. It is common on corporate shows and hybrid events, and chapter 10 covers it as a switcher. This section covers its stream and record controls.
Setting up the stream in vMix
According to the vMix user guide, you open the streaming window with the cog next to the Stream button, choose a provider or "Custom RTMP Server", enter the server URL and the stream key, choose a quality, and click "Start All". The Stream button lights red in both the streaming window and the main window while you are live. vMix can stream to more than one destination at once, each set up on its own numbered button in the streaming window.
Stream and record functions
Companion's vMix module can run any vMix shortcut function, and the vMix function reference lists stream and record as separate functions. Start, stop and start-or-stop streaming take an optional stream number counted from 0; left blank, they control all streams. Recording has its own start, stop and start-or-stop functions, separate again from MultiCorder and from External output.
| vMix function | What it does | Note |
|---|---|---|
| StartStreaming / StopStreaming | Start or stop streaming | Optional stream number from 0; blank means all streams |
| StartStopStreaming | Toggle streaming | Avoid on show keys; a double press stops the stream |
| StartRecording / StopRecording | Start or stop the main recording | Separate from streaming |
| StartStopRecording | Toggle recording | Same caution as the streaming toggle |
| StartMultiCorder / StopMultiCorder | Record inputs to separate files | MultiCorder is in the 4K, Pro and Max editions |
| StartExternal / StopExternal | Start or stop the External output | A separate output control, not the stream |
| FadeToBlack | Toggle fade to black | A dangerous key; protect it |
Two details from the vMix guide matter on a show. MultiCorder records the raw feed from each camera input to its own file, in addition to the main recording, and the guide recommends a fault-tolerant recording format so a recording survives a power cut. The second recorder, in the 4K edition and above, has its own format settings but always starts and stops with the primary recording, so you cannot give it its own key.
The vMix module also offers variables for the stream and recording state, including whether each stream is active and how long the recording has run, so the same health keys you build for OBS can be built for vMix. The module reads most of its state by polling vMix's web API, every 250 ms by default; its help page suggests a slower interval if vMix's CPU use climbs.
Streaming from a hardware switcher
Some switchers stream and record by themselves. The ATEM Mini Pro and its larger relatives have a built-in encoder, and Companion's ATEM module lists recording control and streaming control for those models. The principle stays the same: separate keys for stream and record, each protected, each with a feedback showing its state.
A dedicated hardware encoder from makers such as Teradek, AJA or Magewell is another common choice. Check whether Companion has a module for the model on the job, using the module list on the connection page, before you plan to control it from the deck.
Hybrid events
A hybrid event has an audience in the room and an audience online, and the online audience can take part: remote presenters, remote panellists, questions from viewers. At Brightwater Health 2027 one of the five panellists might join from another city on a video call, appearing on the room's screens and in the stream at once.
Hybrid adds work for video and audio. The remote guest needs to see and hear the room, which means a return feed from the show back into the video call, without their own voice echoed back to them. The room needs to see and hear the guest. The stream needs both. Each of those is a routing job for the switcher and the audio desk, and each is a place a cue can go wrong.
Companion helps by putting those routes on keys. vMix includes vMix Call for remote guests. Zoom-based shows often use ZoomOSC or ZoomISO, made by Liminal, and Companion has a ZoomOSC/ISO module whose help page describes managing participants with their names shown on the keys. Its help recommends licensed versions and lists minimum versions, so check them in prep.
| Hybrid task | A Companion key might |
|---|---|
| Bring the remote panellist on screen | Cut the switcher to the call input and recall the panel layout |
| Send the room to the remote guest | Route the program or a clean feed to the call's camera input |
| Open the remote guest's audio | Unmute the call channel on the audio desk, agreed with the A1 |
| Show a viewer question | Put a text graphic on screen in OBS or vMix |
| Watch the stream health | Show live state, bitrate and time on one key |
The A1, the lead audio engineer, owns the audio routes. As with any cross-department key, agree every audio key with them before you build it. Rehearse the remote guest's connection with the guest on the same computer, network and camera they will use on the day.
How to do it
- Get the destination's server address and stream key from the client or producer, enter them in the encoder, and keep the key private.
- Add the OBS, vMix or switcher connection in Companion and check its status is good. For OBS, enable the WebSocket server, note the port and password, and match the module version to the OBS version.
- Build separate start-stream, stop-stream, start-record and stop-record keys, each behind a long press, with stop keys placed apart.
- Add a health key showing live state, stream time, bitrate and dropped frames, and one showing recording time and free disk space.
- Run a private test stream for several minutes and watch it on a separate device as a viewer would.
- On the day, start the recording when the producer asks, start the stream on their cue, and watch the stream and the health keys the whole show.
- Stop the stream on the producer's clear, wait to confirm it has stopped, then stop the recording when told, and check the file.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| The stream stops a moment after it started | A toggle key was pressed twice | Use separate start and stop keys, each behind a long press |
| The stream ended and the recording was lost too | One key stopped both | Keep stream and record on separate keys with separate feedbacks |
| Companion cannot connect to OBS | The WebSocket server is off, the port or password is wrong, or the module needs a newer OBS | Enable the server, copy the connect info, and match the module version to OBS |
| The encoder preview looks fine but viewers see a frozen picture | The stream dropped or the destination stalled, and only the local preview was watched | Watch the stream on a separate device; put the reconnecting feedback on a key |
| The recording stops in the middle of the show | The drive filled up | Check free space before the show and show it on a key |
| The remote panellist hears an echo of their own voice | The return feed to the call includes the guest's own audio | Agree a return mix without the guest with the A1, and rehearse it |
Practice it
Brightwater Health 2027 will be streamed to staff who cannot attend. vMix runs on its own computer and is controlled from Companion at 10.0.0.10. The client wants the walk-in recorded but not streamed, the general session streamed and recorded, and the private question session at the end recorded only. One panellist joins remotely.
- You can name the parts of a stream, from encoder to viewer.
- You keep stream and record on separate, protected keys.
- You can connect Companion to OBS through its WebSocket server.
- You can find vMix's stream and record functions in Companion.
- You watch the stream as a viewer sees it, not only the encoder.
- You can show stream health and free disk space on a key.
The Elgato Stream Deck App
Every Stream Deck comes with Elgato's own Stream Deck app, and for some jobs it is all you need. This short chapter teaches what the app does well, how its profiles, multi-actions and plugins work, how it and Companion can share one computer without fighting over the decks, and when a job has grown past it.
Every Stream Deck comes with Elgato's own Stream Deck app, and for some jobs it is all you need.
When the Elgato app is enough
The Elgato Stream Deck app is free software from Elgato, the maker of the Stream Deck. It runs on the computer the deck is plugged into and is built mainly to control that computer: press a key to type a shortcut, open a program, open a web page or play media. Plugins, many of them made by other companies, add control of other software.
That makes it a good fit when everything you control runs on the same computer as the deck. A presenter running their own slides and a timer, a streamer running OBS on one laptop, an editor with shortcuts for their editing software: the Elgato app does these well and needs no extra software.
| Job | Elgato app | Companion |
|---|---|---|
| Shortcuts and programs on the same computer | A good fit | Works too, through keystroke tools |
| OBS on the same computer | A good fit, with Elgato's OBS plugin | A good fit, with the OBS module |
| Many machines across a show network | Only where a plugin exists for each | Built for this, with a large library of device modules |
| Live state on keys from switchers, playback and desks | Depends on each plugin | Feedbacks and variables from each module |
| Several decks in different places on one system | Each deck runs from its own computer | Satellite and network surfaces, one configuration |
| One saved show file for all machines | Profiles per device | One export for the whole system |
The built-in actions include system actions such as Hotkey (send a key combination), Hotkey Switch (alternate between two hotkeys, for example mute and unmute), Open (launch a program, file or folder), Website (open an address, or send a web request in the background) and Text (type a set piece of text). These cover a lot of single-computer work.
Profiles
In the Elgato app a profile is a complete layout for one deck, much as a page or set of pages is in Companion. You can keep a profile per show or per job. Smart Profiles switch the layout automatically when a chosen program comes to the front of the screen; Elgato notes they only work while the Stream Deck app is minimised, not while its window is open for editing. A "Switch Profile" action lets a key change the profile, including on another connected deck, so a Stream Deck Mini can change what a Stream Deck XL shows.
Profiles can be saved and moved. Elgato's guide describes exporting a single profile, which saves a .streamDeckProfile file, and backing up all profiles at once, which saves a .StreamDeckProfilesBackup file. Elgato warns that restoring a full backup overwrites the profiles already on the computer, so export the current ones first. The app also backs profiles up itself when it updates. An exported profile does not include the plugins it uses; from version 6.9 the app offers to install missing plugins when you import a profile made in that version or later.
Multi-actions
A Multi Action puts several actions on one key, run in order on one press, with delays between them if you add them. It is the Elgato app's version of a button with several actions, and it is how you build a one-key cue there. Elgato's help notes that one Multi Action cannot be placed inside another. A Multi Action Switch alternates between two Multi Actions on the same key, which Elgato's example uses to go live with one press and run a closing sequence with the next.
The same caution as in chapter 18 applies to a Multi Action Switch on a show: a key that does one thing on the first press and the opposite on the second is easy to double-press. Keep start and stop on separate keys.
Plugins
Plugins add actions for other software and hardware. They are found and installed through the Elgato Marketplace. Some are made by Elgato, such as its OBS Studio plugin, which offers actions for streaming, recording, scenes, sources, mute and Studio Mode, with keys that update to show state. Many more are made by other companies and by individual developers, for software and devices of every kind.
Before you rely on a plugin for a show, check who makes it, when it was last updated, which versions of the app and the software it needs, and test it on the machine you will use. A plugin is only as current as its developer keeps it. When the controlled software updates, an unmaintained plugin can stop working, and that is a bad discovery to make on show day.
Bitfocus publishes a Companion plugin in the Elgato store. It puts Companion buttons on keys inside the Elgato app, which is how the two can share a computer. The next section explains it.
Companion and the Elgato app on one computer
A Stream Deck plugged in over USB can be driven by one program at a time. If the Elgato app has hold of a deck, Companion cannot use it, and the reverse. Companion's user guide says that if your Stream Deck is missing from Companion's surfaces list, you may need to close the Elgato app and click "Rescan". Companion Satellite, covered in chapter 20, will not detect a deck while the Elgato app is open at all.
Companion's own advice is to close the Elgato app, because Companion runs best with full control of the decks. When you need both, there are two ways.
Split the decks
Each surface in Companion has an enable or disable switch. A disabled surface keeps its settings, but Companion stops using it. Companion's guide describes this for running alongside other software such as the Elgato app: you reserve some decks for Companion and leave the others to the other program. Turn off the setting "Auto-enable newly discovered surfaces" if you want to choose each deck yourself. A presenter's own small deck could stay with the Elgato app for their slides and timer, while the show decks stay with Companion.
Companion inside the Elgato app
The Companion plugin from the Elgato store lets the Elgato app drive the deck while some of its keys show and press Companion buttons. According to the Companion user guide, each plugin key can follow Companion's page changes like a directly connected deck, or show one fixed button. In Companion 5.0 the plugin's own connection server was removed and the plugin now connects over the Satellite API, the same network connection Companion Satellite uses, so keep the plugin up to date.
There is a cost. For the plugin to work fully, Companion's Settings must have "Enable Button Subscriptions API" turned on, and the user guide warns that it lets such clients bypass the PIN lockout and the page system. The Companion surface help also notes that when the decks are used through the Elgato software, all of them show the same buttons, while direct connection lets each one be different. Use the plugin when the Elgato app has to stay, and connect directly when it does not.
| Set-up | How it works | Watch for |
|---|---|---|
| Companion only | Elgato app closed; Companion drives every deck | Simplest and the setup Companion recommends |
| Decks split | Some decks disabled in Companion and left to the Elgato app | Know which deck belongs to which program |
| Companion plugin | Elgato app drives the decks; plugin keys press Companion buttons | Button Subscriptions API bypasses PIN lockout and page permissions |
| Both open, no plan | Whichever program grabs the deck first wins | A deck that goes blank or frozen in one program |
Moving up to Companion
The signs that a job has outgrown the Elgato app are usually clear: you need to control machines on the network rather than the computer the deck is plugged into, you need several machines to move from one key, you need the keys to show live state from a switcher or playback machine, or you need decks in more than one place on one system. Those are the jobs Companion is built for, and the rest of this book teaches them.
Moving over is a rebuild, not a conversion. An Elgato profile does not open in Companion. Write down what each key in the profile does, then build the same keys in Companion with the matching connections and actions, and test each one. Many technicians keep the Elgato app for their own laptop shortcuts and use Companion for the show.
How to do it
- Decide which decks Companion will drive and which, if any, the Elgato app keeps.
- In Companion's settings, turn off auto-enabling of newly discovered surfaces if you want to choose decks yourself.
- Close the Elgato app, open Companion, and check the show decks appear on the Surfaces page; use Rescan if one is missing.
- Disable in Companion any deck the Elgato app should keep, then open the Elgato app and check that deck appears there.
- If you use the Companion plugin instead, update it, connect it to the Companion computer, and note that Button Subscriptions bypass PIN lockout and page permissions.
- Restart the computer and check every deck comes back in the right program.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| The Stream Deck does not appear in Companion | The Elgato app has hold of it | Close the Elgato app and click Rescan on the Surfaces page |
| A deck goes blank or freezes after the computer restarts | Both programs start at login and the wrong one took the deck | Split the decks deliberately, or stop the Elgato app starting at login |
| A plugin action stopped working after a software update | The plugin was not updated for the new version | Check plugin versions in prep; test after every update |
| A locked Companion system can still be pressed from the Elgato app | The Button Subscriptions API lets plugin clients bypass PIN lockout | Use direct connection where locking matters; enable the API only when needed |
| An imported profile is missing actions | The profile does not contain its plugins | Install the plugins the profile uses; keep a list with the profile |
Practice it
At Brightwater Health 2027, Martin Lowe's assistant brings a Stream Deck Mini set up in the Elgato app to run his slide timer, and wants to plug it into the show computer that runs Companion with your two show decks.
- You can say which jobs the Elgato app handles well.
- You can explain profiles, multi-actions and plugins.
- You know a USB deck is driven by one program at a time.
- You can split decks between Companion and the Elgato app.
- You know what the Companion plugin costs in safety.
- You can tell when a job needs Companion.
Sharing Control
A show rarely has one pair of hands. The stage manager wants a deck at the side of the stage, the producer wants a few keys on a tablet, and a second operator needs their own panel. This chapter teaches how to put Companion buttons in other places and in other hands: decks connected over the network with Companion Satellite, buttons in a web browser, the emulator, and the settings that let you give people only the buttons they should have.
A show rarely has one pair of hands.
A deck somewhere else
A Stream Deck usually plugs into the computer running Companion by USB. That works when the deck sits next to the computer. When the deck needs to be somewhere else, at the side of the stage, at the lectern, in a second control room, a long USB run is not the answer. The answer is Companion Satellite.
Companion Satellite is a small, free program from Bitfocus. It runs on a computer near the deck, such as a laptop or a Raspberry Pi, and connects the decks plugged into it to your main Companion over the network. Each deck then appears on the main Companion's Surfaces page and is set up exactly like a deck plugged in locally. The Location column shows the IP address of the Satellite machine, so you can tell which deck is where.
How Satellite connects
Satellite connects to Companion over TCP, on port 16622 by default, or over WebSockets on port 16623. The ports are set in Companion's Settings, under Satellite. You give Satellite the IP address of the Companion computer, 10.0.0.10 in this book's examples, and leave the port at its default unless you have a reason to change it. Companion 3.4.0 or newer is needed.
Satellite's own guide makes a point that surprises people: the two computers do not need to be on the same subnet. As long as a TCP connection can be made, over the venue network or a VPN, Satellite works, with no multicast or broadcast needed. It also warns never to expose Companion's ports to the internet: Satellite should always connect over a trusted private network or a VPN.
| Item | Value or place | Note |
|---|---|---|
| Satellite TCP port | 16622 by default | Set in Companion Settings, Satellite |
| Satellite WebSocket port | 16623 by default | Also in Companion Settings |
| Satellite's own web page | Port 9999 on the Satellite machine | Configure a headless Satellite from a browser |
| Minimum Companion version | 3.4.0 | From the Satellite guide |
| Raspberry Pi | Prebuilt image; 64-bit Raspberry Pi OS Lite for manual installs | A small, cheap Satellite box |
Setting up Satellite
The Satellite guide's steps are short. Plug in the decks. Close the Elgato Stream Deck app, because Satellite will not see a deck while it is open. Start Satellite; it sits in the system tray, top right on a Mac and bottom right on Windows. Right-click its icon, choose "Configure", type the Companion computer's address and click "Save". The top of the window confirms the connection. On the "Surface Plugins" tab make sure your deck types are enabled, and on "Connected Surfaces" check each deck is listed. On a computer with no screen, such as a Raspberry Pi, open port 9999 on that machine in a browser for the same settings.
While Satellite is disconnected from Companion, its decks show a placeholder to say so. A deck that suddenly shows that placeholder in the middle of a show is telling you the network link between the two computers has gone.
Decks on the network by themselves
Some surfaces connect to the network without a separate computer. Companion's guide names the Stream Deck Network Dock as one, and lists remote surfaces on the Surfaces page, where Companion can be pointed at them or find them on the network.
Buttons on a tablet
Companion can show its buttons in a web browser, which means any tablet, phone or laptop on the show network can become a panel. The view is called Web buttons. It shows buttons from your pages on one screen and is meant for a browser on a tablet. You reach it from the Companion computer's address, port 8000 by default, at the path /tablet: for this book's examples, http://10.0.0.10:8000/tablet.
Click the cog at the top right to set the view up. The panel lets you choose which pages to show, using ranges such as 1..6 and commas for several pages, limit the rows and columns shown, show page headings, set the number of display columns, and hide the configure and fullscreen buttons. Your choices are stored in the page's address, so once it is set up, bookmark it, or save it to the tablet's home screen, and it opens the same way each time.
Limiting the pages is how you give a tablet only the buttons it should have. A producer's tablet set to show page 9 only, with the configure button hidden, shows a handful of producer keys and nothing else. Hiding the configure button stops casual changes; it does not lock the view, because anyone who edits the address can change it back. For anything that matters, use the protections in the last section of this chapter.
One limit to know: the user guide notes that Web buttons does not appear to Companion as a surface, so it cannot follow page changes set up on buttons. A page-change key pressed on a tablet will not move the tablet to another page. Give the tablet the pages it needs in its settings instead.
| Setting in the cog panel | What it does |
|---|---|
| Pages | Which pages show, as ranges like 1..6 or lists with commas |
| Min and max column, min and max row | Show only part of each page's grid |
| Show page headings | Label each page in the view |
| Display columns | How many columns to lay out; 0 for dynamic |
| Hide configure button | Remove the cog from view |
| Hide fullscreen button | Remove the fullscreen control |
Tablets on a show
A tablet is a good second panel for keys that are pressed now and then: a producer's "next segment" key, a stage manager's walk-in music, a presenter's slide timer. It is a weaker choice for fast cues. A touch screen has no feel, so your eyes must be on it to press the right key, and a tablet on the venue's wireless can drop off the network. The user guide recommends wired networking with Companion wherever possible, and that applies doubly to anything that fires cues. Keep tablets charged, set them not to sleep during the show, and turn off notifications.
The emulator
The emulator is a Stream Deck on screen. It shows a grid of buttons in your browser and, in the user guide's words, interacts with Companion just like a physical Stream Deck. Unlike Web buttons, an emulator is a surface: it appears on the Surfaces page, it has a current page, and page-change keys move it.
New installs have no emulator; you create one. Since Companion 3.0 you can have several. Several people can open the same emulator at once, but they all see the same page, because it is one surface. Give each person their own emulator and each can be on a different page. Each emulator's settings are on the Surfaces page, and keyboard hotkeys can press its buttons; the instructions are at the top of the emulator selection page.
| Use | Why the emulator fits |
|---|---|
| Building a show before the decks arrive | Press and test buttons as if a deck were plugged in |
| Checking a show file on a laptop | See every page as a deck would show it |
| A low-cost extra panel | The user guide suggests it for giving someone a cheap set of buttons |
| Training | A new operator learns the layout without touching the show decks |
The emulator is a fine way to test that a button fires. It is not a full test of a show deck: it does not tell you how the keys look at the deck's brightness, whether a long press feels right under a finger, or whether the USB deck is detected. Test on the show hardware before doors.
One system or one each
When there are several operators, there is a choice of shape. One Companion can run every deck, with Satellite carrying decks to other positions. Or each operator can run their own Companion on their own computer, each talking to the machines that operator owns. Both work, and the show decides which fits.
Every department on one Companion
One Companion, many decks. The Satellite guide names this case: several operators, each with their own Stream Deck, all controlled by one Companion setup. Everyone's keys live in one configuration, every connection is made once, and feedbacks are the same everywhere. A cue built for video can be placed on the stage manager's deck too. One export backs up the whole show.
This fits when one person programs the show and others press keys, when departments share cues, and when you want one file to keep and restore. Its weak point is that one computer carries everyone. If it stops, every deck stops.
A Companion for each department
Each department or operator runs their own Companion. Video has one at 10.0.0.10, and the audio team might run their own on a second computer that talks to the desk at 10.0.0.50. Each person programs and backs up their own.
This fits when departments work independently, when each operator programs their own buttons, and when you want a fault in one system to leave the others running. Its weak points are that shared cues need agreement and care, two systems can both be talking to one machine, and there are more files to back up.
| One system | One each | |
|---|---|---|
| Who programs | One programmer, others press | Each operator their own |
| Connections | Each machine connected once | A machine may be connected from two systems |
| Shared cues | Easy; place the key on several decks | Needs agreement on who fires |
| Backup | One export | One per system |
| If the computer fails | Every deck stops | Only that operator's decks stop |
Many shows mix the two: one main system for video and show control with Satellite decks for the stage manager and producer, while audio and lighting run their own. Whichever shape you choose, write it on the show's paperwork so everyone knows which system each deck belongs to.
Keeping pages straight with groups
With several decks on one system, surface groups help. The user guide describes groups as linking surfaces so they are always on the same page, for example two Stream Deck XLs side by side treated as one wide deck. A group also gives a stable name that buttons can refer to, so if a deck has to be swapped mid-show the new one joins the group and every button that pointed at the group still works.
Giving others safe buttons
The keys you give someone else should be the keys they need and no more. A producer's panel that can also stop the stream is an accident waiting to happen. Companion has several settings that help, and its user guide is plain that none of them makes an installation secure; they stop casual mistakes and casual browsing.
| Setting | Where | What it does |
|---|---|---|
| Page permissions | Surfaces page, per surface or surface group | Limits a deck or group to chosen pages; from Companion 4.2 |
| Startup page | Surface settings | The page a deck shows when Companion starts |
| PIN lockout | Surfaces page and Settings | Locks surfaces after a set idle time, or from a button; a PIN unlocks |
| Never pin code lock | Surface settings | Keeps a chosen deck unlocked, such as your own |
| Admin UI password | Settings, Advanced | Asks for a password before the configuration pages open |
| Web buttons page limit | The cog panel of the tablet view | Shows a tablet only chosen pages |
Page permissions are the main tool. The user guide describes them as a way to distribute one show configuration while each person's deck reaches only the pages for their role. Next and previous page keys follow the order you set in the permission list. The stage manager's Satellite deck can be limited to the stage manager's page, and nothing they press can reach your transport page.
Two cautions from the user guide. The admin password protects only the configuration pages; it does not protect the remote control protocols or the REST API, which have their own settings. And the "Enable Button Subscriptions API" setting, needed for the Elgato plugin, lets those clients bypass the PIN lockout and the page system. Leave it off unless you need it.
What to give whom
Give people keys that do their own job, labelled in their words. A stage manager's page might hold walk-in music, VOG, and a "STAGE CLEAR" key that lights for the operators. A producer's page might hold a few segment markers and a call-for-attention key. Keep dangerous keys off other people's pages entirely, and walk each person through their page before the show so they know what every key does.
How to do it
- Install Companion Satellite on a laptop or Raspberry Pi at the side of the stage and plug in the deck. Close the Elgato app on that machine.
- Wire the Satellite machine into the show network and give it an address on the show subnet.
- In Satellite's configuration, enter the Companion computer's address, 10.0.0.10, leave the port at its default, and save.
- In Companion, find the deck on the Surfaces page by its Location, name it, and set its startup page.
- Set page permissions so the deck reaches only its own pages, and set PIN lockout if it will be left alone.
- Press every key on the deck and check the result, then unplug the network cable and check the deck shows its disconnected placeholder. Plug it back and confirm it reconnects.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| The Satellite deck never appears in Companion | Wrong Companion address, a blocked port, or the Elgato app holding the deck | Check the address and port 16622, close the Elgato app, and check the Connected Surfaces tab |
| A Satellite deck shows a placeholder mid-show | The network link between Satellite and Companion dropped | Check the cable and switch; use wired networking for Satellite machines |
| A page-change key on the tablet does nothing | Web buttons is not a surface, so it cannot follow page changes | Set the tablet's pages in the cog panel, or use an emulator instead |
| The producer pressed a key from your transport page | Their deck or tablet could reach every page | Set page permissions on their deck; limit the tablet's pages |
| Two people on one emulator keep changing each other's page | One emulator is one surface with one page | Create an emulator for each person |
| A locked system can still be pressed | Button Subscriptions API is on, or the device was set to never lock | Turn the API off unless needed and check each surface's lock setting |
Practice it
The Low Tides, a 3,000-seat theatre. Companion at 10.0.0.10 at FOH runs your two decks. The stage manager at stage left wants a deck with the walk-in music, the "show stop" announcement and a house-lights key. The tour manager wants a tablet in the green room with two keys: "BAND CALL" and "DOORS".
- You can connect a remote deck with Companion Satellite.
- You know Satellite's default port and where it is set.
- You can set up Web buttons on a tablet limited to chosen pages.
- You know when to use the emulator instead of Web buttons.
- You can choose between one system and one each for a show.
- You give each person only their own pages, with page permissions.
Show Day
Everything in this book comes down to one day, when the doors open and the buttons have to work. This chapter teaches the habits that make show day calm: backing up the configuration, bringing spares, testing before doors, reading Companion's warnings, knowing what to do when Companion itself fails, a troubleshooting order that finds faults fast, and the work that comes after the show.
Everything in this book comes down to one day, when the doors open and the buttons have to work.
Back up the setup
Your show lives in Companion's configuration: every connection, page, button, trigger and setting. If the computer dies, the configuration goes with it unless you have a copy. Backing it up is the single most useful habit in this chapter.
Exporting
Companion's Import / Export page saves the configuration to a .companionconfig file, which can be used as a backup or to move the show to another computer. You choose the format: Compressed, the default and the one recommended for most uses; JSON, an uncompressed file other tools can read; or YAML, easier to read and edit by hand. A single page can also be exported from the buttons page, through the "Export page" option in the page actions (…) menu above the button grid.
Export after every working session and before every show. Name the file with the show and the date, for example BrightwaterHealth2027_GS_2027-03-14.companionconfig, and keep copies in at least two places: the computer, a USB stick in your kit, and a cloud folder.
Scheduled backups
Companion can also back itself up on a schedule. In Settings, under Backups, "Add Backup Rule" creates a rule with a name, a schedule written in cron syntax, a backup type, a folder, a file name pattern and the number of backups to keep. "Run Now" tests the rule. The user guide suggests a daily backup to a synced folder such as OneDrive or iCloud, so that if something happens to the computer the configuration is safe elsewhere. Compressed, JSON and YAML backups can be restored through Import / Export; the Raw Database type is the most complete but cannot be restored from Companion's interface.
What a backup does not hold
Since Companion 4.0, modules are downloaded separately and no longer ship with Companion, and updating Companion does not update them. When you import a configuration, the user guide says, make sure the right module versions are installed. On a show network with no internet, that matters: a new computer cannot download the modules your show needs. Bitfocus offers an offline module bundle for this, versioned the same as Companion, which can be imported from the Modules page. Keep the installer for your exact Companion version and the matching offline bundle in your kit beside the configuration.
| Keep in your kit | Why |
|---|---|
| The latest .companionconfig export | Restores every page, button and connection |
| The Companion installer for the version you run | A spare computer must run the same version |
| The offline module bundle for that version | Installs modules with no internet |
| Any module package you imported by hand | It is not in the public bundle |
| The IP plan and cue sheets on paper | You can rebuild or run by hand without a screen |
Importing
On import, the "Full import" tab lets you choose which parts of the configuration to bring in, and either keep the parts you did not select or reset everything first. The Buttons and Triggers tabs import only chosen pages or triggers, with an option to remap their connections to the connections on this computer. That makes it easy to bring one page from last year's show into this year's. Export your current configuration before you import anything, in case the import is not what you expected.
Spares
Anything can fail on a show, and the cure is a spare that is ready, not one that is in the truck. For Companion, think about the deck, the computer and the network.
| Spare | Ready means | Notes |
|---|---|---|
| A spare Stream Deck | Same model as the show deck, tested with Companion | Surface groups let a swapped deck pick up the same pages |
| A spare Companion computer | Same Companion version, modules installed, show imported and tested | Or a Raspberry Pi running Companion, set up in prep |
| Spare USB cables | The right type and length for each deck | USB cables fail more often than decks |
| A spare network switch and cables | Patched and labelled | A failed switch takes every machine off the network |
| Power | Decks and computers on show power, not a wall socket that may be switched off | A UPS for the Companion computer if you can |
Surface groups make deck swaps quick. Companion's user guide describes using a group as a stable name for a surface: you build the show against the group, and if a deck fails you add the spare to the group and every button that referred to that group still works. Without a group, a new deck appears as a new surface, and you must set its page and any page-change actions again.
The most important spare is not equipment. It is the fact that every machine keeps its own controls. The switcher has its own panel or software, the playback machine has its own transport, the PowerPoint computer has its own keyboard, the desks have their own faders. Companion is a convenience on top of them. Know how to run every cue by hand without Companion, and keep that knowledge current.
Test before doors
Doors is the moment the audience is let into the room. Before doors, every button gets tested; after doors, nothing new gets tested. A test after doors puts the test on the screens in front of the audience.
Test in the same order every time, so nothing gets skipped. Start with the connections, then every deck and tablet, then every key in show order, watching the result on the machine and on the program output. A key that sends a command but shows the wrong result is a failure, even if Companion reports nothing.
| Check | How | Done when |
|---|---|---|
| Connections | Connections page; every connection in use | Every status is good, none in warning or error |
| Surfaces | Surfaces page; every deck, Satellite deck and emulator | Every deck present, named, on its startup page |
| Cue keys | Fire each cue in rehearsal or a safe state | Each machine does what the key says |
| Transport keys | Play, pause, stop, next and previous on each machine | Each machine responds and its feedback changes |
| Dangerous keys | Test with every machine safe to interrupt | The long press or arm works as built |
| Resets | Run your standby or back-to-one keys | Every machine returns to its start state |
| Backup | Export the tested configuration | A dated file on the computer and off it |
After the test, put every machine back in its start state: the walk-in loop ready, the first slide up, the switcher on the walk-in look, every playback machine cued to the top of its first clip. Then leave the configuration alone. If something must change after doors, change only that one button, test it off-air if you can, and export again.
Reading the warnings
Companion tells you when something is wrong, if you know where to look. Learn the places before the show so you can read them fast during it.
Connection status
The Connections page shows the status of every connection. The user guide's internal variables name the states: good, warning, error and disabled. Companion also offers internal variables that count connections that are OK, in warning or in error, and internal feedbacks that show a connection's status on a button.
Use them. A status key in the corner of your cue page, red when any connection is in error and green when all are good, tells you at a glance that the ATEM has dropped off the network before you press a cue that will do nothing. Some operators put one status key per important machine on the deck: "ATEM", "PB-A", "PB-B", "PPT", each green or red.
| What you see | What it usually means | First check |
|---|---|---|
| A connection in error | Companion cannot reach the device or the device refused it | Is the device on, on the network, at the right address? |
| A connection in warning | The module has a problem short of a full failure | Read the connection's log |
| A connection disabled | Someone turned it off, or its collection is off | Turn it on if it should be on |
| A deck blank or frozen | Companion lost the surface, or another program took it | Surfaces page; close the Elgato app; Rescan |
| A Satellite deck showing a placeholder | The network link to Companion has dropped | Cable, switch, address of the Satellite machine |
| A deprecated badge on a module | The module or version will be removed | Plan to move to the replacement after the show, not during |
The log
The Log page shows Companion's status messages. Three buttons toggle warnings, info and debug; errors always show. Each line is stamped to the millisecond, which helps work out what happened first. Each connection also has its own more detailed log, opened from the Connections page with "View Logs". When reporting a bug, the Log page can export the log or a support bundle for the developers.
When Companion fails
Sooner or later, Companion, its computer or the network will fail in the middle of a show. The plan for that moment is made before the show, and it starts with one fact: every machine keeps its own controls.
When the deck stops working, do not start fixing Companion while a cue is coming. Run the next cue by hand on the machine itself: the switcher's own panel or software, the playback machine's own transport, the PowerPoint computer's keyboard. Tell the caller on comms in plain words: "video is on manual". Then, between cues, or with a second person, fix Companion.
| What failed | Run the show by | Then fix |
|---|---|---|
| One deck | Another deck, a tablet or the emulator on the same Companion | Swap in the spare deck |
| The Companion computer | Each machine's own controls | Start the spare computer with the show imported |
| One connection | That machine's own controls | Check the device and network, then the connection |
| The network switch | Each machine's own controls | Swap in the spare switch |
| A Satellite link | The machine's own controls, or your main deck | Check the Satellite machine's cable and address |
Rehearse this at least once. In a quiet moment of rehearsal, put the deck down and run a cue or two by hand. If you cannot run the show without Companion, you are not ready to run it with Companion.
A spare Companion computer only helps if it is ready. Ready means the same Companion version, the same modules, the show imported, on the show network at its own address, and tested. If the spare takes over, it must take the main computer's address, 10.0.0.10, only after the main one is off the network, or the two will clash.
Troubleshooting
When a key does not do what it should, work from the outside in: first the thing you can see, then the network, then Companion, then the button. Most faults are found in the first two steps.
| Step | Ask | Look at |
|---|---|---|
| 1. The device | Is it on, awake, and in the mode Companion expects? | The machine itself and its own screen |
| 2. The network | Is it plugged in, on the right subnet, at the right address? | Cables, switch lights, the IP plan; ping it |
| 3. The connection | Is the connection's status good? | Connections page and its log |
| 4. The surface | Is the deck present and on the right page? | Surfaces page; the Elgato app closed |
| 5. The button | Does it hold the right actions, in the right order, for the right connection? | The button editor |
| 6. The device's own settings | Is remote control turned on, with the right port and password? | The device's network or remote settings |
Change one thing at a time and test after each change. If you change three things and the key starts working, you do not know which one fixed it, and you cannot fix it fast next time.
A few faults come up often. An address that changed overnight, because the device takes its address from the network by DHCP; the user guide recommends fixed addresses or DHCP reservations for devices you control. A computer that went to sleep. A device whose remote control setting was switched off by its own update. Wireless that dropped, which is why the user guide advises wired networking wherever possible. And the Elgato app quietly taking a deck back after a restart.
Keep a show log on paper or in a notes file: the time, what happened, what you did. The Companion log is stamped to the millisecond, so your note of the time helps you find the moment in it later.
After the show
The show is not over for you when the audience leaves. Three jobs remain: keep the configuration, note what went wrong, and pack the kit so the next show starts well.
Export the final configuration, with the date and "final" in the name, before you change anything or shut down. It is the record of what ran, and next year's Brightwater Health may start from it. If any button was changed during the show, the final export is the only copy of that change.
Write down every fault and every near miss while you remember it: the key that fired late, the deck that dropped, the cue that was not on the sheet. Then, after the show, fix the cause in the configuration, not on the day. If a module showed as deprecated or a new version is out, update and test it in prep for the next show, never in the hours before doors.
| After the show | Why |
|---|---|
| Export the final configuration | The record of what ran, and the start of next time |
| Note faults and near misses | Fix causes, not symptoms, before the next show |
| Clear private details | Stream keys and passwords for the client's accounts do not travel to the next job |
| Count and test the kit | Decks, cables, spares and the USB stick all come home and work |
| Update in prep, not on site | Module and Companion updates are tested before they meet a show |
How to do it
- On arrival, power the Companion computer, check every connection is good and every deck and Satellite deck is present.
- Export the configuration and copy it off the computer.
- Before doors, test every connection, deck, cue key, transport key, dangerous key and reset, watching the result on each machine and on program.
- Put every machine in its start state, export the tested configuration, and leave the buttons alone.
- During the show, keep connection status keys in view, and if Companion fails, run the next cue by hand and tell the caller.
- Fault-find from the outside in, one change at a time, and log each event with its time.
- After the show, export the final configuration, note every fault, clear the client's private details, and pack and test the kit.
What goes wrong
| Symptom | Likely cause | What to do |
|---|---|---|
| The Companion computer will not start and there is no copy of the show | The configuration was never exported off the machine | Export after every session and before every show, to two places |
| A spare computer imports the show but connections will not start | The modules are not installed and there is no internet | Carry the offline module bundle for your Companion version |
| A swapped spare deck shows the wrong page | The show was built against the old deck, not a surface group | Build against surface groups so a spare joins the group |
| A cue key does nothing and nobody noticed until it was called | The connection was in error and no status key was on the deck | Put connection status feedbacks on the cue page |
| A device stopped responding after the overnight power-down | It took a new address from DHCP | Use fixed addresses or DHCP reservations for every controlled device |
| A button changed during the show is missing at the next show | No final export after the show | Export the final configuration before shutting down |
Practice it
Brightwater Health 2027, show day. Companion at 10.0.0.10 drives the ATEM, Playback A and B, and the PPT machine. Twenty minutes after doors, your cue deck goes blank. The opener is in eight minutes.
- You export the configuration to two places before every show.
- You carry the installer and offline module bundle for your version.
- You have a tested spare deck, and ideally a spare computer.
- You test every key before doors and nothing after.
- You can read connection status and the log.
- You can run every cue by hand when Companion fails.
- You export the final configuration and note faults after the show.
Where to Go Next
This book took you from a box of keys to a show you can run with your fingers: the hardware, the network, the buttons, the layout, every department's gear, whole cues, film sets, streams, shared control and show day. The next step is building one for a show, even a small one, and running it with an audience in the room.
If the network chapters were new to you, AV Networking Intermediate goes further into switches, addresses and the traffic a show puts on them. Show Control Fundamentals sets Companion beside the other ways shows are cued, including timecode and dedicated show controllers. Live Streaming & Encoding and Corporate Streaming deepen the streaming chapter, and Introduction to 24 Frame Playback teaches the whole film-set job the film chapter only touches.
The first ninety days
Four things. Install Companion on your own laptop and build a full page in the emulator with no gear at all, using the generic connections to send messages you can watch arrive. Borrow or buy one deck and build the two-deck rig from chapter nine for an invented show, transport on one deck and cues on the other. Connect to one piece of show gear you have access to, a switcher, a playback machine or a console in a training room, and build its feedbacks until the keys tell you what the machine is doing. And on your next show, ask the operator running Companion to show you their pages, how they named them and what their backup is.
Where this leads
The technicians who are trusted with the buttons on a big show are the ones whose decks are labelled, backed up and tested before doors, who agree every button with the department that owns the machine, and who can run the show without the buttons when they stop. That reputation is built one show at a time. Companion makes one person able to look after many machines; the job is to make sure every press does exactly what the show needs.
Glossary
| Stream Deck | A panel of keys made by Elgato, each key a small screen that can show words, colours or pictures |
| Companion | Bitfocus Companion, free open-source software that turns key presses into commands for show gear |
| Surface | Any panel or screen Companion uses as buttons, such as a Stream Deck, a tablet or the emulator |
| Emulator | A Stream Deck drawn on a web page by Companion, used to build and press buttons without hardware |
| Satellite | Companion Satellite, a small program that lets a deck plugged into another computer act as a surface of the main Companion over the network |
| Web buttons | Companion's button pages shown in a web browser on a tablet or phone |
| Connection | Companion's link to one machine, using a module written for that make of gear |
| Module | The code inside Companion that knows how to talk to one product or protocol |
| Page | One full grid of buttons in Companion; a surface shows one page at a time |
| Action | Something a button does when it is pressed or released, such as cut to camera 2 |
| Feedback | A rule that changes how a key looks according to what a machine is doing |
| Variable | A named value Companion keeps up to date, such as a clip name or time remaining, that can be shown on a key |
| Custom variable | A variable you create yourself to hold a value for your show |
| Trigger | A set of actions that runs on its own when something happens, such as a time of day or a change of state |
| Step | One of several actions a single button cycles through, one per press |
| Preset | A ready-made button a module offers, with its actions and feedbacks already set |
| Transport | The play, pause, stop, next and previous controls of a playback machine |
| Cue | One moment in a show where something changes, and the button or command that makes it happen |
| Run of show | The order of every segment and cue in a show, with times; also called the running order |
| Standby | The warning given before a cue, so everyone is ready to go on the word |
| Tally | The red and green lights that show which source is on program and which is on preview |
| Program | The switcher output the audience sees; written program, not programme, because that is the label on the desk |
| Preview | The switcher bus showing the next source before it is taken |
| VOG | Voice of God; the off-stage announcement voice, often a recorded or live microphone |
| FOH | Front of house; the technical position in the audience area, and the people who work there |
| A1 | The lead audio engineer on a show |
| LD | The lighting designer, or on smaller shows the lighting operator who runs the console |
| Playback machine | A computer that plays the show's videos, often one of a pair, A and B |
| Media server | A computer that plays and layers video for large screens and LED walls, often to timecode |
| Timecode | A running clock signal that keeps machines in step and can fire cues at set times |
| IP address | The number that identifies a device on a network, written as four numbers such as 10.0.0.20 |
| Subnet | The group of addresses that can talk to each other directly; shows usually use 255.255.255.0 |
| Static address | An IP address set by hand so it never changes |
| DHCP | The service that hands out IP addresses automatically |
| Port | A numbered door on a device that a particular program listens on |
| TCP | A network protocol that confirms every message arrived |
| UDP | A network protocol that sends messages without confirming them, quick and light |
| OSC | Open Sound Control, a message format many show programs accept over the network |
| Art-Net and sACN | Two ways of carrying lighting control (DMX) over a network |
| DMX | The control signal that tells lighting fixtures what to do |
| Export | Saving Companion's whole configuration, or one page, to a file |
| Back to one | On a film set, resetting everything to where the take starts |
| Video village | The film-set area with monitors where the director and others watch the take |
What the gear actually looks like
Every device named in this book, in one place. Recognition is the whole point of Chapter 4 — use this page to attach a picture to each name before you meet it on a dock at six in the morning.
Find the destination.
Work along the path between them.