Question for Bitfocus Companion, Streamdeck, & GP setup

Hello GP friends,

I’ve read a couple of threads where GP users have said they were successful connecting Companion freeware (for use with Streamdeck) and Gig Performer. I cannot get this connection to work. Below are my snapshots of the OSC options in GP (indicating which IP and port used) and also the Widget edit screen (in this case, just a playbutton to play an audio file from the Streamdeck).

There’s only 5 basic commands/functions that Companion has:

  • osc: Send message without arguments
  • osc: Send integer
  • osc: Send float
  • osc: Send string
  • osc: Send message with multiple arguments

And since GP shows a path after you name your OSC/Script, in my case: /playbutton/SetValue, I used the Send integer command. I’ve tried adding /osc/ to the front of the path (as described in a Companion example) and tried without the osc in the path. I’ve also tried with “0” as the value and “1” as the value.

Is there anyone here successfully using Companion/Streamdeck/Gig Performer together who can help? :grinning: Thanking everyone in advance!


  • I would use 127.0.0.1 on both the GP and Streamdeck side
  • UDP port numbers seem to be fine
  • If you use the address /playbutton/SetValue in GP don’t change it as /osc/playbutton/SetValue in the Streamdeck config
  • GP widgets have float values, so I would use float as an OSC type
1 Like

SOLVED! Thank you so much, David-san, for the quick reply that solved my issue. Here’s a quick screenshot to help others who are thinking of using their Steamdeck to trigger Gig Performer.

David-san, if I may indulge myself by asking another question: the above setup was to trigger an audio file play for some sound effects. How can I setup a button on Steamdeck to toggle or advance between Song Parts? Thank you again, this forum is AMAZING!

2 Likes

I think I found part of the answer to my follow-up question above. I used the OSC command: /Song/SwitchToPart, and it does work to advance to the next song part. However, it only advances once. Is there a command that will keep rotating between the parts, i.e. Part 1, Part 2, Part 3, Part 1, Part 2, Part 3, etc.?

Did you try with an integer as value?

1 Like

Okay, with the OSC messages found here: OSC messages is was able to set up some basic Streamdeck buttons: Last Song, Next Song, Last Song Part, Next Song Part, and a couple of sound effects buttons. :slight_smile: l’m starting to believe the Possibilities are Endless :grinning:

By the way, I have a Photoshop psd file to create custom Steamdeck buttons, I can post if allowed.

2 Likes

Why not.

Here 'ya go. It’s just a zipped PSD file. Thanks for all the help, everyone!

StreamDeck Buttons.zip (145.0 KB)

2 Likes

Thanks for sharing!
Sorry I could not be helpful, sometimes out of the studio… thats not bad also.
Happy you got it going using OSC, lots to explore!

2 Likes

Not meaning to muddy the water but it just occurred this might be exactly the right place to mention a very cool addition I found for anyone else using a Streamdeck with Gig Performer…

It’s a very cool Streamdeck plugin that speaks MIDI. I am totally going to play with this.

(No personal affiliation, but I did pay what he asked)

https://trevligaspel.se/streamdeck/midi/

No worries, everyone has been so helpful here.

Cheers!

1 Like

Thanks kevinf, I say muddy away! The more new information the better. I’ll have to check it out. If I can replace the Companion software that would be fantastic! Thanks again for sharing the info and link

You’ll lose everything Companion can do via OSC, but I’m pretty sure there’s plenty of ways to handle OSC via Streamdeck. API Ninja comes to mind for instance. Just make sure you disable the 100msec default delay between button multisteps in the Streamdeck prefs. That one sent me nutty.

Gig Performer has a “keystroke” callback that lets you define character sequences to which GP can respond. This works in the Gig Script

There are some examples (see below) from the templates and if you configure your Streamdeck to send out those key sequences, you can control a lot of GP functionality

// Use the 'cap' key sequence to close all plugin windows
On Keystroke matching "cap" Description "Close All Plugins"
    CloseAllPluginWindows(true)
End

// Go to next rackspace
On Keystroke matching "n" Description "Next"
    Next()
End

//Switch to panel view
On Keystroke matching "v1" Description "Panel View"
   If InTunerView()
      then ToggleTunerVisible()
   End
   SwitchToPanelView()
End

//Switch to wiring view
On Keystroke matching "v2" Description "Wiring View"
   If InTunerView()
      then ToggleTunerVisible()
   End
   SwitchToWiringView()
End

//Switch to setlist view
On Keystroke matching "v3" Description "Setlist View"
   If InTunerView()
      then ToggleTunerVisible()
   End
   SwitchToSetlistView()
End

//Tuner
On Keystroke matching "vt" Description "Tuner"
   If Not InTunerView()
      then ToggleTunerVisible()
   End
End

1 Like

??? ummm not true

  • you can have multiple “profiles” running
  • applications can auto change what profile to use

I used this a couple of times to send MIDI

@keyman I meant everything Companion can do, immediately, in my own case including tight integration with various software and specific devices I use. I suspect adding a specialized web server to emulate a 100x8x4 field of virtual programmable Streamdeck buttons
compatible with a tablet and addressable in 32 button pages is not in GP’s roadmap. Unless I’m wrong of course! Companion has developed about 100 device/software specific modules.

I just have to note, for others (you probably know) that Joseph Adams, the author of MIDI-relay has evidently been a very active contributor to Companion for years, he seems to know everything about everything there, he seems to have Git build privileges and he’s also just a really helpful, responsive and friendly person in general. He was the first one to respond to me in their Slack a couple of years ago by offering me his MIDI Relay - which I’m guessing he did with you as well.

2 Likes

@dhj thanks so much for this field application note (as we used to so officially call them when I wrote for TIE/communications and NAVTEL so far way back in the day) about commanding Gig Performer from Streamdeck buttons! That’s an awesome solve.