Using a Stream Deck as a Production Controller, Revisited

One of my first posts on this blog detailed how I wrote software in Node.js to interface with an Elgato Stream Deck to control some of our production equipment, interfacing with the video switchers, router, Ross Dashboard, etc. It’s time to revisit that.

We’ve been using my controller now every week in our control rooms and tech booths for about a year. My team loves it. It integrates into our centralized production workflow, where each deck sends commands to a central Dashboard panel, which runs the command, and then sends out updates to all the connected stream decks.

However, I haven’t had much time to make it a better product for other people. I wrote support for the Stream Deck Mini when that was released, but that’s about it. I haven’t had time or cause to do much else with it. So, for that reason, I wanted to share with you a piece of software that is under constant, active development: Bitfocus Companion.

Screen Shot 2019-02-15 at 10.43.46 AM


Companion is written in Node.js and packaged in Electron just like my product, so it can run on Mac, Windows, or Linux. But it can do so much more than my controller! One of the best features is that it has a web-based management interface, so you can add actions to buttons easily and on-the-fly. It supports a ton of production equipment and chances are good that your gear is already on the supported list, or, perhaps someone can create a module for it.

I was asked to join the development team recently for Companion, so I’ve started making some modules for Companion to integrate with software and gear that we have. I’ve created a module for Interactive Technologies’ CueServer, which we have in a couple of our venues here.

Screen Shot 2019-02-15 at 10.54.05 AM
Here are some actions you can perform on a CueServer now with the module I created for Companion.
Screen Shot 2019-02-15 at 10.53.53 AM
An example of a key down action for triggering a CueServer macro in Companion.

If you use ProTally, my on-screen tally box notification software, and want to integrate with Companion, I made a module for that too! Make sure to go download the latest ProTally release which supports this feature! With Companion, in addition to Preview and Program windows, you can also send a Beacon, which flashes at a custom rate and color. Check this video out for a demo:

Both of these modules are available in the bleeding edge builds of Companion and will be included in the next stable release soon.

So, if you’re looking for a great production controller that integrates with the Stream Deck, go check out Companion! It’s only going to get better from here!



  1. I’m loving this for controlling a synthesiser for some parameters that are only
    Controllable via sysex (to save me menu diving while I’m playing)

    It’s working fantastically

    But now I want to expand on this!

    I’m using Midi-Relay and Companion with a Stream Deck to send commands to trigger commands normally controlled with button presses,

    but I also want fader control (of sysex parameters)

    I’m looking for a way to remap some knobs and faders on a generic midi controller (Launch Control XL) to control sysex parameters on the same synth.

    I see that Midi-Relay supports outputting a very comprehensive range of midi messages!
    The only instructions I found involved doing this via command line.

    Is there other software besides Companion that I can connect with my midi controllers to send these messages to midi-relay?

    Or do you think I’m better off buying Bomes midi translator?


    1. midi-relay could do translation of midi note on to midi sysex, for example, but it would be quite a manual setup and probably more work than it is worth for a free product. I haven’t used Bome but it sounds like it might be the better tool if the midi needs to live within the same machine/local network. I designed midi-relay more for remote work when the midi recipient is on a different computer than the controller. I am glad the software is valuable to you though!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s