← Course hubReboot AVStream Deck & Companion for Live Events and Streaming — designed edition
Reboot AV

Stream Deck & Companion for Live Events and Streaming

Chapter 01

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.

Chapter 02

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.

Chapter 03

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

Camera
Camera

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.

ReasonWhat it means on the showExample
One place for many machinesButtons can command a switcher, a playback computer and a slide computer from the same panelThe Brightwater opener: roll video, cut to it and dim the house from one key
Labels you writeEvery key shows your own text, colour or picture, so nothing has to be rememberedA key reading OPENER instead of a blank keyboard shortcut
State you can seeKeys change colour when a camera is live or a clip is playing, which Companion calls feedbackThe Low Tides song key turns green while the media server plays it
RepeatableA button does the same thing every time, in the same orderBack to one on The Night Shift resets every phone and screen identically for take two
ShareablePages and whole setups can be exported, copied and reloaded on a spare computerThe 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.

One tech, two small decks, a whole show under their fingers.

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.

PartWhat it isWhat it doesWhat breaks if it fails
Stream DeckHardware with keys that are small screensReports key presses, shows key picturesYou lose the buttons; Companion and the gear keep running
CompanionSoftware on a computerHolds every button, sends every command, reads back stateEvery button stops working, on every deck
The networkCables and a switch between computer and gearCarries the commandsButtons light up but nothing happens on the gear
The show gearSwitchers, servers, playback, consolesDoes the work the command asks forThat 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.

The buttons and the brainA key press travels from the Stream Deck to Companion on a computer, across the network to the show gear; pictures and state come back the other way.The deck is the buttons — Companion is the braintwo partsOn its own a Stream Deck does nothing. Companion decides what every key does.STREAM DECKHardware: keys thatare small screens,on USBReports presses,shows key picturesCOMPANIONSoftware on acomputerHolds every button,sends every command,reads back stateTHE NETWORKCables and a switchCarries the commandsTHE SHOW GEARSwitchers, servers,playback, consolesDoes the work thecommand asks forpresspicturescommandsstatecommandsstateWHAT BREAKS IF IT FAILSYou lose the buttons;Companion and thegear keep runningEvery button stopsworking, on everydeckButtons light up butnothing happens onthe gearThat one devicestops; the othersstill answerEvery machine keeps its own controls: an operator who knows them can run the show by hand if Companion or a deck fails.
A key press runs from the Stream Deck to Companion, across the network to the show gear, with what breaks if each part fails.
The deck is only buttons; the computer running the software does the work.

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.

ShowMachines one operator might runWhy one panel helps
Brightwater Health 2027ATEM switcher, Playback A and B, PowerPoint computerWalk-in, VOG, opener video and awards all cross machines
The Low TidesMedia server, playback, LED processorSong starts, holds and blackouts must land on the beat
The Night ShiftPhone and screen playback computers, a switcher feeding set monitorsEvery take resets several screens to the same start
Companion talks to switchers, servers, playback, PowerPoint, audio and lighting from one place.

Where the Elgato app fits

Lighting Console
Lighting Console

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 notWhat that means for you
Carry video, audio or lighting dataIt sends commands. The pictures, sound and DMX still travel on their own cables and networks
Replace the gear's own controlsEvery 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 inA device with no network, serial, MIDI or keyboard control cannot be commanded. Chapter 3 lists the ways in
Work without a module or protocolEach make of gear needs a module, or a documented command set you can send with a generic module
Fix a bad networkIf the computer cannot reach the device, no button will either
Make decisionsIt 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.

Control path and signal pathCompanion's commands travel the show network to the gear, while video, sound and DMX travel on their own cables and networks without passing through Companion.Companion sends commands — not the show itselflimitsCONTROL PATH — WHAT COMPANION CARRIESCOMPANIONSoftware on a computerSHOW SWITCHThe show networkATEMcut to camera 2PLAYBACKplay clip 4SLIDESadvance a slideSIGNAL PATH — ON ITS OWN CABLES AND NETWORKSPICTURESVideo from cameras andplayback to the screensSOUNDAudio on the audioteam's cablesDMXLighting data on thelighting team's cablesCOMPANIONNot in this path. Itcarries no pictures,sound or DMX.A module can only do what its authors built and the device allows; if the computer cannot reach a device, no button will.
Companion's commands travel the show network, while pictures, sound and DMX travel on their own cables and networks.

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 showWho usually runs CompanionWhat it most often controls
Corporate general sessionVideo director, playback operator, show caller's assistantSwitcher, playback, slides, VOG and walk-in music
ConcertVideo operator, media server operatorMedia server cues, LED processor presets, IMAG switcher
Film and television set24-frame playback operatorScreen and phone playback, set monitors, lighting effects on screens
Live stream or hybrid eventStream operatorStreaming 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

  1. List every machine you are responsible for on this show, by name and by job: switcher, playback, slides, media server, anything else.
  2. For each machine, write the moments in the running order where you touch it, such as the walk-in, the opener or the awards.
  3. Mark the moments where two or more machines must move together. Those are the moments a Companion button helps most.
  4. Check that each machine has a way in: a Companion module, or a documented network, serial, MIDI or keystroke control.
  5. Decide how many panels your responsibilities need. One machine may need none; many usually need one deck for transport and one for cues.
  6. Write down how you would run each machine by hand if Companion failed, and keep that note at your position.

What goes wrong

SymptomLikely causeWhat to do
An operator expects Companion to show video on the keysCompanion was mistaken for a video toolRemember it sends commands only; pictures travel on their own cables
Buttons light up but nothing happens on the gearThe brain and the buttons work, but the network path to the device is brokenCheck 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'sBoth programs are running and the Elgato app holds the deckQuit the Elgato app, then rescan surfaces in Companion
A client asks for a feature on the deck and it cannot be builtThe module has no action for it, or the device offers no control for itRead the module's help page before promising features
Nobody can run the switcher when the Companion laptop crashesThe team relied on the deck and forgot the gear's own controlsKeep 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.

Practice it
01
Which part of the system is the brain, and which is the hardware?
Answer
Companion, running on the laptop, is the brain. The Stream Deck is the hardware that reports presses and shows key pictures.
02
Name the moments in the awards segment where a single button could fire more than one machine.
Answer
Each winner's walk-up: the sting on a playback machine, the name graphic on the switcher and the photo slide on the PowerPoint computer could all be one button, if you choose to build it that way.
03
If the Stream Deck cable is pulled out mid-segment, what still works?
Answer
Companion and every machine keep running. You can re-plug the deck, press buttons in the Companion web page, or use each machine's own controls.
04
If the Companion laptop freezes, what do you do for the next winner?
Answer
Run the next winner by hand on each machine's own controls, from your written note, while someone restarts Companion or moves to the spare.
05
Give one thing Companion cannot do for you in this segment.
Answer
Any one of these: it cannot carry the video or the sting audio, it cannot decide who has won, and it cannot reach a machine that is not on the network.
Field checklist
  • 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.
Chapter 04

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.

ModelControls (Elgato's figures)ConnectionNotes for Companion
Stream Deck Mini6 LCD keysUSBSmall; fits a lectern side or a playback cart
Stream Deck MK.215 LCD keysUSB-C, removable magnetic standThe everyday deck; interchangeable faceplates
Stream Deck Scissor Keys15 LCD keys with scissor switchesUSB-C (USB 2.0), detachable standSame 15-key layout as the MK.2 with shorter, faster key travel; MK.2 faceplates do not fit it
Stream Deck XL32 LCD keysUSB-CMatches Companion's default grid of 8 columns by 4 rows
Stream Deck Neo8 LCD keys, 2 touch points, an Infobar screenUSB-CCompanion 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 stripUSB-CDials and strip work in Companion with limits, see the next section
Stream Deck + XL36 LCD keys, 6 push dials, a touch stripUSB-CThe largest desktop deck with dials
Stream Deck Studio32 LCD keys, 2 push dials with LED rings, NFC readerEthernet with PoE+, or USB-C powerBuilt for 19-inch racks; Companion does not yet light the LED rings
Stream Deck Pedal3 foot pedalsUSB-C, cable up to 5 mHands-free presses
Stream Deck Modules6, 15 or 32 keys on a bare boardUSB-CFor 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.

The Stream Deck familyKey grids for the Mini, MK.2, XL, Neo, Stream Deck + and Pedal drawn at one key size, with the other models listed by their controls.One key size, many counts — 3 pedals to 36 keysto scaleSTREAM DECK XL32 keys, Companion's 8 × 4MK.215 keys, three rows of fiveMINI6 keysNEO8 keys, 2 touch points, InfobarSTREAM DECK +8 keys, touch strip, 4 dialsPEDAL3 foot pedalsALSO SUPPORTEDSTREAM DECK + XL36 keys, 6 push dials,touch stripSTUDIO32 keys, 2 dials, rackmount, Ethernet with PoE+SCISSOR KEYS15 keys, the MK.2 layout,shorter travelMODULES6, 15 or 32 keys on a bareboardAmber: Neo touch points; purple: + controlsElgato's figures; keys at one size, pedals not to scale. Check new models against Companion's surface help.
The Mini, MK.2, XL, Neo, Stream Deck + and Pedal drawn at one key size, with the other supported models listed by their controls.
The Stream Deck family, left to right: Mini, Neo, MK.2, Stream Deck +, XL, with the Pedal in front.
Elgato Stream Deck MK.2: 15 keys in three rows of five, the everyday deck most show positions start with.
Elgato Stream Deck Scissor Keys: the same 15-key layout as the MK.2, with shorter, faster scissor-switch keys.
Elgato Stream Deck XL: 32 keys in four rows of eight, the same shape as Companion's default page.
Elgato Stream Deck Mini: six keys, small enough for a lectern side or a playback cart.
Elgato Stream Deck Neo: eight keys, with two touch points either side of the small Infobar screen.
Elgato Stream Deck + XL: 36 keys, a long touch strip and six push dials, the largest desktop deck with dials.
Sizes from 6 keys to 32, plus dials and a foot pedal.

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.

ControlWhat Companion receivesGood forKeep away from
KeyPress and releaseCues, transport, anything that must fire onceNothing; it is the safest control
Dial turnTurn left or turn right, once per stepLevels, rates, scrubbingCues; a dial can be nudged by a sleeve
Dial pushPress and releaseResetting what the dial controlsDangerous actions near a dial you turn often
Touch stripA tap, a swipe across or a swipe up and downLabels, page changes, light adjustmentsCritical presses and anything needing a long press
Neo touch pointsPressesPage left and rightCues

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.

Elgato Stream Deck +: eight keys, a touch strip and four push dials for levels and rates.

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 rackWhat you getWhen it fits
Stream Deck Studio32 keys and 2 dials, Ethernet and PoE+, rack bracketsBroadcast trucks, control rooms, touring racks
Stream Deck Module in a custom panel6, 15 or 32 keys in a panel you designFixed installs, custom touring cases
Desktop deck on a shelf or bracketAny desktop model on a rack shelf or a third-party mountShort-term shows, rental racks
Desktop deck on a Network DockA deck with its own Ethernet and PoEA 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.

Elgato Stream Deck Studio: 32 keys and a push dial at each end, in a 19-inch rack panel fed by Ethernet.
Elgato Stream Deck Modules with 6, 15 and 32 keys: bare boards with no case, for building into custom panels.
A 1U rack panel with network built in lives in the rack, not on the table.

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.

DeviceWhat it addsA safe use on a show
Stream Deck Pedal3 pedalsNext and previous for a presenter's slides when your hands hold a phone
X-keys foot switchesPedals you can rest a foot onPlay the next sting at an awards show
VEC foot pedalUSB pedalsTalkback or a single safe cue
Contour ShuttlePro or XpressJog wheel, shuttle ring and keysScrubbing a clip to its first frame on set
Blackmagic Speed EditorJog wheel and keysStepping 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.

Elgato Stream Deck Pedal: three pedals for hands-free presses, on a USB-C cable.
A pedal frees both hands for the job they are already doing.

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.

SurfaceWhat it isTypical use
Stream Deck familyElgato key panelsAlmost every show position
X-keysProgrammable key panels, some with T-bars and jog wheelsLarger key counts, broadcast desks
Loupedeck and Razer Stream ControllerKeys, dials and touch screensOperators who want dials beside keys
Blackmagic panelsATEM Micro Panel, Speed Editor, Replay EditorRe-using editing and switcher panels
MIDI controllersAny MIDI pad or fader boxCheap extra buttons and faders
Emulator and Web buttonsButtons in a browser or on a tabletSpare panel, a presenter's or producer's safe buttons
Companion SatelliteDecks plugged into another computerA deck at a position far from the Companion computer
Companion is not tied to one maker's buttons.

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 showA deck that fitsWhy
One playback machine, simple showStream Deck MK.2 with 15 keysTransport and a handful of cues on one page
Several machines, one operatorTwo decks: an MK.2 for transport, an XL with 32 keys for cuesTransport never moves; cues have room
Show caller's assistant or presenterStream Deck Mini with 6 keysFew, safe buttons that cannot be confused
Levels and rates as well as cuesStream Deck + or + XLDials beside keys
Truck, rack or machine roomStream Deck Studio or a module in a custom panelRack mounting and Ethernet
Hands busy on setA deck plus a Stream Deck PedalFoot 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

  1. List your responsibilities and count the moments in the running order where you press something.
  2. Choose the number of decks and their sizes so that the busiest moment needs no page change.
  3. 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.
  4. Add a spare of each model and spare cables to the kit list.
  5. Plan the cable route from each deck to the Companion computer, and choose a Network Dock, Studio or Satellite where USB will not reach.
  6. 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

SymptomLikely causeWhat to do
A long press on the Stream Deck + touch strip does nothingThe strip sends press and release together, so it has no long pressMove long-press actions to a key
A new deck straight from the box is not seen by CompanionElgato changed the model revision, or the surface module is out of dateUpdate the Elgato surface module or Companion, and check the module's supported list
A cue fires when the operator brushes the deskThe cue sits on a dial or a pedalKeep cues on keys and put only safe actions on pedals and dials
The ATEM Micro Panel lights change by themselvesBlackmagic's ATEM software and Companion both drive the panelClose the ATEM software while Companion uses the panel
The deck in the rack goes darkIts network or PoE cable was pulledLabel 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.

Practice it
01
How many decks would you put at your own position, and of what size?
Answer
Two: a 15-key deck for transport and a 32-key XL for the song cues, so the busiest moment needs no paging. Other choices work if they give the cues enough room.
02
Where would you put the media server levels you ride during songs?
Answer
On the dials of a Stream Deck + if the media server's module offers level actions, never on the cue keys.
03
What would you give the operator backstage?
Answer
A Stream Deck Mini with 6 keys, holding only safe actions.
04
The machine room is beyond USB reach. Name two ways to get buttons there.
Answer
A deck on a Network Dock or a Stream Deck Studio on the show network, or a deck on a second computer running Companion Satellite. The emulator or Web buttons on a tablet also work.
05
What spares go in the kit?
Answer
A spare of each deck model, spare USB cables, and a spare network cable for any networked panel.
Field checklist
  • 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.
Chapter 05

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.

TermPlain meaningOn the show
NetworkMachines joined so they can send each other messagesThe show network at FOH
Ethernet cableThe cable that carries network messages, usually with RJ45 plugsFrom the ATEM to the switch
SwitchA box with many network sockets that passes messages between themThe show switch in the FOH rack
DeviceAny machine on the networkCompanion laptop, ATEM, playback computers
CommandOne message that asks a device to do somethingCut 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.

DeviceIP addressSubnet maskCan it reach Companion at 10.0.0.10?
ATEM10.0.0.20255.255.255.0Yes; same first three numbers, different last number
Playback A10.0.0.31255.255.255.0Yes
PowerPoint computer10.0.0.40255.255.255.0Yes
A rental laptop as delivered192.168.1.50255.255.255.0No; different neighbourhood
A second laptop set to 10.0.0.10 by mistake10.0.0.10255.255.255.0No; 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.

IP addresses and subnetsWith mask 255.255.255.0 the first three numbers name the subnet and must match; a rental laptop at 192.168.1.50 cannot reach Companion at 10.0.0.10, and a second 10.0.0.10 clashes.Same first three numbers, or no conversationsubnets10.0.0.20neighbourhood: must match← house: must differMask 255.255.255.0 = /24House numbers 1 to 254; .0 names thesubnet and .255 is broadcastTHE SHOW SUBNET 10.0.0.xCOMPANION10.0.0.10ATEM10.0.0.20PLAYBACK A10.0.0.31PLAYBACK B10.0.0.32POWERPOINT10.0.0.40AUDIO DESK10.0.0.50LIGHTING DESK10.0.0.60RENTAL LAPTOP192.168.1.50 as delivered: adifferent neighbourhoodSECOND LAPTOP10.0.0.10 by mistake: twodevices, one address, a clashMask 255.255.255.0 on every device; addresses from the Brightwater Health 2027 IP sheet.
The Brightwater Health 2027 devices share 10.0.0.x, while a rental laptop at 192.168.1.50 and a second 10.0.0.10 cannot talk to Companion.

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.

MethodHow it worksWhen it fits
Static addressTyped into each device by handMost show networks; no server needed, nothing changes by itself
DHCP reservationThe DHCP server always gives this device this addressNetworks with a managed router, such as a broadcast truck or a venue install
Plain DHCPThe server hands out any free addressLaptops 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 devicePortWhere this is stated
Companion web interfaceport 8000 by defaultCompanion user guide
Companion SatelliteTCP port 16622 and WebSocket port 16623Companion user guide
Blackmagic ATEM switchersUDP port 9910The ATEM control library Companion's module uses
vMix TCP APITCP port 8099Companion vMix module
QLab OSCport 53000 by defaultCompanion QLab module
VICREO Listener keystroke appTCP port 10001 unless changedCompanion 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.

PortsOne computer at 10.0.0.10 listens on several numbered ports: 8000 for the web interface, 16622 and 16623 for Satellite; the ATEM listens on UDP 9910 and VICREO Listener on TCP 10001.The address finds the machine, the port the programportsIf the IP address is the building, the port is the flat number: 1 to 65535.COMPANION LAPTOP10.0.0.108000Companion web interfaceby default16622Companion SatelliteTCP16623Companion SatelliteWebSocketbrowserSatelliteSatelliteATEM SWITCHER10.0.0.209910UDPPOWERPOINT COMPUTER10.0.0.4010001TCP, VICREO ListenerTwo programs cannot listen on the sameport on one computer; a firewall blocksports it has not been told to allowPorts as Companion's user guide and modules state them; write any port you change on the IP sheet.
One computer at 10.0.0.10 listens on port 8000 for the web interface and 16622 and 16623 for Satellite, while the ATEM and the PowerPoint computer have doors of their own.

TCP, UDP and OSC

Mixing Console
Mixing Console

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.

TCPUDP
Everyday pictureA phone callA shout across the room
Connection firstYesNo
Lost messagesSent again automaticallySimply lost
OrderKeptNot guaranteed
What Companion can tell youWhether the device is connectedOnly whether replies come back
Gear you will meet using itvMix TCP API, QLab in TCP mode, many projectors and displaysBlackmagic 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.

TCP, UDP and OSCTCP connects first, checks every message and resends lost ones; UDP sends with no check, so a lost message is simply lost; OSC is a message format that rides on either.TCP checks every message — UDP just sends ittransportTCP — A PHONE CALLUDP — A SHOUTOSC — A MESSAGE FORMATCompaniondeviceconnectconnectedmessage 1checkedmessage 2checkedLost messages sent again, orderkept. Companion can tell you thedevice is connected.vMix TCP API, QLab in TCP modeCompaniondevicemessage 1message 2lostmessage 4No call set up, no check. Quick,but nothing tells the sender amessage went missing.Blackmagic ATEM, many OSC devicesaddress/layer/2/clip/4/playvalue: noneaddress/fader/3value: 0.75Readable commands with values. Mostoften sent over UDP, and can travelover TCP.Invented examples; type eachprogram's own addresses exactlyYou rarely choose: the gear does. Where a module offers both, its help page says what each mode gives you.
TCP connects first and checks every message, UDP sends with no check, and OSC is a message format that can ride on either.

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.

RuleWhy
Keep the show network separate from the venue'sVenue and hotel traffic, other events and guests cannot reach or slow your gear
Wire every device you controlA cable either works or it does not, and the fault is easy to find
Use one subnet for the gear Companion controlsEvery device can reach every other without a router
Label every cable at both endsAnyone can trace the ATEM's cable in the dark
Power the switch from the same protected supply as the gearA switch that loses power takes every button with it
Never put the Companion web page on the internetBitfocus warns that anyone who finds it gets a way to run commands on your machine
A show networkOne switch in the FOH rack with a cable to each device; audio and lighting join only if their operators agree; a Wi-Fi tablet gets its own access point; the venue network is not connected.One private switch — nothing else plugged intopologyCOMPANION10.0.0.10ATEM10.0.0.20PLAYBACK A10.0.0.31PLAYBACK B10.0.0.32POWERPOINT10.0.0.40, lecternsideSHOW SWITCHFOH rack, gigabitAUDIO DESK10.0.0.50, if the A1agreesLIGHTING DESK10.0.0.60, if the LDagreesOWN ACCESS POINTFor a Wi-Fi tablet: asmall job, noshow-critical cueLAPTOP WI-FIInternet for email,on a different subnetVENUE NETWORKHotel and guests: notconnectedBrightwater Health 2027 plan; wire every device you control, and never put the Companion web page on the internet.
One switch in the FOH rack with a cable to every device, audio and lighting only by agreement, a separate access point for a tablet, and the venue network left unconnected.
Every machine Companion controls plugs into one network.
Labelled: every cable named at the switch, so a device that stops answering is traced in a minute.
Unlabelled: the same switch as a tangle, where finding the one dead cable takes far longer.

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.

DeviceIP addressMaskControl port and protocolOwnerNotes
Companion laptop10.0.0.10255.255.255.0Web page on port 8000VideoSpare laptop set up identically but kept off the network
ATEM switcher10.0.0.20255.255.255.0UDP port 9910VideoSet from ATEM Setup
Playback A10.0.0.31255.255.255.0Per playback moduleVideoMain
Playback B10.0.0.32255.255.255.0Per playback moduleVideoBackup, mirrors A
PowerPoint computer10.0.0.40255.255.255.0Per slide control methodVideoLectern side of stage
Audio desk10.0.0.50255.255.255.0Per desk moduleAudioAgreed with the A1
Lighting desk10.0.0.60255.255.255.0Per desk moduleLightingAgreed 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.

Write every IP address down before the first button is built.

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 inWhat it isHow Companion reaches itGear you will meet
SerialAn older one-to-one cable, often called RS-232 or RS-422, with its own command languageThe Generic TCP Serial module turns a serial port on the Companion computer into a network port that other modules can useOlder projectors, displays, decks and routers
MIDIThe music-equipment control standard, on 5-pin cables, USB or the networkThe Generic MIDI module, including network MIDI through rtpMIDIAudio consoles, playback software, lighting consoles
HTTPThe web's language: a device answers addresses like a web pageThe Generic HTTP module sends GET, POST, PUT, PATCH and DELETE requestsCameras, encoders, displays and software with a web API
KeystrokesPressing keys on another computer as if someone sat at itThe VICREO Listener app on the target computer, reached over TCP port 10001PowerPoint, Keynote, any software with keyboard shortcuts
Wake-on-LANA network message that switches a sleeping computer onThe Generic Ping and Wake modulePlayback 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

  1. 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.
  2. Plug a labelled Ethernet cable from the computer's wired port to the show switch.
  3. 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.
  4. Confirm the computer shows the address you entered, not one beginning 169.254.
  5. 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.
  6. Repeat the ping for every device on the sheet, and mark each one as answering or not.
  7. 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

SymptomLikely causeWhat to do
The Companion computer cannot reach anything on the show networkIts wired adapter is still on DHCP and gave itself a 169.254 addressSet a static address and mask from the IP sheet
One device answers sometimes and drops out at randomTwo devices share one IP addressUnplug 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 computersIt arrived set to 192.168.1.x, a different subnetChange it to the show subnet or ask whoever owns it to do so
Buttons work in rehearsal and lag during the showThe device is on Wi-Fi and the audience's phones filled the airWire every device you control
Ping works but Companion still cannot connect to the deviceWrong port, the device's control is switched off, or a firewall blocks the portCheck 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-inThe ATEM was on DHCP and received a new addressGive 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.

Practice it
01
Can Companion at 10.0.0.10 reach this computer as delivered? Why?
Answer
No. Its first three numbers, 192.168.0, differ from the show's 10.0.0, so it is in a different subnet.
02
Choose an address for it that fits the plan, and say why.
Answer
10.0.0.41, the next free address in the forties block for presentation, beside the main PowerPoint computer at 10.0.0.40.
03
Which port and protocol will Companion use to reach the Listener?
Answer
TCP port 10001, the VICREO Listener's port unless it has been changed.
04
The awards producer suggests putting the computer on the hotel Wi-Fi to save a cable. What do you say?
Answer
No. Hotel Wi-Fi is shared with every guest, often stops devices seeing each other, and can drop out; the slide computer must be wired to the show switch.
05
Write the line you add to the IP sheet.
Answer
Awards PowerPoint computer, 10.0.0.41, 255.255.255.0, VICREO Listener on TCP port 10001, owner Video, notes Awards segment only.
06
After setting the address, how do you check the path before building any buttons?
Answer
Ping 10.0.0.41 from the Companion computer and confirm replies come back, then check the Listener is running on the slide computer.
Field checklist
  • 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.
Chapter 06

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.

ComputerRequirements stated by BitfocusWhen it fits
MacmacOS 13.5 or newer, from Companion 5.0Operators who already carry a Mac to the show
Windows PCWindows 10 or newer, 64-bitOperators on Windows; small shows running vMix and Companion together
Linux computerx64 or arm64; a desktop build and a headless buildA dedicated control computer in a rack
Raspberry PiOfficially the Pi 4 and Pi 5 and their derivatives, using the CompanionPi imageA small, always-on control box with no screen
Docker on a Linux serverImages for linux/amd64 and linux/arm64; no USB pass-throughInstalls 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.

Companion can run on a laptop, a small dedicated computer, or a Raspberry Pi.

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.

SystemHow to install
MacUnzip the download and drag Companion.app into the Applications folder
WindowsDownload, run the installer, then run Companion
Linux desktopExtract the download and run companion-launcher; Companion will prompt you to add the USB permission rules, called udev rules, that Stream Decks need
Linux headlessUse Bitfocus's install script, which sets up the system, the companion user and the udev rules
Raspberry PiWrite the CompanionPi image to a fast microSD card with a tool such as Raspberry Pi Imager
DockerRun 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.

Companion's Configuration Wizard on its Button Grid step, which offers 4 rows by 8 columns, the shape of a Stream Deck XL.

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 itemWhat it is forTaught in
ConnectionsThe devices Companion controlsChapter 5
ButtonsThe button grid and its pagesChapters 6 and 7
Image LibraryPictures to use on keysChapter 6
SurfacesStream Decks and other panels, including Remote surfacesThis chapter and Chapter 20
TriggersActions that run on events or times instead of pressesChapter 8
VariablesValues from devices, and your own custom valuesChapter 8
ModulesInstalled modules and their versionsThis chapter and Chapter 5
SettingsConfiguration Wizard, General, Buttons, Protocols, Backups, AdvancedThis chapter and Chapter 21
Import / ExportSaving and loading the whole setupChapters 6 and 21
LogMessages from Companion, for finding faultsChapter 21
Interactive ButtonsThe Emulator and Web buttons pagesChapter 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.

The setup pageCompanion's admin interface in a browser at http://10.0.0.10:8000: a sidebar of sections on the left, a main panel in the middle, a details panel on the right and a help menu at the top right.Every button is built in one web pageadmin pagehttp://10.0.0.10:8000help menu ?SIDEBARchapterConnections5Buttons6, 7Image Library6Surfaces4, 20Triggers8Variables8Modules4, 5Settings4, 21Import / Export6, 21Log21Interactive Buttons20MAIN PANELThe section you chose, such as the button gridDrag the dividers on a wide screenRIGHT PANELDetails and settings forwhat you selectedOn a narrow screen the panelscombineCompanion 5.1.2; sections and labels move between versions. Anyone who can open this page can press any button.
Companion's admin page in a browser at port 8000, with the sidebar sections, the main panel, the right-hand details panel and the help menu.
Companion is set up from a web browser, on the same computer or another one.

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 settingWhat it doesOn a show
Surface NameThe name used everywhere for this deckTRANSPORT and CUES, not two serial numbers
Surface GroupLinks decks so they move together, or gives a deck a stable identitySet up before the show so a spare can be swapped in, see Chapter 21
Use Last Page At Startup and Startup PageWhich page the deck shows when Companion startsStart each deck on its home page, not wherever it was left
Horizontal and Vertical Offset in gridWhich part of a larger grid a smaller deck showsLets two small decks share one page
Surface Rotation and Button rotationCorrects a deck mounted on its sideRack or bracket mounts
BrightnessKey brightnessLower at a dark FOH or on a film set
Never pin code lockLeaves this deck unlocked when PIN lockout is onThe 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.

SettingWhereChange it toWhy
Installation NameSettings, GeneralThe position and show, such as BWH27 VIDEO MAINTells two Companion installations apart in browser tabs and on the network
Watch for new USB DevicesSurfaces page settingsOnA deck plugged in later is found without a rescan
Auto-enable newly discovered surfacesSurfaces page settingsOff if other software shares your decksLets you choose which decks Companion uses
Grid SizeSettings, ButtonsBig enough for your largest deckA + XL or X-keys may need more than 8 by 4
Admin UI PasswordSettings, AdvancedOn, with a passwordStops casual visitors; Bitfocus states it does not make the installation secure
BackupsSettings, BackupsA rule that saves the setup on a scheduleGets you back up after a failure, see Chapter 21
ProtocolsSettings, ProtocolsOnly what your show needs switched onEach 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.

Companion's Settings, General page with the Installation Name set to BWH27 VIDEO MAIN, the name that appears in the header and browser tab.
Companion's Settings, Advanced page, where the Admin UI Password is switched on, with Bitfocus's own warning that it does not make the installation secure.

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.

WhenWhat to do with versions
Weeks before the showChoose the Stable version and the module versions you will use, and build on them
Before any updateExport the whole setup so you can go back
Show weekDo not update Companion, modules or the operating system
On the spare computerInstall the same Companion and the same module versions
On a computer with no internetDownload the offline module bundle for your Companion version from the Bitfocus website and import it on the Modules page
After the showTry 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

  1. Choose the computer and its spare, and check each has wired Ethernet and enough USB ports for your decks.
  2. Set the wired adapter to its static address from the IP sheet, and turn off sleep, screen lock and automatic updates.
  3. Download and install the Stable build of Companion.
  4. Open Companion, choose the show network in GUI Interface, leave the port at 8000 unless the sheet says otherwise, and press Launch GUI.
  5. Run the Configuration Wizard, set the Installation Name, and set the grid size for your largest deck.
  6. Close the Elgato app, plug in each deck, give each a Surface Name and a Startup Page, and test one key on each.
  7. Set the Admin UI Password and a backup rule, then export the setup and install the same versions on the spare.

What goes wrong

SymptomLikely causeWhat to do
The deck is not in the Surfaces listThe Elgato app holds it, the surface module is off, or Companion has not rescannedQuit the Elgato app, check the surface module is enabled, press Rescan USB
The setup page will not open from another computerGUI Interface is set to a network other than the show networkChoose the show network in the launcher and use the address shown under Running
Companion closed when the laptop went to sleep during a long speechThe computer's sleep settings were left onTurn off sleep, screen lock and screen savers before the show
Buttons behave differently after an overnight updateCompanion or a module was updated during the show weekFreeze versions in show week and restore the exported setup if needed
On a Raspberry Pi 3 the deck flickers and Companion is unstableBitfocus supports only the Pi 4 and Pi 5Use a Pi 4 or Pi 5, or a small computer
The decks are locked when the operator needs a cuePIN lockout timed out on the operator's deckSet 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.

Practice it
01
Which Companion build do you install, and why?
Answer
The Stable build, because it is tested and changes only every few months; Beta can carry bugs.
02
What do you set in the launcher so the playback coordinator can open the setup page from another laptop on the cart network?
Answer
Choose the cart network in GUI Interface and give the coordinator the address shown under Running, such as http://10.0.0.10:8000.
03
Which computer settings must change, given the hour of idle time?
Answer
Turn off sleep, screen savers and screen lock, so Companion keeps running through the idle hour.
04
What do you tell the production office about overnight updates?
Answer
No updates to the operating system, Companion or modules during the shoot; updates are tested on a copy afterwards.
05
The coordinator asks for a PIN on the decks. How do you set it so it cannot lock you out?
Answer
Enable PIN lockout but set Never pin code lock on the operator's decks, or use a timeout of 0 and lock by button only.
Field checklist
  • 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.
Chapter 07

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 suppliesWhat it isExample from an ATEM connection
ActionsCommands a button can sendME: Set Program input
FeedbacksStates that change a key's lookA key turns red when camera 2 is on program
VariablesValues read back from the deviceThe name of the input on program
PresetsReady-made buttonsA 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 2027LabelAddressWhat to fill in
ATEM switcheratem10.0.0.20Target IP and Model from the help page
Playback ApbA10.0.0.31Target address and port from the playback module's help
Playback BpbB10.0.0.32Same module, its own connection and address
PowerPoint computerppt10.0.0.40Target 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.

Companion's Add New Connection list searched for 'atem', with Blackmagic Design: ATEM at the top.
The dialog Companion shows when adding the ATEM, with the label atem and the latest stable module version chosen.
The atem connection's settings in Companion, with Target IP 10.0.0.20, Model and Preset Style, and the module's note that USB control is not supported.

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 seeWhat it meansWhat to do
Green tickGood: Companion is talking to the deviceNothing
SpinnerConnecting: Companion is trying to reach the deviceWait a few seconds; if it keeps spinning, check the path
Yellow warning triangleWarning: the connection works but the module reports a problemHover over it to read the message
Red warning triangleError: the connection is not workingHover over it to read the message, then check address, cable and device
Grey power symbolDisabled: the connection is switched offSwitch 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.

Reading connection statusFive connection states in the Connections list: green tick good, spinner connecting, yellow triangle warning, red triangle error, grey power symbol disabled.Read the status before you blame the buttonstatusGOODCompanion is talking to the deviceNothingCONNECTINGCompanion is trying to reach itWait a few seconds; if it keeps spinning, checkthe pathWARNINGIt works, but the module reports aproblemHover over it to read the messageERRORThe connection is not workingHover to read the message, then check address,cable and deviceDISABLEDThe connection is switched offSwitch it on if the show needs itCompanion 5.1.2 Connections list. A red that stays red is usually address, subnet, cable, firewall or remote control off.
The five connection states in the Connections list, what each means and what to do about it.
Companion's Connections page for Brightwater Health 2027 (atem, pbA, pbB and ppt); every connection shows the spinner because Companion cannot reach the machines and keeps trying.
The menu at the end of the pbA row in Companion, offering Help, Known issues, Variables, View logs and Delete; Variables is greyed out because the PlaybackPro Plus module provides none.

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 moduleWhat it sendsWhat you need from the manualWhat it gives back
Generic TCP/UDPText commands or HEX commands, with an optional ending such as a carriage returnTarget IP, Target Port, TCP or UDP, and the exact command stringsWith TCP, the last reply can be saved in a variable
Generic OSCOSC messages with no value, whole numbers, decimals, text or several valuesIP, port, and the OSC addresses the device understandsFeedbacks that listen for OSC messages, and variables for the last message received
Generic HTTPWeb requests: GET, POST, PUT, PATCH and DELETEThe device's web API addresses and body formatParts of the reply can be stored in custom variables
Generic MIDIMIDI messagesThe MIDI messages the device responds toIncoming MIDI, including MIDI Time Code, as variables
Generic Ping and WakeA ping, and a Wake-on-LAN messageThe device's IP and MAC addressWhether 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.

When there is no moduleThe generic modules send exactly what you type from the device's protocol manual: TCP/UDP, OSC, HTTP, MIDI, and Ping and Wake.No module? Send exactly what the manual saysgenericPROTOCOL MANUALEvery command, tested in prepGENERIC MODULESends what you type, nothingmoreTHE DEVICEIts state unknown unless youbuild itTCP/UDPText or HEXcommands, with anoptional endingsuch as a carriagereturnBack: with TCP, thelast reply in avariableOSCOSC messages withno value, numbers,text or severalvaluesBack: feedbacks andvariables fromincoming OSCHTTPWeb requests: GET,POST, PUT, PATCHand DELETEBack: parts of thereply in customvariablesMIDIMIDI messages thedevice responds toBack: incoming MIDI,including MIDI TimeCodePING AND WAKEA ping, and aWake-on-LAN messageBack: whether thehost is aliveNever invent a command: if the manual does not list it, or you cannot test it before the show, it stays off the deck.
The five generic modules, what each sends from the protocol manual, and what each can give back.

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.

HabitWhy it matters
Label every connection after the device and its roleVariables and logs make sense at a glance
Group connections into collections by department or by main and backupOne switch takes a whole group off or on
Disable a connection you do not need today instead of deleting itIts buttons and settings stay ready for tomorrow
Delete connections left from old showsThey clutter the list and may show errors that hide new ones
Match every connection to a line on the IP sheetAnyone can check the address in seconds
Watch for the yellow Deprecated badgeThe module is retired; plan a move to its replacement after the show
Export the setup after every change to connectionsThe 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

  1. Find the device on the IP sheet and ping its address from the Companion computer.
  2. On the Connections page, search for the device's module and read its help, including anything that must be switched on at the device.
  3. Enable remote control on the device as the help page describes.
  4. Add the connection, choose the module version, give it a clear label, enter the address and any other settings, and click Save.
  5. Wait for the green tick. If it stays red or yellow, hover over it, read the message and fix the cause.
  6. Open the connection's Variables and change something on the device to see the values follow.
  7. 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

SymptomLikely causeWhat to do
The module you need is not in the listThe list shows only installed modules, or the computer has no internetSwitch the list to all available modules, or import the offline module bundle
The ATEM connection stays red with the right addressThe ATEM is on a different subnet, or its cable is outPing it, then check its address and mask in ATEM Setup and its cable
QLab ignores every commandOSC access is off, or the QLab 5 passcode is missing or wrongTurn on OSC access in QLab and enter the correct passcode in the connection
Variables show names like generic-tcp-udp_2 that nobody understandsConnections kept their default labelsRelabel each connection after the device and its role, before building buttons
A generic TCP command does nothingThe command string or its ending, such as a carriage return, does not match the manualCopy the command and ending exactly from the protocol manual and test on the device
The second operator's panel stops controlling the shared deviceThe device's limited control connections are used up by a duplicate connectionRemove 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.

Practice it
01
What labels do you give the three show-gear connections?
Answer
Short, plain labels such as atem, pbA and pbB, so variables and logs are readable.
02
Playback A is red. List the checks you make, in order.
Answer
Hover over the triangle and read the message; ping 10.0.0.31; check the cable and switch port; check Playback A's own address and mask; check that its software allows remote control on the port the module uses; check any firewall on that computer.
03
Which module do you use for the house projector, and what do you need from its manual?
Answer
Generic TCP/UDP set to TCP, with the projector's IP and control port, and the exact command strings and line ending from the manual.
04
How do you confirm the ATEM connection is live without pressing anything on program?
Answer
Open the connection's Variables and change the preview or program source on the ATEM panel, then watch the values follow; or test a button that changes preview only.
05
The client cancels the projector for day two. What do you do with its connection?
Answer
Disable it rather than delete it, so it is ready if the projector returns, and note the change on the IP sheet.
Field checklist
  • 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.
Chapter 08

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.

TermWhat it meansWhere you set it
PageOne full grid of buttons, with a number and a namePages tab beside the grid
Grid sizeHow many rows and columns every page has; 8 columns by 4 rows on a new installSettings, Button Grid, Configure Grid Size
LocationA button's address as page/row/column, counting rows and columns from 0Shown on the key's top bar and in the editor
SurfaceCompanion's word for any deck or panel that shows buttonsSurfaces page
Startup pageThe page a surface shows when Companion startsSurface settings, Startup Page or Use Last Page At Startup
Offset in gridWhich part of a large page a small deck showsSurface 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.

Pages, rows and keysA Companion page is an 8 by 4 grid of buttons addressed page/row/column from 0; new pages put Page up, Page number and Page down in the first column; a 15-key MK.2 shows the top-left five by three.The deck is a window onto Companion's pagepage 1PAGE UP1/0/01/0/11/0/21/0/31/0/41/0/51/0/61/0/7PAGE NO.1/1/01/1/11/1/21/1/31/1/41/1/51/1/61/1/7PAGE DOWN1/2/01/2/11/2/21/2/31/2/41/2/51/2/61/2/71/3/01/3/11/3/21/3/31/3/41/3/51/3/61/3/7Dashed: the top-left corner a 15-key MK.2 showsONE PAGE8 columns by 4 rows, 32buttons, the shape of an XLADDRESSpage/row/column, counting rowsand columns from 0OFFSETHorizontal and Vertical Offsetin grid move a small deck'swindowCompanion 5.1.2 defaults; grid size is set in Settings, Button Grid, and can grow in all four directions.
A new 8 by 4 page with its page/row/column addresses, the navigation keys in the first column, and the corner a 15-key MK.2 shows.
Companion's Buttons page showing page 2, BW SHOW, with each key's page/row/column address on its top bar and both pages named in the Pages tab.

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.

TypeWhat it doesWhen you use it
Regular buttonRuns one or more actions and shows your label and coloursAlmost every button on a show
Button referenceMirrors another button: shows what it shows, and pressing it presses the other buttonThe same key on several pages, such as a CUT or a PANIC key
Page upMoves the deck to the next pageNavigation
Page numberShows the page number or name; pressing it returns the deck to its startup pageNavigation, and a quick way home
Page downMoves the deck to the previous pageNavigation

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.

Clicking an empty square on Companion's BW SHOW page offers Regular button, Button reference, Page up, Page number and Page down.

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.

Companion's Presets tab for the atem connection, showing ready-made Program and Preview buttons for each input and the When placed choice of Linked or Copy.

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.

GroupWhen it runsTypical use
Press actionsThe moment the key is pressedCuts, takes, GO, next slide
Release actionsWhen the key is releasedEnding something that the press started, such as a talkback that stays open only while held
Duration group, run while heldOnce the key has been held for the time you set; shown as Held for, then the time in millisecondsA protected key that fires only after a deliberate hold
Duration group, run on releaseOn release, if the key was held at least that long; shown as Release after, then the time in millisecondsA long press that does something different from a short press
Short release actionsOn release, only if the key was let go before the first duration group's timeThe normal action on a key that also has a long-press action
Rotate left and Rotate right actionsWhen the dial for that button is turned, if Rotary actions is enabledFader 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.

The FTB hold key in Companion's button editor, with the ATEM's Fade to black action inside a 'Held for 1000ms' duration group, so it fires only after a full second's hold.

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 modeWhat happensWhen it fits
ConcurrentActions are sent in parallel, broken up only by any Wait actionsCommands to different machines that should land together
SequentialEach action waits for the one before it to finish before startingA chain where order matters and you would rather not guess at small delays
InheritFollows the mode of the group it sits inGroups 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.

OrderActionConnection
1Load clip (id) and Take to Program, clip 1pbA (Playback A, 10.0.0.31)
1Load clip (id) and Take to Program, clip 1pbB (Playback B, 10.0.0.32)
2Wait, 200 msinternal
3ME: Set Program input, input 3atem (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.

Order and delaysThe Brightwater opener: clip 1 taken on Playback A and B together at 0 ms, a Wait of 200 ms, then the ATEM cuts to input 3.Actions leave together — a Wait holds the restOPENER0 ms100 ms200 ms300 ms400 mspbAPlayback A, 10.0.0.31Load and take clip 1pbBPlayback B, 10.0.0.32Load and take clip 1internalWaitWait 200 msatemATEM, 10.0.0.20ME: Set Program input, input 3CONCURRENTSent in parallel, broken up only byany Wait actionsSEQUENTIALEach action waits for the one beforeit to finishIf a module does not report finishing,the next starts at onceINHERITFollows the mode of the group it sitsinAction Group execution modes, Companion 5.1.2. The 200 ms depends on the machines: rehearse it and adjust it.
The Brightwater opener key on a timeline, with both playback takes at once, a 200 millisecond Wait, then the ATEM cut, and the three execution modes.
The OPENER key in Companion's button editor: Load clip (id) and Take to Program, clip 1, on pbA and pbB, then a 200 ms Wait, then the ATEM set to Input 3.

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 ProgressionHow the step changesWhen it fits
On button releaseMoves to the next step every time the key is released; the defaultSimple toggles, such as a projector shutter: close on step 1, open on step 2
ManualChanges only when an action sets it, such as Button: Set current step or Button: Skip stepButtons whose step another key or a trigger controls
ExpressionThe current step is calculated from an expression, for example from a variableA 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.

Buttons that stepA two-step key runs Step 1 then Step 2 on successive releases; it counts presses, so if the machine is paused by its own mouse the next press sends the wrong command.A stepping key counts presses — not the machinestepsSTEP 1Close the shutterSTEP 2Open the shutterreleasereleaseStep Progression: On button release, the default. Manualand Expression are the other two.THE TRAP: A PLAY/PAUSE KEYPress 1Step 1 sends PLAYKey moves to step 2PlayingMouseSomeone pauses the machineKey still on step 2PausedPress 2Step 2 sends PAUSEWrong commandStill pausedSEPARATE KEYSPLAY and PAUSE always send the same thing. Use them foranything that goes to air.EXPRESSIONThe step follows a variable the module reports, not thepress count.Companion 5.1.2 steps, which replaced Latch in 3.0. Keep stepping keys where a wrong press is harmless.
A two-step key cycling on release, and how a Play/Pause key goes wrong when the machine is paused from its own mouse.

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.

ElementWhat it is for
TextA label, a variable or the result of an expression
ImageAn icon, logo or picture, uploaded or from the Image Library
BoxA filled rectangle with optional rounded corners and border; the Background is a Box
LineA straight line, for dividers
CircleA circle or arc, for indicator dots
GaugeA bar or ring that shows a value, such as a level or progress
GroupA container that moves and reuses several elements together
ReferenceMirrors 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 iconWhat it is telling you
Red triangleA connection this button uses is in an error state
Orange triangleA connection this button uses has a warning
Green play arrowActions 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.

Readable: short words, big type, one colour per department.
Unreadable: the same keys with long labels in small grey type, impossible to read at a glance.

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.

ColourMeansExample keys
RedReserved for on air: program tally, live, recordingKept for feedback, not used as a resting colour
GreenReserved for preview and readyKept for feedback
BluePlayback transportPLAY, PAUSE, STOP, NEXT, PREV
PurpleRun-of-show cuesWALK-IN, VOG, OPENER, AWARDS
GreyNavigation and utilitiesPage keys, HOME
OrangeProtected or dangerousFADE 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 optionWhat it does
Import, Preserving unselected componentsReplaces only the parts you selected and leaves the rest of the setup alone
Full Reset then ImportResets everything, then imports only the selected parts
Buttons tabImports chosen pages, with an option to remap connections
Triggers tabImports 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

  1. Write down what the key must do in one sentence, and which machines it touches, before opening Companion.
  2. On a named page, click the square where the key belongs and choose Regular button, or drag a preset if one does the job.
  3. 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.
  4. If the key is dangerous, move its action into a duration group with Execute while held, so it fires only on a deliberate hold.
  5. Label it with the outcome, in the show's colour for its family, with status icons left on. Write what it does in Notes.
  6. Test it with the Press tool or the deck on gear that is safe to move, watching each machine respond in the right order.
  7. Export the page, and copy the key with Copy or a Button reference wherever else it is needed.

What goes wrong

SymptomLikely causeWhat to do
A key fires two machines but they land out of stepA Wait sits between their actions, or one is inside a Sequential groupPut 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 pausedIt is a stepping key counting presses while someone used the machine's own controlsUse 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 pageA page was inserted or reordered and page-number references were not updatedAdd new pages at the end and check every Surface: Set to page action after reordering
An imported page shows Unresolved Reference on some keysButton references kept their old addresses when the page landed on a new numberEdit each reference's Mirrored location to the new page number
A sequence carries on after the director has called a holdThe rest of the actions were still queued behind a WaitUse Abort Actions, and keep an abort key on any page with long sequences
A long label is unreadable on the keyText Size fixed too large with Shrink to fit off, or too many wordsShorten 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.

Practice it
01
List the actions on the AWARDS key in order, with their connections.
Answer
Load clip (id) and Take to Program, clip 5, on pbA; the same on pbB; internal Wait 500 ms; ME: Set Program input, input 3, on atem.
02
Which actions should leave together, and why?
Answer
The two playback takes, so A and B stay in step and either can carry the sting if the other fails.
03
Where does the half-second go, and what is its setting?
Answer
An internal Wait after the two takes and before the ATEM action, with Time expression (ms) set to 500.
04
How do you protect the FADE TO BLACK key?
Answer
Put the fade-to-black action in a duration group of, say, 1,000 ms with Execute while held ticked, so it fires only after a full second's hold.
05
What colour and label would you give each key, using this chapter's colour plan?
Answer
AWARDS in purple as a run-of-show cue; FADE TO BLACK, or FTB HOLD, in orange as a protected key. Neither uses red or green.
06
The AWARDS key must also appear on the run-of-show page. How do you add it without making a second copy to maintain?
Answer
Copy the AWARDS key, right-click the square on the run-of-show page and choose Paste as reference, so both keys are one button.
Field checklist
  • 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.
Chapter 09

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 fromWhat it can showExample
A connection's moduleWhatever the module reads back from the deviceATEM Tally: Program lights the key for the input on air
Companion's internal feedbacksLogic on variables, connection status, button steps, surface pagesVariable: 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.

FeedbacksThe ATEM reports Camera 2 on program, the atem connection tracks it, the Tally: Program feedback is true, its style overrides turn the background red and the text white, and the CAM 2 key turns red.The key turns red because the ATEM said sofeedbackNobody presses anything: the key changes because the gear changed.ATEMCamera 2 goes toprogramCONNECTIONatem module tracksprogram andpreviewFEEDBACKTally: Program,for input 2, istrueOVERRIDESBackground colourred, Text colourwhiteCAM 2the key on the deckBOTH WAYSFeedback only works when theconnection is talking both ways. Noreport, no colour.LOWEST WINSFeedbacks apply top down, so the onelower in the list wins. Put programtally at the bottom.NOT A GUARANTEERed means Companion believes it.Check each feedback once at the ATEMbefore doors.Companion 5.1.2; in 4.x the higher feedback won. ATEM module defaults shown.
The ATEM reports Camera 2 on program, the connection tracks it, the Tally Program feedback applies its overrides, and the key turns red.
Feedback off: every camera key looks the same, so you have to look up to know what is live.
Feedback on: the live camera's key turns red and the preview key green, so the deck tells you what is live.
Stopped: the OPENER key sits grey, showing the clip's full length.
Playing: the same key turns green and counts down the time left.
Almost done: the key turns orange in the last seconds, the moment to ready the next cue.

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 typeHow it restyles the keyExample
BooleanOn or off: while true, its overrides applyTally: Program, Variable: Check value
ValueProduces 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 styleSome older module feedbacks return a whole style; each override copies one of its properties onto an elementA module's own status colour
Generated imageSome modules draw a complete image for the keyA 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 feedbackWhat it checksShow use
Variable: Check valueWhether a variable equals, does not equal, or is above or below a valueShow which presenter is next, or that a cue is armed
Variable: Compare two variablesOne variable against anotherShow when the running clip matches the one you expect
Variable: Check boolean expressionWhether an expression is trueTurn a countdown key orange under one minute
Connection: Check StatusA connection's state, with colours for OK, warning, error and disabledA health key per machine on the utility page
Connection: When matches specified statusWhether a connection is in the state you choseFlash a key if Playback B is in error
Button: Check stepWhether a stepping button is on a given stepColour a two-step key differently on each step
Surface: When on the selected pageWhether a surface is on a given pageShow on the cue deck which page the other deck is on
Logic: OperationCombines conditions with AND, OR or XORLight 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.

The A status key on Companion's BW TRANSPORT page uses Connection: Check Status for pbA; it shows red because Companion cannot reach Playback A.

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.

ColourMeansRule on the deck
RedProgram: live, on air, recordingOnly ever shown by feedback, never as a resting colour
GreenPreview: next, ready, armed and safeOnly ever shown by feedback
Resting colourThe key's family, such as blue for transport or purple for cuesWhat the key looks like when nothing is live
FlashingNeeds attention nowKept 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.

Tally coloursProgram is red with white text and preview green with black text, shown only by feedback; keys rest in their family colour; flashing is kept for faults.Red is on air, green is next — feedback onlytallyCAM 1PROGRAMLive, on air, recordingCAM 2PREVIEWNext, ready, armed and safePB PLAYRESTINGThe key's family colourPB BFLASHINGNeeds attention nowonly ever shown by feedbackRESTING COLOURS IN THE BOOK'S SHOW PLANBLUEPlayback transportPURPLERun-of-show cuesGREYNavigation and utilitiesORANGEProtected or dangerousATEM module defaults for program and preview; the resting colours are yours, but each must mean one thing on every deck.
Program red and preview green shown only by feedback, a resting key in its family colour, a flashing fault key, and the show's resting colour plan.
The CAM 1 WIDE key's Feedbacks tab in Companion, with ATEM Tally: Preview turning the background green and Tally: Program below it turning it red.

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 keyVariableComes 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

KeyShowsBuilt with
CLOCKLocal time, hours and minutesText: $(internal:time_hm)
TO DOORSCountdown to doors at 08:30Expression with timeDiff and secondsToTimestamp, Monospace font
PGMName of the ATEM input on programText: $(atem:pgm1_input)
CLIP LEFTTime left on the opener videoA 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 keyWhy it failsSplit it into
A label, a timer and a clip nameThree things to read in one glance; the timer shrinks to fit and becomes unreadableA cue key with its label, and a separate CLIP LEFT key beside it
Red for live and red for errorTwo meanings for one colourRed for program only; a status icon or flashing orange for faults
Several feedbacks changing the backgroundThe lowest one always wins and the others never showOne background feedback; show other states on the text or a small dot
A long cue name from the deviceThe text shrinks below readable sizeA 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

  1. 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.
  2. On each input key, add the ATEM feedback Tally: Preview, pick the key's input, and check its overrides set the Background to green.
  3. Add Tally: Program below it, so it wins when an input is on both, with overrides for a red Background and white Text.
  4. Set every key's resting Background to a colour that is neither red nor green.
  5. Put each input on preview and then on program at the switcher, and check the matching key changes each time.
  6. Add a Connection: Check Status key for the ATEM, so a dropped connection is visible before a stale tally misleads anyone.

What goes wrong

SymptomLikely causeWhat to do
A tally key shows green while the input is on programThe preview feedback sits below the program feedback, so it winsMove the program feedback to the bottom of the list
Keys stop changing but still show the old tallyThe connection has dropped and feedback shows the last state reportedKeep status icons on and a Connection: Check Status key per machine; check the connection
A QLab time variable stays blankThe QLab connection is not in TCP mode, which its variables and feedbacks requireTick Use TCP? in the connection's configuration
A key's text shows the variable name instead of its valueThe connection label in the variable does not match the connection, or the variable is mistypedCopy the variable from the connection's Variables list
An operator presses the CLOCK key expecting a cueInformation keys look like cue keysGive 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.

Practice it
01
Which keys would you add to show the state of each machine?
Answer
A Connection: Check Status key for Playback A and one for Playback B, plus a cue key for each clip.
02
How would you show which machine is rolling, using tally colours correctly?
Answer
A feedback that turns the clip's key red while it is playing, with a resting colour that is neither red nor green; green only for the clip that is loaded and ready.
03
What would you put on a key to show time left on the news clip, and what must be true for it to work?
Answer
A Text element with the module's remaining-time variable, in Monospace, or a gauge. It works only if the playback module reports remaining time, which must be checked in its Variables list first.
04
Playback B drops off the network during a reset. How does the deck tell you?
Answer
The keys that use Playback B show a red triangle status icon, and its Connection: Check Status key changes to the error colour.
05
The news key now shows a label, a countdown, a gauge and a status colour. What do you change?
Answer
Split it: keep the cue key with its label and play-state colour, and move the countdown and gauge to a separate time key beside it.
Field checklist
  • 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.
Chapter 10

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.

KindWritten asWho sets itExample
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 variableA 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.

Companion's Variables page for the atem connection, filtered to pgm1, showing $(atem:pgm1_input) and its current value.

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.

KeyText on the keyWhat the operator sees
Clock$(internal:time_hm)08:42
ProgramPGM $(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
LightingLX $(eos:cue_active_num)LX followed by the active Eos cue number
Next presenterNEXT $(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.

Variables on keysA variable is written $(source:name); dropped into a key's text, PGM $(atem:pgm1_input) shows PGM and the input on program, and $(internal:time_hm) shows the clock.Write the variable once — the key keeps upvariables$(atem:pgm1_input)sourcenameSource is one of:internal · a connection labelcustom · expression · local · page · thisClock$(internal:time_hm)redrawn on change08:42on the keyProgramPGM $(atem:pgm1_input)redrawn on changePGMinput nameon the keyNext presenterNEXT $(custom:next_speaker)redrawn on changeNEXTlast seton the keyCompanion 5.1.2 Text element in Variables mode. Connection variables exist only if the module provides them.
How a variable is written as source and name, and three keys whose text updates from the clock, the ATEM and a custom variable.
The AWARD key's Style tab in Companion, whose text AWARD\n$(custom:award_no) shows AWARD 1 on the key.

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 variableHoldsSet byUsed for
next_speakerThe name of the next presenterA key per presenter on the run-of-show pageA NEXT key the stage manager can read
award_noWhich award is up, as a numberAWARD + and AWARD - keys using $(this:current) + 1 and - 1Labels and which clip the AWARDS key takes
armedtrue or falseAn ARM keyA safety condition on dangerous keys and triggers
show_moderehearsal or showA key on the utility pageTurning 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.

Companion's Custom Variables page with award_no and show_mode, each with a description, a current value, a startup value and Persist value.

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.

ExpressionResult
$(custom:award_no) + 1The 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.

PartWhat it isExample
EventsWhen the trigger fires; it fires on any of the events listedTime of Day, 08:25
ConditionA filter: the actions run only if every condition is true, using the same feedbacks as buttonsVariable: Check value, show_mode equals show
ActionsWhat happens; any action a button can useButton: Trigger press and release on the WALK-IN key

The events available in Companion 5.1.2, as named in the program, are these.

EventFiresShow use
Time Interval: FixedEvery chosen number of secondsPolling a device or refreshing a value
Time Interval: RandomAt random times between a minimum and maximum number of secondsRarely on shows
Time of DayAt a set time on chosen daysStart the walk-in loop at a set time
Once on Specific Date & TimeOnce, on a date and timeA one-off reminder or a scheduled start
On Sunrise/SunsetAt sunrise or sunset for a latitude and longitude, with an offset in minutesOutdoor and installed systems
StartupWhen Companion starts, after a delay in millisecondsPutting every deck on its home page
Web client connectWhen a web client connects, after a delayRarely on shows
On any button pressWhenever any button is pressedLogging or a keep-awake
On any button releaseWhenever any button is releasedAs above
On condition becoming trueWhen the trigger's condition changes to trueFlash a warning when a connection goes into error
On condition becoming falseWhen the condition changes to falseClearing that warning
On variable changeWhen a chosen variable changesAct when a console reports a scene recall
On computer becoming locked, or unlockedWhen the Companion computer locks or unlocks; macOS and Windows onlyLocking 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.

TriggersThe WALK-IN AUTO trigger: event Time of Day 08:25, condition show_mode equals show, action Button: Trigger press and release on the WALK-IN key; in rehearsal mode nothing happens.A trigger presses the key when the moment comestriggerDoors open at 08:30 at Brightwater Health 2027; the walk-in loop must be on screen first.1 EVENTTime of Day, 08:25 on theshow dayWhen it firesfires2 CONDITIONVariable: Check value —show_mode equals showActions run only if everycondition is truetrue3 ACTIONSButton: Trigger press andrelease on the WALK-IN keyAny action a button can usefalseRehearsal mode: nothing happensA new trigger starts disabledTest actions runs its actions nowCompanion 5.1.2 Triggers tab. A trigger can fire when nobody is watching: build each one with a condition.
The WALK-IN AUTO trigger fires at 08:25, checks that show mode is on, then presses the WALK-IN key; in rehearsal mode nothing happens.
The WALK-IN AUTO trigger in Companion with a Time of Day event at 08:25; the trigger is still switched off, as new triggers are.
The WALK-IN AUTO trigger's Conditions tab in Companion: Variable: Check value, custom:show_mode equal to show.
The WALK-IN AUTO trigger's Actions tab in Companion: Button: Trigger press and release on location 2/0/1, the WALK-IN key, shown as a preview.

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.

RuleWhy
No trigger fires anything that goes to air without a condition you controlA Time of Day trigger does not know the show is running late
Give dangerous triggers a show_mode or armed conditionRehearsals, resets and line checks run at other times
Name every trigger for what it does, and write its purpose in NotesThe next operator has to know it exists
Keep a TRIGGERS OFF key, with a feedback showing the stateOne press stops automation if the show goes wrong
Test with Test actions on safe gear, then disable until neededA trigger is a button nobody presses
Put a Wait inside every While loopWithout one it repeats hundreds of times a second and floods devices
Avoid persisting values you do not needPersist 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

  1. 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.
  2. Build and test the key the trigger will press, such as WALK-IN, on safe gear.
  3. In the Triggers tab, click Add Trigger, name it for what it does, and write its purpose in Notes.
  4. Add the event Time of Day with the time and the show day.
  5. Add the condition Variable: Check value, show_mode equal to show.
  6. Add the action Button: Trigger press and release, pointing at the WALK-IN key.
  7. 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

SymptomLikely causeWhat to do
The walk-in loop rolled during the morning rehearsalA Time of Day trigger had no conditionAdd a show_mode or armed condition, and keep a TRIGGERS OFF key
A key shows the variable as text, not its valueThe connection label or variable name is wrong, or the field is in the wrong modeCopy the variable from the Variables list and check Variables mode against Expression mode
An expression field shows an error with plain words in itText inside an expression is not quotedQuote the text, or switch the field back to Variables mode
A counter goes back to zero after a restartThe custom variable reset to its startup valueTick Persist value, or write the current value to the startup value before closing
Companion slows and a device is flooded with commandsA While loop or a fast interval trigger with no WaitAdd a Wait inside the loop, lengthen the interval, and disable the trigger
A trigger cannot read a page variableTriggers do not belong to a pageUse 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.

Practice it
01
Which custom variable would you make for the awards, and how do the + and - keys change it?
Answer
A number variable award_no, starting at 1. AWARD + uses Custom Variable: Set value with $(this:current) + 1, and AWARD - uses $(this:current) - 1.
02
How would the AWARDS key show and use the current award?
Answer
Its text reads AWARD $(custom:award_no), and its take action uses the clip number from the variable plus 10, as an expression, if the playback module's action accepts an expression in that field. Otherwise one key per award is safer.
03
Build the 10:58 trigger: event, condition and action.
Answer
Event Time of Day at 10:58; condition show_mode equal to show (or armed true); action Button: Trigger press and release on the key that stops the break music.
04
The music is audio's department. What do you do before enabling the trigger?
Answer
Agree it with the audio operator and the show caller, put it on the paperwork, and test it with Test actions while the system is safe.
05
The show is running twenty minutes late. What protects the room?
Answer
The condition: someone sets show_mode or armed off, or presses TRIGGERS OFF, and the music is stopped by hand when the show caller calls it.
Field checklist
  • 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.
Chapter 11

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.

QuestionWhy it shapes the layoutBrightwater Health 2027 answer
Which machines are mine?Only your machines get keys that fireATEM, Playback A, Playback B, PPT computer
Which machines do I only watch?They get information keys or nothingAudio desk and LX desk belong to other operators
Who calls my cues?Decides whether keys follow a caller's numbers or your own judgementThe show caller calls every video cue by number
What repeats all show?Repeated actions become transport keysPlay, pause, stop, next and previous on playback; next and previous slide
What happens once, in order?One-off moments become cue keys, in run orderWalk-in, opener, walk-ups, awards stings, close
What is the backup for each machine?Backups need their own keys, kept apart and protectedPlayback B mirrors A; a key puts B to air
What must never be pressed by accident?Those keys get colour, position and a holdFade 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.

Start from your responsibilitiesWrite down your responsibilities first, then work through the run of show, and only then open Companion; each answer decides a kind of key.Your jobs first, the run second, Companion lastorder1 RESPONSIBILITIESWhich machines are yours, whichmoments you make happen, whichyou only watch2 RUN OF SHOWWhat you press, when, and onwhose call3 OPEN COMPANIONOnly now: lay out the deck forthis showWHAT EACH ANSWER BECOMES ON THE DECKMachines you only watchInformation keys, or nothingWhat repeats all showTransport keysWhat happens once, in orderCue keys, in run orderThe backup for each machineIts own keys, kept apart and protectedNever to be pressed by accidentColour, position and a holdThe same machines on two shows give two layouts, because the jobs are different.
Responsibilities first, the run of show second and Companion last, with what each answer becomes on the deck.

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 responsibilityTransport keysCue keysOne deck or two
Playback on a small conferenceTake, play, pause, stop, previous and next clipA handful of named clipsOne MK.2, transport on the top row
Media server on a concertNext and previous column, clear, wall blackOne key per songTwo: transport on an MK.2, songs on an XL
Slides onlyNext, previous, blackJumps to section startsOne 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.

When you have one job, one small deck is often enough.

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 jobsWhat the layout does about it
Similar keys for different machinesGroup 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 machinesCue keys that fire each machine involved, built and rehearsed in order
Split attentionTally on switcher keys, status keys for every machine, time left on playback
More ways to make a mistakeDangerous keys in one place, in one colour, hold-to-fire
A machine fails mid-showA 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.

With several machines to run, a transport deck and a cue deck keep hands and eyes in two clear places.

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 deckCue deck
HoldsPlay, pause, stop, next, previous, take, back to one, black, and statusEvery cue that is yours, in run-of-show order
Changes during the showNever; every key stays where it is all showPages follow the run
Typical deck15-key Stream Deck MK.232-key Stream Deck XL
Page buttonsNone; it is locked to one pagePage up, page number and page down in the first column
BuiltOnce, and reused from show to showFresh for every show, from the paperwork
Where it sitsUnder the hand you work with, the same place every showBeside 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.

Companion's Surfaces page with two surfaces named TRANSPORT and CUES; CUES starts on page 2 (BW SHOW), Use Last Page At Startup is off, its pages are restricted to BW SHOW and Never pin code lock is on.

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 machineOne key fires several machines
ExamplePPT NEXT sends one key press to the slide computerOPENER takes clip 1 on Playback A and B and cuts the ATEM to Playback A
Fits whenEach machine is called separately, or timing between machines is a judgement callThe paperwork treats the moment as one cue, and the machines must land in a set order every time
StrengthYou control each machine's timing; a failure stays containedOne press, one call, the same result every time
RiskMore presses at a busy moment; easy to forget oneIf one machine fails, the others still go; order and delays must be rehearsed
Must haveClear labels saying which machineNotes 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 devicePages by the run
Organised asOne page per machineOne page per segment of the show
Best forSetup, line checks, troubleshooting, shows with no fixed orderRunning a scripted show with a show caller
BuiltOnce, kept in your library and reusedFresh from each show's run of show
Operator thinksWhich machine do I need?Where are we in the show?
RiskDuring the show you search across pages for the next cueA 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.

Pages by device or by the runDevice pages group keys by machine, ATEM, playback and PowerPoint, for setup and fixing things; run pages group the cues by segment, opening, keynote and awards, for the show.Device pages for setup, run pages for the showpagesBY DEVICEWhich machine do I need?PAGEATEMCAM 1WIDECAM 2LECTERNWINNERCAMFTBholdPAGEPLAYBACKPB TAKEPB PLAYPB STOPPB NEXTCLIPPAGEPOWERPOINTPPT BACKPPT NEXTPPT BLACKBest for: setup, line checks, troubleshootingBY THE RUNWhere are we in the show?PAGEOPENINGWALK-INOPENERDANAWALK-UPDANASLIDESPAGEKEYNOTEMARTINWALK-UPMARTINSLIDESMARTINVIDEO 1BACK TOSLIDESPAGEAWARDSAWARDSOPENWINNERCAMAWARDSCLOSEBest for: a scripted show with a show callerKeys from Brightwater Health 2027. Most shows use both; device pages stay out of the cue deck's permissions during the show.
The same show's keys organised by machine for setup and by segment of the run for the show.
By device: the 32 keys grouped by the machine each one controls.
By the run of the show: the same 32 keys laid out in the order the cues happen.

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 labelMachineAddressModule
atemATEM switcher10.0.0.20Blackmagic Design ATEM
pbAPlayback A, main10.0.0.31PlaybackPro Plus
pbBPlayback B, mirrored backup10.0.0.32PlaybackPro Plus
pptPowerPoint computer10.0.0.40, port 10001VICREO 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.

Companion's BW TRANSPORT page in the top-left three rows of five keys: playback keys in blue, slide keys in a second colour, status keys, B TO AIR hold in orange and CLOCK.
Companion's TRANSPORT emulator, set to 3 rows by 5 keys, showing the BW TRANSPORT page as a 15-key deck would; the status keys are red because the machines cannot be reached.

The transport deck, a 15-key Stream Deck MK.2

RowKey 1Key 2Key 3Key 4Key 5
Row 1, playbackPB TAKEPB PLAYPB PAUSEPB STOPPB LAST 10
Row 2, clips and slidesPB PREV CLIPPB NEXT CLIPPPT BACKPPT NEXTPPT BLACK
Row 3, statusA statusB statusPPT statusB TO AIR, holdCLOCK

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

RowCol 1Col 2Col 3Col 4Col 5Col 6Col 7Col 8
OpenPAGE UPWALK-INVOG, audioOPENERDANA WALK-UPDANA SLIDESCAM 1 WIDEPGM
KeynotePAGE NO.MARTIN WALK-UPMARTIN SLIDESMARTIN VIDEO 1BACK TO SLIDESMARTIN VIDEO 2BACK TO SLIDESCAM 2 LECTERN
AwardsPAGE DOWNAWARDS OPENAWARD $(custom:award_no)AWARD +AWARD -WINNER CAMAWARDS CLOSEspare
Panel and closeCLOCKPANEL WALK-UPPANEL WIDECLOSE VIDEOWALK-OUTsparespareFTB, 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 keyFiresMachines
WALK-INLoads and takes the walk-in loop on A and B, then cuts the ATEM to input 3pbA, pbB, atem
VOG, audioNothing; an information key in grey so you can see where the show isNone
OPENERTakes clip 1 on A and B, waits 200 ms, cuts the ATEM to input 3pbA, pbB, atem
DANA WALK-UPTakes the walk-up sting on A and B and cuts to input 3pbA, pbB, atem
DANA SLIDESCuts the ATEM to input 5atem
MARTIN VIDEO 1 and 2Takes the clip on A and B and cuts to input 3pbA, pbB, atem
BACK TO SLIDESCuts the ATEM to input 5, then stops playback on A and Batem, pbA, pbB
AWARD $(custom:award_no)Takes the sting for the current award and cuts to input 3pbA, pbB, atem
AWARD + and AWARD -Change the custom variable award_no by oneinternal
CAM 1 WIDE, CAM 2 LECTERN, WINNER CAMCut the ATEM to that camera, with program and preview tally on the keyatem
PGM and CLOCKShow $(atem:pgm1_input) and $(internal:time_hm); no actionsNone
FTB, holdFade to black on the ATEM, inside a 1,000 ms Execute while held groupatem

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.

The two-deck rigBrightwater Health 2027: a 15-key MK.2 transport deck and a 32-key XL cue deck on page BW SHOW, key by key as the book lays them out.Transport never moves — the cues follow the runBW SHOWPB TAKEPB PLAYPB PAUSEPB STOPPB LAST10PB PREVCLIPPB NEXTCLIPPPT BACKPPT NEXTPPT BLACKA statusB statusPPTstatusB TO AIRholdCLOCKPAGE UPWALK-INVOG,audioOPENERDANAWALK-UPDANASLIDESCAM 1WIDEPGMPAGE NO.MARTINWALK-UPMARTINSLIDESMARTINVIDEO 1BACK TOSLIDESMARTINVIDEO 2BACK TOSLIDESCAM 2LECTERNPAGE DOWNAWARDSOPENAWARD$(custom:award_no)AWARD +AWARD -WINNERCAMAWARDSCLOSEspareCLOCKPANELWALK-UPPANELWIDECLOSEVIDEOWALK-OUTsparespareFTBholdTRANSPORT · 15-key MK.2CUES · 32-key XL · page BW SHOWPlayback, fires A and BSlidesStatus, info, pagesCues, in run orderCameras, with ATEM tallyHold for 1 secondBrightwater Health 2027 layout, Companion 5.1.2. Every row of the cue deck is one segment, read left to right.
The Brightwater Health 2027 transport deck on a 15-key MK.2 and cue deck on a 32-key XL, key by key, coloured by family.

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.

Companion's LT TRANSPORT page with column, tempo and wall keys; the RESOLUME status key is green because Resolume is answering.

The transport deck, a 15-key Stream Deck MK.2

RowKey 1Key 2Key 3Key 4Key 5
Row 1, columnsPREV COLNEXT COLTAP TEMPORESYNCTIME LEFT
Row 2, wallWALL UPWALL 50WALL BLACK, holdCLEAR ALL, holdCLIP NAME
Row 3, statusRESOLUME statusCLOCKTO DOORSsparespare

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

RowCol 1Col 2Col 3Col 4Col 5Col 6Col 7Col 8
Pre-showPAGE UPWALK-INHOUSE LOOKBAND LOGOINTRO, TCsparesparespare
Songs 1 to 7PAGE NO.1 SALT, TC2 UNDERTOW, TC3 LIGHTHOUSE4 GREY HARBOUR, TC5 RIPTIDE, TC6 SLACK WATER7 NEAP, TC
Songs 8 to 14PAGE DOWN8 SANDBAR, TC9 BREAKWATER, TC10 LOW TIDE, TC11 DRIFT12 SPRING TIDE, TC13 SHORELINE, TC14 HIGH WATER, TC
Encore and outCLOCKENCORE 1, TCENCORE 2THANK YOUWALK-OUTsparespareSAFE 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.

Companion's LT SET page for The Low Tides, with the 1 SALT, TC key open: its action is the Resolume module's Connect Column, set to column 5.

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

RowKey 1Key 2Key 3Key 4Key 5
Row 1, A, wall TVA ROLLA PAUSEA BACK TO ONEA STEP FWDA LOOP
Row 2, B, laptopB ROLLB PAUSEB BACK TO ONEB STEP FWDB LOOP
Row 3, bothROLL BOTHBACK TO ONE BOTHA statusB statusDECK 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

RowCol 1Col 2Col 3Col 4Col 5Col 6Col 7Col 8
Wall TV, APAGE UPNEWS LOOPNEWS HERONEWS END CARDTV OFF LOOKsparespareA TIME LEFT
Laptop, BPAGE NO.LAPTOP DESKTOPLAPTOP EMAILLAPTOP BLANKsparesparespareB TIME LEFT
NotesPAGE DOWNSCENE 14TAKE $(custom:take_no)TAKE +sparesparesparespare
UtilityCLOCKsparesparesparesparesparespareSTOP 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 labelMachineModule and what its Help says
cl5Yamaha CL5, 10.0.0.50Yamaha 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
qlabQLab, 10.0.0.51QLab: Go, Stop, Panic, Pause, Resume, Next, Previous, Start (Cue/ID); variables and feedback need TCP mode
An audio tech's deck: mic mutes, scenes and walk-in music.

The transport deck, a 15-key Stream Deck MK.2

RowKey 1Key 2Key 3Key 4Key 5
Row 1, QLabQ GOQ PAUSEQ RESUMEQ STOPQ PANIC, hold
Row 2, QLabQ PREVQ NEXTNEXT CUE NAMERUNNING CUETIME LEFT
Row 3, statusCL5 statusQLAB statusCLOCKsparespare

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

RowCol 1Col 2Col 3Col 4Col 5Col 6Col 7Col 8
OpenPAGE UPWALK-IN MUSICMUSIC FADEVOG MICOPENER AUDIODANA HSSCENE OPEN, holdspare
KeynotePAGE NO.MARTIN LECTVIDEO PB CHSCENE KEYNOTE, holdsparesparesparespare
AwardsPAGE DOWNAWARDS STINGWALK-UP MUSICHH 1HH 2SCENE AWARDS, holdsparespare
PanelCLOCKPANEL 1PANEL 2PANEL 3PANEL 4PANEL 5SCENE PANEL, holdWALK-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.

A lighting tech's deck: house lights, looks and go buttons.

The transport deck, a 15-key Stream Deck MK.2

RowKey 1Key 2Key 3Key 4Key 5
Row 1, cue listLX GOLX STOP/BACKLIVE CUEPENDING CUEBLACKOUT, hold
Row 2, house and stageHOUSE FULLHOUSE HALFHOUSE OUTSTAGE WASHWORKLIGHT
Row 3, statusEOS statusCOMMAND LINECLOCKsparespare

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

RowCol 1Col 2Col 3Col 4Col 5Col 6Col 7Col 8
OpenPAGE UPQ1 WALK-INQ2 PRESHOWQ3 VOGQ4 OPENERQ5 DANAsparespare
KeynotePAGE NO.Q10 MARTINQ11 VIDEOQ12 BACKsparesparesparespare
AwardsPAGE DOWNQ20 AWARDSQ21 WINNERQ22 STAGEAUDIENCE SUBsparesparespare
Panel and closeCLOCKQ30 PANELQ31 CLOSEQ32 WALK-OUTsparesparesparespare

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 showWhy
Every key's actions written in its NotesAnyone covering for you can read what a key does
Each surface named, with its startup page and page permissions setA restart puts each deck back where it belongs
Every cue key pressed in rehearsal, on gear that is safe to moveNever test new buttons live
Every machine still controllable by handIf Companion stops, the show carries on from each machine's own controls
A spare deck, and an export of the configurationA failed deck or computer is a swap, not a rebuild
Late changes made by moving keys, then rehearsedA 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

  1. List your responsibilities: the machines that are yours, the ones you only watch, who calls your cues, and the backup for each machine.
  2. From the run of show, list every moment you must make happen, in order, and mark which machines each one touches.
  3. Sort the controls you use again and again into transport, and the one-off moments into cues.
  4. 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.
  5. 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.
  6. Name the surfaces, set startup pages and page permissions, and set the show's colours, with red and green kept for tally.
  7. Print the key maps, rehearse every key on safe gear, and give a copy to the show caller.

What goes wrong

SymptomLikely causeWhat to do
The operator hunts for PLAY during a busy segmentTransport keys moved between pages or between showsKeep 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 showIts page permissions include device pagesLimit the cue deck to the show pages under Page Permissions
A cue key fires the wrong clip after a running-order changeThe key was relabelled in place but kept its old actionsMove keys to the new order instead of relabelling, then rehearse
A video operator's deck fades the walk-in musicAnother department's cue was programmed onto the wrong deckGive other departments' moments information keys only, unless they are your responsibility
Playback B is behind A when it is cut to airTransport keys fire only Playback AMake every transport key fire both mirrored machines together
A mic is unmuted by the deck after the A1 muted it on the consoleA stepping mic key counted presses rather than following the consoleUse 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.

Practice it
01
What changes in your list of responsibilities, and how does it change the deck?
Answer
You now have many responsibilities. Keys must say which machine they touch, the ATEM keys need tally, and each machine needs a status key.
02
What goes on the transport deck now?
Answer
The media server transport as before, with an ATEM row such as CUT, AUTO and camera keys for IMAG, plus status keys for both connections.
03
How would you lay out the cue deck, and by device or by the run?
Answer
By the run: the set list in order on the XL, one key per song with TC marked, plus a block of IMAG camera keys with tally in a fixed place on every page, using button references.
04
The director wants one key to start 3 LIGHTHOUSE and put the drummer's camera on the side screens. One key or two?
Answer
Either works, however you program it. One key suits a moment the director treats as one cue; two keys suit it if the camera timing is a judgement call. Keep the separate camera key in reach either way.
05
Which keys are protected, and how?
Answer
WALL BLACK, CLEAR ALL and SAFE LOOK on Resolume and fade to black on the ATEM: orange, in fixed places, inside an Execute while held duration group.
06
The band drops 6 SLACK WATER at soundcheck. What do you do?
Answer
Move the remaining song keys into the new order rather than relabelling, take the dropped song off the page, and walk the new order with the director before doors.
Field checklist
  • 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.
Chapter 12

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

Video Switcher
Video Switcher

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.

IdeaWhat it meansWords you will see
ProgramWhat is live on the output nowPGM, program, on air
PreviewWhat is lined up nextPVW, preview
CutInstant change from preview to programCut, Cut Active
TransitionA timed change such as a dissolveAuto, Take, Trans
KeyA layer over the picture, such as a lower third or logoUpstream key, downstream key, DSK, layer
AuxAn extra output with its own source, such as a confidence monitorAux, AUX destination, output
Memory or presetA stored look recalled with one commandMacro, 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.

Companion, the switcher and its own panelCompanion at 10.0.0.10 sends button actions to the ATEM at 10.0.0.20 through its module; the switcher's own panel stays beside it as the way back; tally comes back to the keys, red for program and green for preview.Commands go out — tally comes backswitchersCOMPANION 10.0.0.10Your keys. The connection'smodule turns each actioninto the switcher's ownprotocol.ATEM 10.0.0.20Puts one source on programand lines up the next onpreview.THE SWITCHER'S OWN PANELHardware panel or software,always within reach: theway back if Companionfails.commandtallyoperatorTALLY ON THE DECK, BY THE USUAL CONVENTIONCAM 1CAM 2PB ARed: the source is on program.Green: the source is on preview.A key shows what the switcher reported last; the program monitoris the final word.Brightwater Health 2027 IP plan, subnet 255.255.255.0. Tally feedback names vary by module.
Companion sends commands to the ATEM through its module, the switcher's own panel stays within reach, and tally comes back to the keys, red for program and green for preview.
A Blackmagic Design ATEM 1 M/E Constellation HD: rack-mounted, no panel of its own, so on many shows the Stream Deck is its panel.
A Blackmagic Design ATEM Television Studio HD8 with its built-in control panel; Companion reaches it over the network with the ATEM module.
Cut, preview and transition from a deck beside, or instead of, the switcher panel.

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

GroupActions in the ATEM moduleTypical button
BusesME: Set Program input, ME: Set Preview input, Aux/Output: Set sourceCAM 2 to preview; PPT to the confidence aux
TransitionsME: Perform CUT transition, ME: Perform AUTO transition, change transition type and rateCUT, AUTO, MIX 1 sec
KeysSet upstream and downstream key inputs and on-air, auto DSK transitionLower third on and off
Fade to blackSet fade to black rate, execute fade to or from blackFTB at the end of the session
MacrosRun MACRO, Continue MACRO, Stop MACROSWALK-IN look in one press
OtherSuperSource boxes, media player source, multiviewer window source, Mini-pro recording and streaming, audio inputsPanel 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.

vMix running on a production computer, with its preview, program and input thumbnails; Companion controls it over the network.

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 wantEventMaster module actionNotes
Recall a stored lookRecall Preset, to Preview or ProgramThe most used action on a show
Step through the showRecall Next PresetRecalls the next available preset
Take what is on previewCut Active, Take/Trans ActiveCut is instant; Take uses the transition
Run a sequence stored on the framePlay Cue, Stop Cue, Pause CueCues are built in Event Master Toolset
Freeze a pictureFreeze Source, Freeze Screen Destination, Freeze Aux Destination, Freeze LayerOn PDS-4K use layer freeze
Choose which screens a take affectsArm/Unarm DestinationUnarmed screens are left alone
Show a test patternChange Screen Content, Change AUX ContentUseful 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.

A Barco E2 frame above its EC-200 event controller: the controller's preset keys do by hand what Companion's Recall Preset buttons do.
The Barco E2: one frame drives the LED wall, side screens and confidence monitors as separate screen destinations.
Large screen-management systems get preset buttons, never improvised ones.

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.

ModuleDevicesTalks back?When it fits
Analog Way AWJLivePremier, Alta 4K, Midra 4KYes; feedbacks, variables and source tallyMost shows; you want keys that show state
Analog Way LivePremier (REST API)LivePremier seriesNo; it sends commands and does not read stateSimple 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.

An Analog Way Aquilon RS4, one of the LivePremier presentation switchers Companion can recall presets on.

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.

SwitcherTally feedbacks in the module
ATEMTally: Program, Tally: Preview, Tally: Advanced
vMixTally - Program state, Tally - Preview state, Tally - Overlay state
Barco E2 and S3Source 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 switcherWhy
The main program cut and fade to blackThe switcher operator must be able to take or kill the picture without Companion
Setup, video mode, reset and format changesThey interrupt the output; a stray press would black the screens
Saving and loading the show fileA load from a deck can wipe a look the director spent hours building
Building looks, presets and macrosCompanion 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.

What goes on the deck and what stays on the panelRepeated, awkward or someone else's moves go on the deck; the main cut, fade to black, setup, show files and building looks stay on the switcher.The deck adds keys — the panel keeps the showthe panelON THE DECK•Moves that are repeated or awkward•Moves that belong to someone else: the openervideo to the screens•The walk-in look on a single key•One press to set three screens at once•Recalling the looks, presets and macros built onthe switcherON THE SWITCHER'S OWN PANEL•The main program cut and fade to black•Setup, video mode, reset and format changes:they interrupt the output•Saving and loading the show file•Building looks, presets and macrosAGREE WHO PRESSES WHAT, BEFORE THE SHOWTwo people able to cut the same bus without a plan is how a camera ends up live in the middle of a video.Plan the deck so the switcher operator can always take or kill the picture without Companion.
Repeated, awkward or someone else's moves go on the deck, while the main cut, fade to black, setup, show files and building looks stay on the switcher.

How to do it

  1. 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.
  2. Check the switcher's own software can reach it from the network, such as ATEM Software Control, Event Master Toolset or WebRCS.
  3. 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.
  4. 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.
  5. Add tally feedbacks so each source key shows red on program and green on preview, and confirm the colours match the multiviewer.
  6. 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.
  7. 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

SymptomLikely causeWhat to do
The ATEM appears in the discovery list but will not connectThe Companion computer is on a different address range or subnetPut 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 runningThe macro has zero length, so Companion cannot see it runAdd a one-frame pause to the macro on the switcher
The same Take key transitions a different screen on an Analog Way deviceCompanion and WebRCS each keep their own selectionTurn on selection sync in both, or build keys with direct commands that name the screen
The Barco connection is green but no button does anythingA green status only means the frame answered a pingCheck the JSON API is reachable, the authentication settings are right and you are not on the simple simulator
vMix slows down when Companion connectsThe API polling interval is too short for the number of inputsRaise the polling interval in the vMix connection settings
Tally keys stay red after a camera has left programThe connection has dropped, or live updates are off and polling is slowCheck 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.

Practice it
01
Which ATEM actions would you put on the opener key, and in what order?
Answer
ME: Set Preview input to the Playback A input, then ME: Perform CUT transition or ME: Perform AUTO transition; or one ME: Set Program input if the director prefers a hard cut with no preview step.
02
How would the key show you that the opener is live?
Answer
A Tally: Program feedback on the Playback A input turns the key red while that input is on program.
03
Your ATEM connection stays red at lineup. What is your first check?
Answer
Open ATEM Software Control on the Companion computer; if it cannot connect either, check the computer's address is on 10.0.0.x with 255.255.255.0.
04
Which move stays on the technical director's panel, and why?
Answer
The main cut back to cameras and fade to black, so she can take the picture away from playback at any moment without Companion.
05
What do you agree with the technical director before doors?
Answer
The cue word for the take, who cuts back to cameras afterwards, and that nobody else touches the program bus during the opener.
Field checklist
  • 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.
Chapter 13

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

Media Server
Media Server

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.

ServerWhat must be switched onCompanion modulePort named in the docs
Resolume ArenaOSC in Preferences, OSC tab; the webserver for the REST APIResolume ArenaOSC 7000, REST 8080 (defaults)
DisguiseAn OSC device and an EventTransportOSC transport, engagedDisguise OSCSet in the device and module
Watchout 6The production computer or display cluster running and on the networkDataton Watchout3040 production, 3039 display cluster
Watchout 7The Director with its HTTP APIDataton Watchout 7 (JSON)HTTP 3019
MilluminOSC in Interactions, Manage devices, OSC tabMillumin5000 (default)
PixeraAn API port added in Pixera's settings, JSON/TCPAV Stumpfl PixeraChosen 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.

ButtonModule action or preset
Song lookConnect Column
Next and previous lookComposition Next Column, Composition Previous Column
One clip on one layerTrigger Clip, or Connect Clip (Play) over OSC
Kill a layer or everythingClear Layer, Clear All Layers
Fade the whole outputComposition Opacity Change, or Master 0% and 100% presets
Tempo for beat-synced effectsTap Tempo, Resync Tempo
Countdown on the keyClip Name + Remaining, Progress Bar presets (OSC listener)
Firing layers and cues on a media server for an LED wall.
Companion's Connections page for The Low Tides with the resolume connection showing a green tick, because Resolume Arena is running and its webserver is answering.
The resolume connection's settings in Companion: host 127.0.0.1 (Resolume on the same computer), OSC port 7000, WebAPI port 8080 and Use Rest switched on.
Companion's Variables page for the resolume connection, with $(resolume:connectedColumn) reading 5 after a key on the LT SET page triggered column 5 in Resolume.
Resolume Arena's main window with the demo composition: layers as rows, clips in columns, and Column 5 playing after Companion triggered it.
The clip grid at the top of Resolume Arena, with three layers, nine columns and Column 5 highlighted as the live column.

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.

GroupWhat the Disguise OSC module offers
TransportPlay, Play to end of section, Loop section, Stop, Previous Section, Next Section, Return to start, Previous track, Next track
CuesCue, with one to three number parts such as 1.2.5, and Float Cue
MasterFade up, Fade down, Hold, master brightness and volume up and down
VariablesCurrent 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.

A disguise VX 4+ media server; Companion triggers its transport over OSC once the operator has set it up in the project.

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.

An AV Stumpfl PIXERA four media server; Companion talks to it through the API port added in Pixera's settings.

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 showWhere Companion helps
Seeing where you areTimecode position, section name and time remaining on keys, from modules such as Disguise OSC and Pixera
Rehearsal and line-upJump to a song or cue by name so the band can run a section again
Songs that are not on timecodeA key per look for the acoustic number or the encore that is called live
Getting out of troubleAn 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.

Buttons and timecode on a media server showOn The Low Tides each song's playback session sends timecode to the media server and the lighting desk; Companion keys are split into display keys, timeline keys and the safe look.On a timecoded show the clock fires the lookstimecodeSONG'S PLAYBACK SESSIONThe band plays to a clicktrack; the session sendstimecode.MEDIA SERVER TIMELINELIGHTING DESKtimecodeThe looks move on the beatbecause they follow the sameclock as the music.Pressing play or jump while theserver chases timecode can fightthe clock.SHOW INFORMATION ONLYTimecode position, section nameand time remaining on the key.Anyone may press.MOVE THE TIMELINE OR A LOOKJump to a song for a rehearsalrun; a key per look for a songcalled live.The media server operator, or ontheir call.THE SAFE LOOKAn agreed hold, fade or safe lookif timecode drops.Where the operator finds it withoutlooking; agreed before the firstsong.The Low Tides. How a timeline follows timecode depends on its set-up: ask the programmer first.
On a timecoded show the clock fires the looks, and Companion's keys split into display keys, timeline keys for the operator and an agreed safe look.

How to do it

  1. Ask the media server operator which actions you may trigger and from which transport, timeline or layer.
  2. 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.
  3. 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.
  4. 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.
  5. Build a test key for one harmless action, such as a column or cue name on the key, and confirm it reads correctly.
  6. Build the show keys in the order of the set or the running order, with names matching the server's cue names.
  7. 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

SymptomLikely causeWhat to do
Resolume shows OK in Companion but nothing triggersOnly the OSC port is set, so the status cannot tell whether Resolume is listening, and OSC is off in Resolume's PreferencesTurn on OSC in Resolume and add the REST API port so the status means something
Disguise ignores every OSC commandThe OSC transport is still disengagedClick disengaged in the transport window so it flashes green
A Watchout 7 input key does nothingThe variable's Key field is empty in WatchoutSet the Key on the variable; the API matches the Key, not the Name
A Watchout 6 Load Show key fails on the clusterThe full path was given, or the name has non-ASCII charactersUse only the show name on a display cluster, in plain ASCII
Pixera will not connectNo API port is set in Pixera, or the module's port does not match itAdd 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 bandThe server was chasing timecode and the key fought the clockAgree 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.

Practice it
01
What two things must be switched on in Resolume for full control and feedback?
Answer
OSC in the OSC tab of Preferences, and the webserver for the REST API; add OSC Output to Companion for the listener variables.
02
Which module action builds the song keys?
Answer
Connect Column, one key per song column, named with the song title.
03
How would you show time remaining on the current clip?
Answer
Enable the module's OSC listener and use the Clip Name + Remaining or Progress Bar preset for the layer.
04
Which keys does the operator press during songs 1 to 9?
Answer
Normally none that move the timeline; timecode runs those songs, and the keys show information unless the operator calls a change.
05
What would you put on the safe look key?
Answer
An agreed look, such as a column with the band logo or Master 0%, tested in rehearsal so everyone knows what the wall will do.
06
The status shows OK but no key works. What do you check?
Answer
Whether OSC is on in Resolume and the port matches; then add the REST port so the status reports a dead connection.
Field checklist
  • 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.
Chapter 14

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.

SoftwareWhat must be switched onPort named in the docs or module
QLabOSC access for the workspace, with a passcode in QLab 553000
PlaybackPro PlusNetwork control in PlaybackPro; the module offers TCP or UDPTCP 4647 in the module
ProPresenterEnable Network, and for the older module ProPresenter Remote with a controller passwordShown in ProPresenter's network settings
VLCThe Web interface, with a Lua password, then restart VLC8080
MittiOSC/UDP Controls set to EnableFeedback to Companion on 51001
HyperDeckRemote control enabled on the deck9993, 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.

ActionWhat it does, from the module help
GoTells the current cue list to GO
StopStops playback but lets effects, such as reverb, decay naturally
PanicA brief fade out into a hard stop; a double panic stops immediately
Pause, ResumePauses or resumes all running cues in the workspace
Next, PreviousMoves the selection to the next or previous cue
ResetStops 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 GoSets the double-GO protection time
Show ModeSwitches 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.

Two playback machines, A and B, run from one transport deck.

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.

KeyPlaybackPro Plus module action
Load the next clipNext Clip (Preview), Load clip (id) into Preview
GoTake clip to Program
Load and go in one pressLoad clip (id) and Take to Program
Pause and playPause/Resume (Program), Play from current location (Program)
KillStop Program playback (Kill)
Check the endGoto last 10, 20 or 30 seconds
Fine movesStep Backward, Step Forward, Fast Reverse, Fast Forward
SaveSave 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 Blackmagic HyperDeck Studio 4K Pro: a recorder that also plays back clips, and a common playback machine on shows.

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.

RuleWhy
Same files, same names, same order on both machinesA cue number or clip ID must mean the same clip on A and B
Same software version and settingsFades, loops and end behaviour must match
One key, both machines, for every transport commandTwo presses drift apart; one press keeps them together
Feedback from each machine on its own keyYou must be able to see that B is playing, not just A
Separate switcher inputs, both on the multiviewerThe switcher operator can see B before cutting to it
A spare key per machineTo 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.

A and B playback machinesOne PLAY key carries a play action for Playback A at 10.0.0.31 and for Playback B at 10.0.0.32; both feed separate switcher inputs, and each machine reports its own state back to its own key.One press keeps A and B at the same pointA and BPLAYone key, two actions:play on A, play on BPLAYBACK A 10.0.0.31The main. Same files, namesand order as B.PLAYBACK B 10.0.0.32The backup, started together,always at the same point.VIDEO SWITCHERSeparate inputs, both on themultiviewer, so B can be seenbefore the cut.On the agreed call, "Go to B", itcuts to B.FEEDBACKA key per machine shows its own state and time left; re-cue keys per machine for recovery.Brightwater Health 2027. Both machines need the same software version and settings.
One PLAY key sends play to Playback A at 10.0.0.31 and Playback B at 10.0.0.32, both feed the switcher on separate inputs, and each reports its own state back.

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.

RowKey 1Key 2Key 3Key 4Key 5
TopA state and time leftB state and time leftCue loaded, nameNext cue, namePage or spare
MiddlePREVIOUS (A and B)PLAY or GO (A and B)PAUSE (A and B)NEXT (A and B)LAST 10 SECONDS (A and B)
BottomRE-CUE A onlyRE-CUE B onlyBlankBlankSTOP 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.

The transport deck for an A and B rigA 15-key deck in three rows of five: information on the top row, the transport for A and B in the middle, re-cue keys per machine and STOP alone in the bottom right corner.Play under the hand, stop alone in a cornertransportTOPA state and timeleftB state and timeleftCue loaded, nameNext cue, namePage or spareMIDDLEPREVIOUS(A and B)PLAY or GO(A and B)PAUSE (A and B)NEXT (A and B)LAST 10 SECONDS(A and B)BOTTOMRE-CUE A onlyRE-CUE B onlyblankblankSTOP or KILL(A and B)TOP ROWShows information only; safeto press.MIDDLE ROWThe show itself; play foundwithout looking.RE-CUEOne machine each, forrecovery.STOPAlone, blanks beside it, astrong colour.15-key Stream Deck, PlaybackPro Plus on A and B, as the book lays it out. The transport deck never changes.
A 15-key transport deck for an A and B rig, with information on top, the transport in the middle, and stop alone in the bottom corner.

How to do it

  1. Copy the same files into the same folder structure on both machines, build identical cue lists or playlists, and check versions and settings match.
  2. 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.
  3. Add two connections in Companion, named clearly as Playback A and Playback B, and confirm both show a green status.
  4. 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.
  5. Build separate re-cue keys for each machine for recovery, and put stop in a corner away from play.
  6. Play every clip on both machines, watch both on the multiviewer, and confirm they start and end together.
  7. Agree with the technical director the call to switch to B and who makes it, and rehearse it once before doors.

What goes wrong

SymptomLikely causeWhat to do
Companion cannot connect to QLab 5The OSC passcode is missing or wrongCopy 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 timesUse TCP? is not ticked in the connectionTick Use TCP?; variables and feedback only work over TCP
B is a few frames behind A every timeA and B are started with separate presses or separate keysPut both play actions on one key so one press starts both
The opener key plays the wrong clip in VLCThe Play ID is not in the playlist, so VLC played the current itemCheck the playlist numbers and keep the playlist identical on both machines
Companion cannot reach a HyperDeckAn older model accepts only one controller and the ATEM already has itDisconnect the other controller, or plan which one controls the deck
A double press fires two QLab cues in a rowNo double-GO protection is setUse 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.

Practice it
01
How do you build the PLAY key so A and B start together?
Answer
One key with two Go actions, one on the Playback A connection and one on the Playback B connection, so a single press starts both.
02
How does the deck show you that B is running and in step?
Answer
A key per machine with feedback for its running state and a variable for the running cue's time remaining; the two times should match.
03
Where does STOP go on the transport deck, and why?
Answer
In a corner with blank keys beside it and a strong colour, so it is only ever pressed on purpose.
04
Playback A freezes 40 seconds into the opener. What happens?
Answer
On the agreed call, the technical director cuts the switcher to the Playback B input; B is at the same point, so the opener continues.
05
Which QLab action should never be on the live transport page?
Answer
Reset, because it stops every cue and returns the playhead to the top of the list.
06
How would you lay out the five award stings?
Answer
On the cue deck, one key per sting named for the award, each starting that cue on both machines, in running-order order.
Field checklist
  • 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.
Chapter 15

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.

RouteHow it worksWhen it fits
Key pressesA small listener program on the PPT machine receives commands from Companion over the network and presses keys as if someone typed themAny slide software, any version; quick to set up; the most common route
A PowerPoint add-inAn add-in installed inside PowerPoint listens on the network and moves the slideshow directly, often reporting the slide number backWindows shows where you want slide-number feedback and go-to-slide commands without relying on keyboard focus
A presentation managerA separate program such as PresentationTools APS opens, runs and switches decks, and Companion talks to that programConferences 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.

ListenerCompanion modulePort it listens onWhat it can do
VICREO Listener (Windows, macOS, Linux beta)VICREO Listener (vicreo-hotkey)TCP port 10001 unless changedSingle 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 ListenerPort 12001 by default, password protectedKey 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.

Slides advanced from the deck, with a backup machine mirrored beside it.
The ppt connection in Companion, using the VICREO Listener module with Target IP 10.0.0.40 and port 10001.

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.

ButtonKey PowerPoint expectsNotes
Start show from slide 1F5Use with care: it restarts the deck
Start from current slideShift+F5The safer start once a deck is parked on its first slide
NextRight Arrow, Page Down, Space, N or EnterAdvances the next animation, not always the next slide
PreviousLeft Arrow, Page Up, P or BackspaceSteps back one animation or slide
Go to slideThe slide number, then EnterTwo key presses on one button, with a short delay between
Black screenB or full stopPress again to return
White screenW or commaRarely wanted on a show
End showEscDrops 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 PPT NEXT key in Companion's button editor sends a single key, n, to the PowerPoint computer through the ppt connection.

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.

Key presses from Companion and the focus trapCompanion at 10.0.0.10 sends a command to a listener on the PPT machine at 10.0.0.40, which presses the key in the desktop session; the press goes to whichever window is in front.A key press goes to whichever window is in frontfocus trapCOMPANION 10.0.0.10A Next key sends RightArrow.LISTENER ON THE PPT MACHINE10.0.0.40. Presses the key inthe logged-in desktop session.VICREO 10001Bitfocus 12001POWERPOINT IN FRONTThe slide moves on.A POP-UP IN FRONTAn update notice or chatmessage takes the press;the slide stays.BEFORE DOORSNotifications off, updates paused, sleep off, otherapplications closed.SEND IT TO THE APP BY NAMEOn macOS both listeners can bring PowerPoint to thefront before the key. VICREO does it on Windows with alicence.Key presses are blind: Companion cannot see whether the slide moved. Ports are the listeners' defaults.
A listener on the PPT machine at 10.0.0.40 presses the key Companion sends, and the press goes to whichever window is in front.

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.

ModuleWhat runs on the PPT machineWhat the help page lists
PowerPoint Remote VSTO WebSocketA PowerPoint add-in for Windows, installed from the developer's release pageStart 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 ControlThe Irisdown add-in for PowerPointOpen and close a presentation, run, run from current, stop, next, previous, go to a numbered slide or section
OSCPointA free add-in for PowerPoint 2016 or later on WindowsControl by OSC, with feedback on the current slide and build, notes text and media state
PresentationTools APSAPS, a presentation manager for Mac and Windows, port 31600 by defaultOpen 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.

ArrangementWho advancesWhere it fits
Presenter drivesThe presenter clicks; the operator only steps in when asked or when a slide is plainly stuckConfident speakers, simple decks
Operator drivesThe operator advances from Companion on the presenter's cue words; the presenter has no clicker or a dummy oneScripted segments, awards, anything timed to music or video
Presenter drives, operator protectsThe presenter clicks; the operator watches the slide number and corrects with Previous or go-to-slideLong 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.

Main and backup presentation computersOne Next key carries a Next action for the main and for the backup PPT machine; both feed the switcher, and a slide number feedback on each shows whether they agree.The backup only helps on the same slidemain and backupNEXTone key, two actions:main and backupMAIN PPT MACHINEBACKUP PPT MACHINE12 of 4012 of 40slide numberslide numberVIDEO SWITCHERBoth outputs come in. If the maincrashes, freezes or shows a dialogbox, the video operator cuts to thebackup.ONE BUTTON, TWO ACTIONSA listener connection to each; watch both connection statuses.DUAL-OUTPUT RECEIVERTwo USB ports feed both; a missed press is missed by both.PRESENTATION MANAGERAPS on each machine; each needs its own connection, same deck.Same deck file on both, copied from one source. A go-to-slide key to both brings them back together.
One Next key steps the main and the backup PPT machine together, and a slide-number feedback on each shows whether they agree before the switch.

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

  1. 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.
  2. Prepare both machines: notifications off, automatic updates paused, sleep and screen saver off, unrelated applications closed, power adapters plugged in.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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

SymptomLikely causeWhat 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.

Practice it
01
Which listener and connections would you set up, and at which addresses?
Answer
The same listener, for example VICREO Listener, on both machines; one Companion connection to the main at 10.0.0.40 and one to the backup at another address on the same subnet, such as 10.0.0.41, both on port 10001 unless changed.
02
How do you stop Martin's clicker and your Companion buttons from double-advancing during his keynote?
Answer
Agree in rehearsal that Martin drives and you only step in when he asks or when the slide is plainly stuck; plug his clicker's receiver in so it reaches both machines, and keep your hands off Next unless that agreement is triggered.
03
Slide 7 of the keynote has three builds. What do you write on your script, and why?
Answer
Four presses for slide 7 to reach slide 8, written beside the cue, because each Next press reveals one build before the slide moves.
04
During the awards the backup is one slide behind the main. What do you do, and when?
Answer
Wait for the next safe moment, before the next award is announced, and press the go-to-slide button that sends the correct number and Enter to both machines; then check both outputs on the multiviewer.
05
Name two keys that should not sit on your cue deck beside Next, and say why.
Answer
Esc, which ends the slideshow, and F5, which restarts it from slide 1; one stray press of either drops the deck in front of the audience.
Field checklist
  • 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.
Chapter 16

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.

UseExample on Brightwater Health 2027Usually who presses
Mute and unmute channels or groupsPanel of five muted as a group between sessionsThe A1, or an A2 on a side deck
Recall scenesScene for the general session, another for the panel, another for awardsThe A1
Show channel state on a keyA key per presenter mic, red when muted, showing the fader levelAnyone watching; display only
Play back walk-in music and stingsWalk-in playlist, award stings from the desk's USB playerThe A1 or a playback operator
TalkbackA key that talks to the stage monitors or a mixThe 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.

RuleWhat it means in practice
Ask firstBefore you add an audio connection, ask the A1 whether they want Companion on their desk at all and what for
Agree every buttonSit with the A1, list each button, what it does and who presses it, and get their yes
They choose the channelsMute groups, DCAs and scene numbers come from their show file, not from your guess
Display before controlIf in doubt, give the deck keys that show state and leave the pressing to the desk
No changes after sign-offA button changed after the A1 approved it is a new button and needs a new yes
Their desk, their callIf 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.

A Yamaha CL5, the console in this book's corporate example at 10.0.0.50.
Mic mutes for a panel of five, one button each, with the state on the key.

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.

DeskCompanion moduleConnection detail from the help pageHighlights
dLiveAllen & Heath dLiveConnect to the MixRack or the surface; port 51325 for a MixRack and 51328 for a surface by default; the encrypted ports are not supportedEvery 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
AvantisAllen & Heath AvantisFirmware 2.0 or newer; MIDI/TCP on port 51325; optional console synchronisation on port 51321Mutes, faders, timed fades, scene recall by number or name, USB player and recorder, Virtual Soundcheck
SQAllen & Heath SQThe desk's IP, model, MIDI channel and NRPN fader law must match the desk's own MIDI settingsMutes, 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.

An Allen & Heath dLive S7000 surface; the dLive module controls mutes and faders and recalls scenes.
An Allen & Heath Avantis, controlled from Companion over MIDI on the network, with scene store left to the A1.

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.

A DiGiCo Quantum 338; Companion connects as if it were DiGiCo's own iPad app, once the A1 has added it on the desk.

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.

A Midas M32, which shares its design and its Companion module with the Behringer X32.
A Behringer WING, which has its own Companion module with a long list of actions.

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.

PracticeWhy
Use explicit Mute and Unmute actions for show cues, not ToggleA 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 feedbackThe 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 fileThe A1 already organises the mics; your button follows their grouping
Keep mute keys away from transport and cue keysA mute pressed by mistake is heard by the room at once
Never mute the VOG or the host from a deck someone else can reachThose mics carry the show; their mutes stay with the A1
Check the connection status before trusting a keyA 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.

Mic mutes: toggle against explicit mute and unmuteA toggle sent when the state is unknown leaves the mic in the opposite state; separate Mute Panel and Unmute Panel keys turn red from the desk's own state; the host mic and VOG are display keys only.Mute and unmute are two keys that read the deskmic mutesTOGGLE: NOT FOR SHOW CUESMIC TOGGLESent when the state is unknown, itleaves the mic in the oppositestate from the one intended.Pressed twice, it is back where it started.A private remark goes to the room, or the CEO talks tonobody.EXPLICIT MUTE AND UNMUTEMUTE PANELUNMUTE PANELEach press does onlywhat its label says.Red comes from the desk while the panel's mutegroup is muted, not from what Companion last sent.DANA HOST MICVOGDISPLAY ONLYState and level, no action: those mutes stay with the A1, and the desk's surfacealways wins.Brightwater Health 2027, audio desk 10.0.0.50. The A1 decides whether any mute key lives on a deck.
A toggle sent when the state is unknown does the opposite of what was meant, so show mutes use separate Mute and Unmute keys that read the desk's own state.

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Build the agreed action keys with explicit Mute and Unmute actions, and leave Store, Format and Delete commands off the deck.
  7. Test every key with the A1 watching, at line check, with the speakers safe. Change nothing after they sign it off.

What goes wrong

SymptomLikely causeWhat 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.

Practice it
01
What do you do before adding any audio connection?
Answer
Ask the A1 whether they want Companion on their desk at all, agree a written list of buttons with them, and only then add the Yamaha RCP connection at the address they confirm.
02
Which of the producer's requests would you suggest become display keys rather than action keys, and why?
Answer
The host mic and the VOG, because they carry the show and their mutes stay with the A1; the deck can show their state and level without being able to change it.
03
How would you build the panel mute so it fails safe?
Answer
Use the A1's panel mute group, separate Mute and Unmute keys rather than a toggle, each with a feedback from the desk; the A1 can always mute or unmute at the surface if Companion fails.
04
The module offers Store Scene. Where does it belong?
Answer
Off the show deck. A store overwrites the A1's saved scene, and only the A1 should store, at the desk.
05
The award stings play from QLab. Which machine does the sting button talk to, and who controls the level?
Answer
The QLab playback machine; the desk channel only carries the sound, and the A1 controls its level.
Field checklist
  • 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.
Chapter 17

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.

UseExampleUsually who presses
Extra Go and Back buttonsA Go key on a deck at the LD's side while they watch the stageThe LD or the board operator
Run a cue, macro or preset by numberHouse lights to walk-in stateThe board operator, or a stage manager if agreed
Show cue state on a keyActive and pending cue number and label on the deckAnyone; display only
A combined show cueSlide, sting and lighting look on one key for an awardWhoever calls the segment, by agreement with the LD
A virtual keypadNumbers and command keys for an onPC console with no hardwareThe 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.

A ChamSys MagicQ MQ80, one of the lighting consoles this chapter shows Companion controlling.

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.

An MA Lighting grandMA3 compact; Companion reaches a grandMA3 over OSC, which must be switched on in the console.
House lights and stage looks on buttons, the console still in charge.

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.

An ETC Eos Apex 10, from the Eos family that is standard in theatre and common in corporate work.

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.

ConsoleCompanion moduleHow it connectsReads state back
grandMA2grandMA2 (telnet)Telnet, with Telnet Remote on in global settingsLast console response only
grandMA3GrandMA3OSC; IP, port and prefix match an OSC line with Receive and Receive Command onNot listed in the help page
ETC Eos familyETC EosOSC over TCP, port 3032, or 3037 with TCP SLIPYes: active and pending cue, show name, command line
ChamSys MagicQChamsys MagicQ (OSC) or MagicQ UDPOSC to the console's receive port, with a feedback port; or UDPPlayback and execute levels with OSC; not blackout
High End Hog 4High End Hog4OSC, console input and output ports set in network settingsNo

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.

ModuleHow it sendsUseful actions from the help page
Generic Art-NetTo one node's IP address, which the help page recommends, or to a broadcast address on small dedicated networks onlySet 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 modeSet 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.

Lighting with no consoleCompanion's Generic Art-Net and Generic sACN modules send DMX over the network to a node or straight to fixtures; if a console sends the same universe, the two may merge or fight.With no console, Companion sends the DMX itselfno consoleCOMPANION 10.0.0.10Generic Art-Net or GenericsACN (E1.31) module.One connection sends oneuniverse: 512 channels, values0 to 255, with fade times.NETWORK-TO-DMX NODETurns the networkuniverse into DMX for thefixtures.FIXTURESFed DMX by the node, ortaking Art-Net or sACNdirectly.Art-Netunicast tothe node's IPDMXsACN multicast to the universe's group, or unicastA CONSOLE ON THE SAME UNIVERSEWith sACN the receiver takes the higher priority. Companion sends 100 bydefault, which is also the usual default, so the two may merge or fight.Never send onto a universe the LD is using unless they set it up for you.THE NIGHT SHIFTOne key fades Nora Vance's practicallamp from 0 to 70 percent over twoseconds; a second fades it back.Art-Net broadcast reaches every device: small or dedicated networks only; unicast is the better habit.
Companion's Art-Net and sACN modules send a universe to a node or straight to fixtures, and a console sending the same universe may merge or fight with it.
A small show can drive a few lights straight from Companion over the network.

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.

ShowWho presses lighting goWhat Companion does
Brightwater Health 2027The lighting operator, on the show caller's call; one award cue combined by agreementDisplay keys showing active and pending cue; the combined award key, approved by the LD
The Low TidesThe console, from timecode, with the LD ready to take overDisplay only on any deck outside the LD's position; no lighting actions
The Night ShiftThe gaffer or the dimmer operator, on the first assistant director's cueAgreed 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.

Who presses lighting goOn Brightwater Health 2027 the lighting operator presses go on the show caller's call; on The Low Tides the console runs from timecode; on The Night Shift the gaffer or dimmer operator presses on the first assistant director's cue.The LD and the caller decide who presses gowho presses goSHOWWHO PRESSES LIGHTING GOWHAT COMPANION DOESBrightwater Health 2027The lighting operator, on the showcaller's call; one award cue combined byagreementDisplay keys for active and pending cue; thecombined award key, approved by the LDThe Low TidesThe console, from timecode, with the LDready to take overDisplay only on any deck outside the LD'sposition; no lighting actionsThe Night ShiftThe gaffer or the dimmer operator, on thefirst assistant director's cueAgreed keys for practical lampsDANGEROUS LIGHTING KEYSBlackout, release all, anything that clears or overwrites, free-text Run Command: off show decks, or protected.Never fire lighting cues from a deck the LD has not approved. The console keeps its own Go button.
Who presses lighting go on each of the book's three shows, and what Companion is allowed to do there.

How to do it

  1. 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.
  2. 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.
  3. 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.
  4. Build display keys first: active and pending cue where the module offers them. Check they follow the desk when the operator presses Go.
  5. 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.
  6. 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

SymptomLikely causeWhat 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.

Practice it
01
What do you say to the video director, and who decides?
Answer
That lighting keys are the LD's decision; take the request to the LD, and build only what they approve, if anything.
02
What console-side settings would the grandMA3 need for Companion to work at all?
Answer
An OSC line under In and Out with the same IP, port and prefix as the module, with Receive and Receive Command ticked.
03
What could go wrong with a Go key on the video deck during timecoded songs?
Answer
A press could skip or jump a cue while the console is running from timecode, putting the stage in the wrong look; one person and one system should run each cue.
04
The tour manager's house-lights key: what questions do you ask?
Answer
Whether the LD or the venue wants house lights on a remote key at all, which cue or macro it fires, when it may be pressed, and whether it should be a display key instead.
05
Which keys would you be comfortable building without further agreement?
Answer
None that act on the console; display keys only after the LD agrees Companion may connect.
Field checklist
  • 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.
Chapter 18

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.

WordWhat it means on a show
CueOne planned, numbered change in the show
Cue sheet or cue listThe written list of every cue for your department, in show order
Run of showThe producer's minute-by-minute plan of the whole event, every segment and who is on stage
Show callerThe person who calls standby and go for every department, usually on comms
StandbyGet ready, the next cue is coming; finger near the button, eyes on the stage
GoFire the cue now
TransportPlay, 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 press: house lights to half, walk-in music up, holding slide on screen.

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

SituationUsually fitsWhy
Rehearsed opener: video, switcher and lights land togetherOne button, many machinesOne press, one moment, no gap between machines
Panel of five, mics and cameras follow whoever speaksOne button, one machineNobody knows the order in advance
Concert song starts on timecodeOne button, many machines, or a trigger from timecodeEverything must start on the same frame
Two operators share the showOne button, one machineEach person owns their own machines and their own keys
Film set, a phone text arrives as an actor reactsOne button per device, plus one reset key for all of themCues are timed to the actor; resets must be fast and total
You inherit a show file you did not buildRead every multi-machine button before you trust itA 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.

CueNameMachinesWhat happensCalled on
1Walk-inPB-A, AudioWalk-in loop plays, walk-in music upDoors
2VOGAudioVoice of god announcement playsCaller, five minutes to start
3OpenerPB-A, ATEM, LXOpener video rolls, switcher cuts to it, house lights outCaller
4Host onATEM, LX, AudioCamera on Dana Okafor, stage wash up, host mic openEnd of opener
5CEO slidesPPT, ATEMMartin Lowe's deck on screenDana says his name
6Awards stingPB-B, AudioAward graphic and sting playEach 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.

The deck is built from the show's running order, never from memory.

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.

ToolWhat it doesUse it when
Actions at the top levelStart together, in parallelSeveral machines must move at the same instant
Wait actionHolds every action after it for the time you setOne machine must lead another by a known gap
Action Group, SequentialRuns its actions in order, each after the last finishesStep two must not start before step one is done
Action Group, ConcurrentRuns its actions togetherA bundle inside a longer sequence must fire at once
Duration groupActions that run only after the key is held for a set timeA 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.

One button, many machines, with its timingThe C7 OPENER key on Brightwater Health 2027 plays Playback A at 10.0.0.31 and recalls a lighting cue on the desk at 10.0.0.60 at once, waits 200 ms, then cuts the ATEM at 10.0.0.20.One press, three machines — the playback leadsone cueC7 OPENERPB+ATEM+LXthe label tells the truth0 ms100 ms200 ms300 msPB-A 10.0.0.31playLX 10.0.0.60recall cue: the desk's fadeATEM 10.0.0.20cut to PB-AWAIT 200 msWITHOUT THE WAITA frame of black or a frozen first frame may reachprogram.ON THE CUE SHEET"PB-A play, wait 200 ms, ATEM cut", so a rebuild keepsthe gap.Top-level actions start together; a Wait holds those after it. Find the gap in rehearsal, on program.
The C7 OPENER key plays Playback A and recalls the lighting cue at once, then waits 200 ms before the ATEM cuts to the video.

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 hearYou do
Standby video 3Answer, find cue 3, hand near the key, eyes on stage or program
Video 3, goPress on the word go
Standby video 3 and lights 12Your key may drive both, or each operator presses their own; know which before the show
HoldDo not press; the cue is delayed
Cancel video 3Take your hand away; the cue will not happen
Silence on comms at the moment you expected goDo not press; a cue is fired by the word, not by your sense of timing
Standby and goThe caller says standby video 3, you answer, find the key and watch; on video 3, go, you press on the word. Hold, cancel or silence mean do not press.Press on the word go, not on your own timingstandby and goCALLER"Standby video 3"YOUAnswer, find cue 3,hand near the key,eyes on stage orprogram.CALLER"Video 3, go"YOUPress on the word go,not before and notafter.DO NOT PRESS"Hold": the cue is delayed."Cancel video 3": take your handaway.Silence where you expected go: acue is fired by the word.C2C3C4One colour for next, one for done, the rest dark. One key per cue lets youfire whichever cue the caller names.If you are not ready when standby is called, say so at once: "video not ready". Colours here are an example.
On standby you find the key and watch, on go you press, and on hold, cancel or silence you do not press at all.

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.

QuestionAsk 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.

ProtectionHow to build it in CompanionGood for
Place it apartPut it in a corner, away from the cue keys, with blank keys around itEvery dangerous key
Colour itOne warning colour, used only for dangerous keys, on every showEvery dangerous key
Long pressAdd a duration group so the action runs only after the key is held, for example for one secondStop all, fade to black, end stream
Two-step armStep 1 of the button only arms it and changes its colour; step 2 fires; a Wait and a step reset disarm it if not confirmedRare, high-risk keys
Separate pageKeep dangerous keys on their own page, reached on purposeKeys used only in emergencies
Lock the deckPIN lockout in Companion, set on the Surfaces page and in SettingsDecks 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

  1. 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.
  2. For each cue, write the number, name, machines, what happens and what it is called on.
  3. 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.
  4. 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.
  5. Set the order and timing inside each multi-machine key, using Wait actions or Action Groups, and write the timing on the cue sheet.
  6. Add feedbacks so the next cue and the last fired cue are easy to see.
  7. Build the dangerous keys apart, in the warning colour, with a long press or a two-step arm.
  8. 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

SymptomLikely causeWhat to do
The audience sees a frame of black before the opener video movesThe switcher cut and the playback start fired at the same instantStart 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 expectedA multi-machine key was copied from another show, or its label does not list every machineRead 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 fireYour key recalls a lighting cue nobody agreedAgree 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 orderThe key only knows the next cue, and the caller skipped oneUse one key per cue on called shows; keep GO keys for fixed sequences
Someone brushes the deck and the stream stopsThe end-stream key had no protectionMove 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 orderThe module does not report when its action has finishedTest 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.

Practice it
01
Should the opener be one key or several, and why?
Answer
One key that drives Playback A, the ATEM and the lighting cue, labelled with all three, because the moment must land in all three places together and it is rehearsed. Separate keys also work if each department fires its own, but then all three must press on the same "go".
02
What must you do before your opener key recalls the lighting cue?
Answer
Agree it with the lighting operator: which cue number on their desk, who presses on the day, and how they override it. Write it on both cue sheets.
03
How should the awards sting key be built so it can be fired again and again?
Answer
As its own key with no steps, so every press plays the sting; give it a feedback that shows when Playback B is playing.
04
The opener shows a frame of black at the cut. What do you change?
Answer
Start Playback A first and put a short Wait before the ATEM cut, then watch program output in rehearsal to set the gap, and note it on the cue sheet.
05
How do you protect the fade-to-black key?
Answer
Place it apart in the warning colour, and put the fade in a duration group so it only runs after a long press, or build it as a two-step arm-then-fire key.
06
The caller says "standby video 5" but your next lit key is 6. What do you do?
Answer
Fire nothing yet. Find cue 5 by its number, since each cue has its own key, and tell the caller at once if you are not ready. Fix the next-cue display after the moment has passed.
Field checklist
  • 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.
Chapter 19

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 sceneWhat usually plays itWhat a Companion key might do
Background monitors in the newsroomA playback computer running PlaybackPro or QLabStart the loop; switch to the breaking news clip on cue
A television in the sceneA playback computer or a media playerPlay the news report as the actor turns to look
Maya's phoneA ProtoPie interaction on the phoneSend the message that makes Leo's text arrive
City through the car windowsAn LED wall fed from a media server or playback computerStart the drive plate; hold on its first frame
Every screen in the shotAll of the aboveReset everything to the first frame for the next take
On set, the playback op cues every screen in the shot from a hidden deck.

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 showOn a film setWhat it means for the deck
Each cue happens onceEach moment is shot many times, from several anglesEvery cue must repeat exactly, and reset fast
The caller says standby and goThe first assistant director calls rolling, action and cut; the actor's timing is the cueYou cue off the actor, the director or a hand signal
The deck sits at FOH, out of the audience's viewThe deck may be a few metres from the cameraIts light can show up in the shot or in reflections
The room is never silentThe set must be silent while the camera rollsNo clicks, no beeps, no talking on a speaker
The run of show is fixed for the dayThe day follows the call sheet, and the order can change at any momentPages 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.

ProblemWhat you seeWhat to do
Deck in frameColoured keys at the edge of the shotMove the cart, or turn the deck away from the lens
ReflectionSmall lights in a window, windscreen or glassesWatch the monitor, move the deck, or shade it
Light spillA coloured glow on a wall or the floor near youLower the brightness; use dark key backgrounds
Your laptop screen tooA glow on the actor's side of the setDim it or close it to the deck you need
Night exteriorsEvery light reads as a lightLowest 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.

Dimmed: the keys stay readable while the operator's face stays dark.
Full brightness: the deck lights the operator's face, which shows in a dark room and on camera.

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 doCheck after each take
Every device back to its first frame or first stateLook at each screen, or at its feedback on the deck
Nothing left playing or paused mid-clipFeedbacks show stopped and cued, not paused
Phones back to the start of their interactionLook at the phone itself before you hand it back to props or the actor
Wall or projection back on the first frame of the plateCheck the wall, not just the computer
Your next cue key readyThe 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.

Back to one on a film setOne BACK TO ONE key resets every screen in the shot to its first frame: the newsroom loop, the television clip, the LED wall drive plate and Maya's phone; feedbacks show the reset is total.One press puts every screen back to oneback to oneBACK TO ONEone per scene pageNEWSROOM LOOPStop and cue to its first frame.TELEVISION CLIPCue to the top.LED WALL DRIVE PLATEHold on its first frame.MAYA'S PHONEA ProtoPie message resets her phone.CHECK AFTER EACH TAKE•Every device at its first frame orstate•Nothing left paused mid-clip•The phone itself, before props orthe actor•The wall, not just the computer•Your next cue key lit as nextTHE DECK MAY BE A FEW METRES FROM THE CAMERA: LOW BRIGHTNESS, DARK KEYSThe Night Shift. Cue keys during a take may stay one per machine; the reset must not miss a screen.
One BACK TO ONE key returns the newsroom loop, the television clip, the LED wall plate and Maya's phone to their first frame for the next take.
One button returns every screen to the start of the take.

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 noiseWhat to do
Talking, even quietlyStop when rolling is called; use hand signals or wait for cut
Computer alert sounds and notification chimesTurn system sounds off on every playback machine and on the Companion computer
A laptop fan running hardKeep heavy machines away from the set, or further back
Speakers on a playback computerMute local audio unless sound has asked to hear it; route audio as sound asks
Phones on the cartSilent, vibrate off, unless the phone is a prop that rings on cue
Rolling the cart, dropping cablesMove 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.

RouteHow it worksGood for
ProtoPie Bridge moduleCompanion sends a message and value to ProtoPie Connect, which passes it to the phonesSeveral phones cued or reset together
KeystrokeCompanion sends a key press to the computer running the pieOne device driven from one computer
Operator's own triggerA hidden touch or a second device the operator controlsWhen 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

  1. From tomorrow's call sheet, list the scenes and every screen in each one.
  2. 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.
  3. Add feedbacks so every device shows playing, paused or cued on its key.
  4. On set, turn system sounds off on every machine and set the deck's brightness low.
  5. Ask where the camera will be for each set-up, and place the cart and deck out of frame and out of reflections.
  6. Look at the frame on the monitor before the first take and fix any light from your corner.
  7. Agree each cue with the actor, the director or the first assistant director, and test every cue and the reset in rehearsal.
  8. After each cut, press back to one, check every screen and every feedback, and be ready before the crew is.

What goes wrong

SymptomLikely causeWhat to do
A small coloured light shows in a car windscreen in the shotThe deck is reflected in the glassMove 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 oneThe reset key missed that machine, or its command failedAdd the machine to the reset key, add feedbacks, and check every key after each reset
Sound reports a chime on the takeA notification or system alert played on a playback computerTurn system and notification sounds off on every machine before the day starts
The phone text arrives a beat lateThe cue was fired off the operator's guess, not the agreed momentAgree the cue (line, look or signal) in rehearsal and watch for it
The phone does not respond to the Companion keyThe phone lost its wireless link, or ProtoPie Connect is not runningCheck the link and Connect, and keep a way to cue the phone by hand
The deck is in frame after the dolly tracks inThe deck was placed for the wide shot onlyAsk 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.

Practice it
01
What keys does the scene 12 page need?
Answer
A key for the monitor loop, a key for the television report, a key for the phone text, and one back-to-one key for the scene, plus any stop keys you need.
02
Which key should drive several machines, and why?
Answer
The back-to-one key, because a reset has no timing to catch and must return every screen to its first state in one press.
03
Which keys should stay one key per device, and why?
Answer
The television and phone cues, because each is timed to a different moment in the actors' performance: Nora's turn and Maya sitting down.
04
The camera tracks in and you see a small glow in a glass partition. What do you do?
Answer
Find the source, lower the deck's brightness, shade it or move it before the next take, and check the frame on the monitor.
05
What do you check before the first take that you would not on a live show?
Answer
That the deck and laptop are out of frame and out of reflections for each set-up, that system sounds are off on every machine, and that the cue for each screen is agreed with the actors and the first assistant director.
06
After cut and back to one, the television is still paused mid-clip. How should your deck have told you, and how do you fix the key?
Answer
The television's key should show its state with a feedback, so a paused clip shows at a glance. Add the television's cue-to-top action to the back-to-one key and test it again.
Field checklist
  • 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.
Chapter 20

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.

PartWhat it doesCommon examples
EncoderCompresses the program feed into a streamOBS Studio, vMix, ATEM Mini Pro, hardware encoders
DestinationReceives the stream and shares it with viewersStreaming platforms, a corporate video service, a custom RTMP server
Server address and stream keyTell the encoder where to send and which channelrtmp:// address plus a private key
Internet connectionCarries the stream out of the venueWired venue internet, a dedicated line, a bonded cellular unit
RecordingKeeps a copy of the show on a driveThe same software, the switcher, or a separate recorder
Scenes, stream start and record on one deck for a streamed event.

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.

KeyColour while activeProtectionFeedback to show
START STREAMRed when liveLong press or two-step armLive state and stream time
STOP STREAMWarning colourLong press, placed apartLive state
START RECORDRed when recordingLong pressRecording state and recording time
STOP RECORDWarning colourLong press, placed apartRecording state
STREAM HEALTHChanges colour when the stream strugglesDisplay only, no actionBitrate, 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.

Stream and record are separate buttonsThe recording starts before the stream to catch the walk-in and keeps running after it for a private question-and-answer session; a dropped internet stops the stream, a full drive stops the recording.Stream and record start and stop apartstream and recordWALK-INTHE SHOWPRIVATE Q&ARECORDSTREAMSTART RECORDSTOP RECORDSTART STREAMSTOP STREAM"we're live""we're clear"INTERNET DROPSThe stream drops; the recording onthe local drive carries on.DRIVE FULLThe recording stops; the streamcarries on.NO TOGGLESA double press would stop the streama moment after it started.Separate start and stop keys, each behind a long press, each with its own feedback. OBS and vMix alike.
The recording starts before the stream and runs on after it, and the two fail for different reasons, so each has its own start and stop keys.
Starting the stream and starting the recording are two decisions; never one guess.

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

AreaActions in the moduleFeedbacks and variables
StreamingStart, stop or toggle streamingStreaming Active, Streaming Reconnecting, stream time, bitrate
RecordingStart, stop, toggle, pause, resume, split the file, add a chapterRecording Active, Recording Paused, recording time, file name
ScenesSet the program scene, set the preview scene, a smart switcher that previews then takesWhich scene is in program and in preview
TransitionsPerform a transition in Studio Mode, set type and durationTransition in progress
Sources and audioShow or hide sources, change text, mute, set volumeMuted, volume, peaking
HealthNoneSkipped 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 functionWhat it doesNote
StartStreaming / StopStreamingStart or stop streamingOptional stream number from 0; blank means all streams
StartStopStreamingToggle streamingAvoid on show keys; a double press stops the stream
StartRecording / StopRecordingStart or stop the main recordingSeparate from streaming
StartStopRecordingToggle recordingSame caution as the streaming toggle
StartMultiCorder / StopMultiCorderRecord inputs to separate filesMultiCorder is in the 4K, Pro and Max editions
StartExternal / StopExternalStart or stop the External outputA separate output control, not the stream
FadeToBlackToggle fade to blackA 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.

A Blackmagic Design ATEM Mini Pro: a switcher with a streaming encoder built in, so the stream can leave from the switcher itself.

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 taskA Companion key might
Bring the remote panellist on screenCut the switcher to the call input and recall the panel layout
Send the room to the remote guestRoute the program or a clean feed to the call's camera input
Open the remote guest's audioUnmute the call channel on the audio desk, agreed with the A1
Show a viewer questionPut a text graphic on screen in OBS or vMix
Watch the stream healthShow 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

  1. Get the destination's server address and stream key from the client or producer, enter them in the encoder, and keep the key private.
  2. 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.
  3. Build separate start-stream, stop-stream, start-record and stop-record keys, each behind a long press, with stop keys placed apart.
  4. Add a health key showing live state, stream time, bitrate and dropped frames, and one showing recording time and free disk space.
  5. Run a private test stream for several minutes and watch it on a separate device as a viewer would.
  6. 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.
  7. 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

SymptomLikely causeWhat to do
The stream stops a moment after it startedA toggle key was pressed twiceUse separate start and stop keys, each behind a long press
The stream ended and the recording was lost tooOne key stopped bothKeep stream and record on separate keys with separate feedbacks
Companion cannot connect to OBSThe WebSocket server is off, the port or password is wrong, or the module needs a newer OBSEnable the server, copy the connect info, and match the module version to OBS
The encoder preview looks fine but viewers see a frozen pictureThe stream dropped or the destination stalled, and only the local preview was watchedWatch the stream on a separate device; put the reconnecting feedback on a key
The recording stops in the middle of the showThe drive filled upCheck free space before the show and show it on a key
The remote panellist hears an echo of their own voiceThe return feed to the call includes the guest's own audioAgree 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.

Practice it
01
In what order do the stream and record keys get pressed during the day?
Answer
Start record at the walk-in; start stream when the general session opens; stop stream on the producer's clear before the question session; stop record at the very end.
02
Why is a single start-or-stop streaming key a bad idea here?
Answer
A double press would stop the stream a moment after starting it, and a toggle cannot tell you from its press alone which state it will leave.
03
What would you put on a stream health key?
Answer
Live or not, how long it has been live, the bitrate, and dropped frames, with a colour change if the stream struggles.
04
The vMix function to start streaming takes an optional number. What happens if you leave it blank?
Answer
It controls all streams, so every destination starts at once.
05
Who must agree the key that opens the remote panellist's audio?
Answer
The A1, the lead audio engineer, because that key changes their desk.
Field checklist
  • 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.
Chapter 21

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.

JobElgato appCompanion
Shortcuts and programs on the same computerA good fitWorks too, through keystroke tools
OBS on the same computerA good fit, with Elgato's OBS pluginA good fit, with the OBS module
Many machines across a show networkOnly where a plugin exists for eachBuilt for this, with a large library of device modules
Live state on keys from switchers, playback and desksDepends on each pluginFeedbacks and variables from each module
Several decks in different places on one systemEach deck runs from its own computerSatellite and network surfaces, one configuration
One saved show file for all machinesProfiles per deviceOne 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.

One person, one computer, one stream: the maker's own app may be all you need.

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-upHow it worksWatch for
Companion onlyElgato app closed; Companion drives every deckSimplest and the setup Companion recommends
Decks splitSome decks disabled in Companion and left to the Elgato appKnow which deck belongs to which program
Companion pluginElgato app drives the decks; plugin keys press Companion buttonsButton Subscriptions API bypasses PIN lockout and page permissions
Both open, no planWhichever program grabs the deck first winsA deck that goes blank or frozen in one program
Companion and the Elgato app on one computerA Stream Deck on USB is driven by one program at a time; the four set-ups are Companion only, decks split, the Companion plugin, and both open with no plan.A USB deck answers to one program at a timeone computerSTREAM DECK(USB)COMPANIONELGATO STREAM DECK APPIf the Elgato app has hold of a deck,Companion cannot use it, and the reverse.Deck missing in Companion: close the Elgato appand click Rescan.COMPANION ONLYElgato app closed; Companion drives every deck. The set-up Companion recommends.DECKS SPLITSome decks disabled in Companion and left to the Elgato app. Know which deck iswhose.COMPANION PLUGINThe Elgato app drives the decks; plugin keys press Companion buttons. Its APIbypasses the PIN lockout.BOTH OPEN, NO PLANWhichever program grabs the deck first wins; a deck goes blank or frozen.Companion Satellite will not detect a deck while the Elgato app is open at all.
A USB deck answers to one program at a time, and the four ways Companion and the Elgato app can share a computer.

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

  1. Decide which decks Companion will drive and which, if any, the Elgato app keeps.
  2. In Companion's settings, turn off auto-enabling of newly discovered surfaces if you want to choose decks yourself.
  3. Close the Elgato app, open Companion, and check the show decks appear on the Surfaces page; use Rescan if one is missing.
  4. Disable in Companion any deck the Elgato app should keep, then open the Elgato app and check that deck appears there.
  5. 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.
  6. Restart the computer and check every deck comes back in the right program.

What goes wrong

SymptomLikely causeWhat to do
The Stream Deck does not appear in CompanionThe Elgato app has hold of itClose the Elgato app and click Rescan on the Surfaces page
A deck goes blank or freezes after the computer restartsBoth programs start at login and the wrong one took the deckSplit the decks deliberately, or stop the Elgato app starting at login
A plugin action stopped working after a software updateThe plugin was not updated for the new versionCheck plugin versions in prep; test after every update
A locked Companion system can still be pressed from the Elgato appThe Button Subscriptions API lets plugin clients bypass PIN lockoutUse direct connection where locking matters; enable the API only when needed
An imported profile is missing actionsThe profile does not contain its pluginsInstall 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.

Practice it
01
Why might plugging in the Mini cause trouble?
Answer
Each deck can be driven by one program at a time; if both programs run, one may take a deck the other needs.
02
How can the Mini stay with the Elgato app while your two decks stay with Companion?
Answer
Disable the Mini on Companion's Surfaces page so Companion leaves it alone, and let the Elgato app drive it.
03
What setting stops Companion grabbing the Mini when it is plugged in?
Answer
Turn off "Auto-enable newly discovered surfaces" in Companion's settings.
04
What must you check after the computer restarts?
Answer
That both show decks come back in Companion and the Mini comes back in the Elgato app.
Field checklist
  • 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.
Chapter 22

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.

A second deck on a small computer across the room talks to the main Companion over the network.

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.

ItemValue or placeNote
Satellite TCP port16622 by defaultSet in Companion Settings, Satellite
Satellite WebSocket port16623 by defaultAlso in Companion Settings
Satellite's own web pagePort 9999 on the Satellite machineConfigure a headless Satellite from a browser
Minimum Companion version3.4.0From the Satellite guide
Raspberry PiPrebuilt image; 64-bit Raspberry Pi OS Lite for manual installsA 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 panelWhat it does
PagesWhich pages show, as ranges like 1..6 or lists with commas
Min and max column, min and max rowShow only part of each page's grid
Show page headingsLabel each page in the view
Display columnsHow many columns to lay out; 0 for dynamic
Hide configure buttonRemove the cog from view
Hide fullscreen buttonRemove the fullscreen control
The director gets a few safe buttons on a tablet; the operator keeps the rest.
A presenter's countdown started from a button and shown where they can see it.
Companion's Web buttons view at /tablet with the cog panel open, set to show page 2 only, with page headings.

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.

UseWhy the emulator fits
Building a show before the decks arrivePress and test buttons as if a deck were plugged in
Checking a show file on a laptopSee every page as a deck would show it
A low-cost extra panelThe user guide suggests it for giving someone a cheap set of buttons
TrainingA 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.

Ways to share Companion's buttonsOne Companion at 10.0.0.10 reaches decks elsewhere through Companion Satellite, tablets through Web buttons at port 8000 /tablet, and on-screen decks through the emulator.One Companion, buttons in other handssharingCOMPANION 10.0.0.10One configuration, one export.COMPANION SATELLITEA laptop or Raspberry Pi near the deckconnects over TCP 16622 or WebSocket16623. Its own web page is port 9999.A surface: listed on Surfaces, its IP inLocation.WEB BUTTONSA browser on a tablet athttp://10.0.0.10:8000/tablet; the cogpanel limits the pages.Not a surface: page-change keys will notmove it.THE EMULATORA Stream Deck on screen in thebrowser; you create it, and can haveseveral.A surface with its own page: one perperson.NEVER EXPOSE COMPANION'S PORTS TO THE INTERNET: A PRIVATE NETWORK OR A VPNSatellite ports are defaults, set in Companion Settings. Satellite needs Companion 3.4.0 or newer.
One Companion reaches decks elsewhere through Satellite, tablets through Web buttons and on-screen decks through the emulator.
Companion's CUES emulator showing the BW SHOW page as a 32-key Stream Deck XL would, with red triangles on the keys whose machines cannot be reached.

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.

Departments sharing one Companion must agree who owns each page.

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 systemOne each
Who programsOne programmer, others pressEach operator their own
ConnectionsEach machine connected onceA machine may be connected from two systems
Shared cuesEasy; place the key on several decksNeeds agreement on who fires
BackupOne exportOne per system
If the computer failsEvery deck stopsOnly 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.

SettingWhereWhat it does
Page permissionsSurfaces page, per surface or surface groupLimits a deck or group to chosen pages; from Companion 4.2
Startup pageSurface settingsThe page a deck shows when Companion starts
PIN lockoutSurfaces page and SettingsLocks surfaces after a set idle time, or from a button; a PIN unlocks
Never pin code lockSurface settingsKeeps a chosen deck unlocked, such as your own
Admin UI passwordSettings, AdvancedAsks for a password before the configuration pages open
Web buttons page limitThe cog panel of the tablet viewShows 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

  1. 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.
  2. Wire the Satellite machine into the show network and give it an address on the show subnet.
  3. In Satellite's configuration, enter the Companion computer's address, 10.0.0.10, leave the port at its default, and save.
  4. In Companion, find the deck on the Surfaces page by its Location, name it, and set its startup page.
  5. Set page permissions so the deck reaches only its own pages, and set PIN lockout if it will be left alone.
  6. 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

SymptomLikely causeWhat to do
The Satellite deck never appears in CompanionWrong Companion address, a blocked port, or the Elgato app holding the deckCheck the address and port 16622, close the Elgato app, and check the Connected Surfaces tab
A Satellite deck shows a placeholder mid-showThe network link between Satellite and Companion droppedCheck the cable and switch; use wired networking for Satellite machines
A page-change key on the tablet does nothingWeb buttons is not a surface, so it cannot follow page changesSet the tablet's pages in the cog panel, or use an emulator instead
The producer pressed a key from your transport pageTheir deck or tablet could reach every pageSet page permissions on their deck; limit the tablet's pages
Two people on one emulator keep changing each other's pageOne emulator is one surface with one pageCreate an emulator for each person
A locked system can still be pressedButton Subscriptions API is on, or the device was set to never lockTurn 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".

Practice it
01
How do you get a deck to stage left on the same Companion?
Answer
Run Companion Satellite on a laptop or Raspberry Pi at stage left, wired to the show network, with the deck plugged into it.
02
What address and port does Satellite need?
Answer
The Companion computer's address, 10.0.0.10, on the default Satellite TCP port 16622.
03
How do you stop the stage manager's deck reaching your pages?
Answer
Set page permissions on that surface so it reaches only the stage manager's page, and set its startup page to match.
04
How do you set up the tour manager's tablet?
Answer
Put the two keys on one page, open http://10.0.0.10:8000/tablet on the tablet, set Pages to that page only, hide the configure button, and bookmark the address.
05
The stage manager's deck goes to a placeholder during the show. What has happened?
Answer
The network link between the Satellite machine and Companion has dropped; check its cable and switch port.
06
Before you build the house-lights key, who must you talk to?
Answer
The lighting operator, who owns the desk, because the key recalls a cue on their console.
Field checklist
  • 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.
Chapter 23

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.

Export the configuration to a USB stick and to a second place before every show.

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.

Companion's Export Configuration dialog, choosing connections, buttons, triggers, variables and surfaces, with the file format set to Compressed (Default).

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.

Companion's Settings, Backups page with a backup rule open: rule name, cron schedule, backup type, path, name pattern, number to keep and Run Now.

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 kitWhy
The latest .companionconfig exportRestores every page, button and connection
The Companion installer for the version you runA spare computer must run the same version
The offline module bundle for that versionInstalls modules with no internet
Any module package you imported by handIt is not in the public bundle
The IP plan and cue sheets on paperYou 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.

Companion's Import Configuration page on the Full Import tab, recommending an export first and listing the components to import.

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.

SpareReady meansNotes
A spare Stream DeckSame model as the show deck, tested with CompanionSurface groups let a swapped deck pick up the same pages
A spare Companion computerSame Companion version, modules installed, show imported and testedOr a Raspberry Pi running Companion, set up in prep
Spare USB cablesThe right type and length for each deckUSB cables fail more often than decks
A spare network switch and cablesPatched and labelledA failed switch takes every machine off the network
PowerDecks and computers on show power, not a wall socket that may be switched offA 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.

A spare deck, spare cables and a spare Companion computer travel with the show.

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.

CheckHowDone when
ConnectionsConnections page; every connection in useEvery status is good, none in warning or error
SurfacesSurfaces page; every deck, Satellite deck and emulatorEvery deck present, named, on its startup page
Cue keysFire each cue in rehearsal or a safe stateEach machine does what the key says
Transport keysPlay, pause, stop, next and previous on each machineEach machine responds and its feedback changes
Dangerous keysTest with every machine safe to interruptThe long press or arm works as built
ResetsRun your standby or back-to-one keysEvery machine returns to its start state
BackupExport the tested configurationA 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.

A show day in orderOn arrival check connections and decks; export and copy off; test everything before doors; set start states and leave the buttons alone; doors; during the show watch status and run by hand if Companion fails; after the show export the final file.After doors, nothing new gets testedshow dayON ARRIVALPower theCompanioncomputer; everyconnectiongood, everydeck present.BACK UPExport theconfigurationand copy it offthe computer.TEST BEFOREDOORSConnections,decks, cuekeys,transport,dangerous keys,resets.START STATEEvery machineto its start;export again,then leave thebuttons alone.DOORSDURING THE SHOWStatus keys inview. IfCompanionfails, run thenext cue byhand and tellthe caller.AFTER THE SHOWExport thefinal file,note faults,clear theclient'sdetails, packand test thekit.IF SOMETHING MUST CHANGE AFTER DOORSChange only that one button, test it off-air if you can, and export again.Doors: the moment the audience is let in. A test after doors puts the test on the screens.
A show day in order, from checking connections on arrival and testing before doors to the final export after the show.
Press every button in an empty room, not in front of an audience.

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.

A red connection is the first thing to read, before rebuilding anything.

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 seeWhat it usually meansFirst check
A connection in errorCompanion cannot reach the device or the device refused itIs the device on, on the network, at the right address?
A connection in warningThe module has a problem short of a full failureRead the connection's log
A connection disabledSomeone turned it off, or its collection is offTurn it on if it should be on
A deck blank or frozenCompanion lost the surface, or another program took itSurfaces page; close the Elgato app; Rescan
A Satellite deck showing a placeholderThe network link to Companion has droppedCable, switch, address of the Satellite machine
A deprecated badge on a moduleThe module or version will be removedPlan to move to the replacement after the show, not during
Companion's internal variables filtered to _status, where $(internal:connection_pbA_status) and the others read error because the machines cannot be reached.

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.

Companion's Log page showing only errors: pbA and pbB repeatedly time out connecting to 10.0.0.31 and 10.0.0.32 on port 4647.

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 failedRun the show byThen fix
One deckAnother deck, a tablet or the emulator on the same CompanionSwap in the spare deck
The Companion computerEach machine's own controlsStart the spare computer with the show imported
One connectionThat machine's own controlsCheck the device and network, then the connection
The network switchEach machine's own controlsSwap in the spare switch
A Satellite linkThe machine's own controls, or your main deckCheck 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.

If the buttons stop, every machine still has its own controls; know where they are.

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.

StepAskLook at
1. The deviceIs it on, awake, and in the mode Companion expects?The machine itself and its own screen
2. The networkIs it plugged in, on the right subnet, at the right address?Cables, switch lights, the IP plan; ping it
3. The connectionIs the connection's status good?Connections page and its log
4. The surfaceIs the deck present and on the right page?Surfaces page; the Elgato app closed
5. The buttonDoes it hold the right actions, in the right order, for the right connection?The button editor
6. The device's own settingsIs 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.

Troubleshooting from the outside inSix steps in order: the device, the network, the connection, the surface, the button, and the device's own remote settings. Most faults are found in the first two.Work from the outside in: device, then networktroubleshooting1. THE DEVICEOn, awake, in the mode Companion expects? The machine and its own screen.2. THE NETWORKPlugged in, right subnet, right address? Cables, switch lights, the IP plan; ping it.3. THE CONNECTIONIs its status good? The Connections page and its log.4. THE SURFACEDeck present, on the right page? Surfaces page; the Elgato app closed.5. THE BUTTONRight actions, right order, right connection? The button editor.6. DEVICE SETTINGSRemote control on, right port and password? Its network or remote settings.STEPS 1 AND 2Most faults are found here.ONE CHANGE AT A TIMETest after each change.When a key does not do what it should. Fixed addresses or DHCP reservations stop overnight changes.
The six troubleshooting steps in order, from the device and the network inwards to the button and the device's own remote settings.

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 showWhy
Export the final configurationThe record of what ran, and the start of next time
Note faults and near missesFix causes, not symptoms, before the next show
Clear private detailsStream keys and passwords for the client's accounts do not travel to the next job
Count and test the kitDecks, cables, spares and the USB stick all come home and work
Update in prep, not on siteModule and Companion updates are tested before they meet a show

How to do it

  1. On arrival, power the Companion computer, check every connection is good and every deck and Satellite deck is present.
  2. Export the configuration and copy it off the computer.
  3. Before doors, test every connection, deck, cue key, transport key, dangerous key and reset, watching the result on each machine and on program.
  4. Put every machine in its start state, export the tested configuration, and leave the buttons alone.
  5. During the show, keep connection status keys in view, and if Companion fails, run the next cue by hand and tell the caller.
  6. Fault-find from the outside in, one change at a time, and log each event with its time.
  7. 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

SymptomLikely causeWhat to do
The Companion computer will not start and there is no copy of the showThe configuration was never exported off the machineExport after every session and before every show, to two places
A spare computer imports the show but connections will not startThe modules are not installed and there is no internetCarry the offline module bundle for your Companion version
A swapped spare deck shows the wrong pageThe show was built against the old deck, not a surface groupBuild against surface groups so a spare joins the group
A cue key does nothing and nobody noticed until it was calledThe connection was in error and no status key was on the deckPut connection status feedbacks on the cue page
A device stopped responding after the overnight power-downIt took a new address from DHCPUse fixed addresses or DHCP reservations for every controlled device
A button changed during the show is missing at the next showNo final export after the showExport 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.

Practice it
01
What do you do first, with the opener coming?
Answer
Get ready to run the opener by hand on each machine's own controls, not start fixing Companion.
02
What do you tell the caller?
Answer
In plain words, that video is on manual until further notice.
03
Where do you look to find out why the deck went blank?
Answer
The Surfaces page to see if the deck is still listed, then whether the Elgato app has taken it, then the Log page, after the opener has gone.
04
If the Companion computer has failed, what must be true of the spare for it to help?
Answer
Same Companion version, same modules, the show imported and tested, on the network, taking 10.0.0.10 only once the failed computer is off the network.
05
What would have made swapping in the spare deck quick?
Answer
Building the show against a surface group, so the spare joins the group and every button still works.
06
What do you do after the show about this fault?
Answer
Note it with the time, export the final configuration, and find and fix the cause before the next show.
Field checklist
  • 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.
Chapter 24

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.

Chapter 25

Glossary

Stream DeckA panel of keys made by Elgato, each key a small screen that can show words, colours or pictures
CompanionBitfocus Companion, free open-source software that turns key presses into commands for show gear
SurfaceAny panel or screen Companion uses as buttons, such as a Stream Deck, a tablet or the emulator
EmulatorA Stream Deck drawn on a web page by Companion, used to build and press buttons without hardware
SatelliteCompanion Satellite, a small program that lets a deck plugged into another computer act as a surface of the main Companion over the network
Web buttonsCompanion's button pages shown in a web browser on a tablet or phone
ConnectionCompanion's link to one machine, using a module written for that make of gear
ModuleThe code inside Companion that knows how to talk to one product or protocol
PageOne full grid of buttons in Companion; a surface shows one page at a time
ActionSomething a button does when it is pressed or released, such as cut to camera 2
FeedbackA rule that changes how a key looks according to what a machine is doing
VariableA named value Companion keeps up to date, such as a clip name or time remaining, that can be shown on a key
Custom variableA variable you create yourself to hold a value for your show
TriggerA set of actions that runs on its own when something happens, such as a time of day or a change of state
StepOne of several actions a single button cycles through, one per press
PresetA ready-made button a module offers, with its actions and feedbacks already set
TransportThe play, pause, stop, next and previous controls of a playback machine
CueOne moment in a show where something changes, and the button or command that makes it happen
Run of showThe order of every segment and cue in a show, with times; also called the running order
StandbyThe warning given before a cue, so everyone is ready to go on the word
TallyThe red and green lights that show which source is on program and which is on preview
ProgramThe switcher output the audience sees; written program, not programme, because that is the label on the desk
PreviewThe switcher bus showing the next source before it is taken
VOGVoice of God; the off-stage announcement voice, often a recorded or live microphone
FOHFront of house; the technical position in the audience area, and the people who work there
A1The lead audio engineer on a show
LDThe lighting designer, or on smaller shows the lighting operator who runs the console
Playback machineA computer that plays the show's videos, often one of a pair, A and B
Media serverA computer that plays and layers video for large screens and LED walls, often to timecode
TimecodeA running clock signal that keeps machines in step and can fire cues at set times
IP addressThe number that identifies a device on a network, written as four numbers such as 10.0.0.20
SubnetThe group of addresses that can talk to each other directly; shows usually use 255.255.255.0
Static addressAn IP address set by hand so it never changes
DHCPThe service that hands out IP addresses automatically
PortA numbered door on a device that a particular program listens on
TCPA network protocol that confirms every message arrived
UDPA network protocol that sends messages without confirming them, quick and light
OSCOpen Sound Control, a message format many show programs accept over the network
Art-Net and sACNTwo ways of carrying lighting control (DMX) over a network
DMXThe control signal that tells lighting fixtures what to do
ExportSaving Companion's whole configuration, or one page, to a file
Back to oneOn a film set, resetting everything to where the take starts
Video villageThe film-set area with monitors where the director and others watch the take
Visual glossary

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.

Audio
Dynamic microphone
Dynamic microphone
Condenser microphone
Condenser microphone
Wireless handheld
Wireless handheld
Radio rack
Radio rack
Mixing console
Mixing console
Stage box / snake
Stage box / snake
Power amplifier
Power amplifier
Main loudspeaker
Main loudspeaker
Subwoofer
Subwoofer
Stage monitor wedge
Stage monitor wedge
In-ear monitors
In-ear monitors
DI box
DI box
Video
Camera
Camera
Video switcher
Video switcher
Scaler / processor
Scaler / processor
Projector
Projector
LED wall panel
LED wall panel
Confidence monitor
Confidence monitor
Lighting & control
Conventional fixture
Conventional fixture
Moving-head fixture
Moving-head fixture
Lighting console
Lighting console
Dimmer
Dimmer
Show controller
Show controller
Media server
Media server
Networking & infrastructure
Network switch
Network switch
Patch bay
Patch bay
Equipment rack
Equipment rack
Power distribution
Power distribution
Cable tester
Cable tester
A properly coiled cable
A properly coiled cable
Connectors, close up
XLR
XLR
TRS / TS ¼-inch
TRS / TS ¼-inch
SDI on BNC
SDI on BNC
HDMI
HDMI
Cat5e / Cat6 (RJ45)
Cat5e / Cat6 (RJ45)
Fiber optic
Fiber optic
DMX (5-pin XLR)
DMX (5-pin XLR)
AC power — not signal
AC power — not signal
Reboot AV
Find the source.
Find the destination.
Work along the path between them.
Every device on every show exists to serve that movement. Everything after Stream Deck & Companion for Live Events and Streaming goes deeper in one direction.
rebootav.tech