logo

Live Production Software Forums


Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

3 Pages123>
Options
Go to last post Go to first unread
Dist  
#1 Posted : Tuesday, February 25, 2020 12:33:44 AM(UTC)
Dist

Rank: Advanced Member

Groups: Registered
Joined: 12/19/2019(UTC)
Posts: 40
United Kingdom

Was thanked: 23 time(s) in 16 post(s)
Hi, I know a lot of people here use Companion for controlling vMix with a Streamdeck, so I wanted to get some feedback/suggestions for an overhaul of the module that I'm currently working on as it is somewhat out of date currently. For Companion 2 this will be backwards compatible, there should not be any breaking changes to any existing buttons you have set up to work with vMix.

Here are some quick previews of what the version of will include:

Updated Preview/Program feedback, as well as a new feedback that displays time remaining on a video input (with options to change colour when less than 30s remaining, 10s remaining, or not change if set to loop)
Tally.png (25kb) downloaded 57 time(s).

Feedbacks and actions for mixes 2 to 4 that were added in vMix 23. One thing to note though is that mix 2 to 4 doesn't support CutDirect, so if you use the program buttons to do a hot take, the preview will follow to what the program was previously, unlike the main mix where you can CutDirect to any input and it wont change what is being previewed.
Mix.png (25kb) downloaded 31 time(s).

Feedback and actions for toggling vMix functionality, such as recording, external etc...
Status.png (23kb) downloaded 32 time(s).

Feedback and actions for input/bus muting and solo, and for input routing (bus routing has no feedback, for example the API has no way to show if Bus A to G is or isn't routed to Master, or another bus)
Audio Routing.png (23kb) downloaded 18 time(s).

Feedback for titles. This means you can easily see what a lower third, or any text will be, right on your Streamdeck. This also means you can use it for countdowns!
Titles.png (22kb) downloaded 25 time(s).


As well as what I've shown here, I've also added some more commonly used actions, an interactive cheat sheet that's a full list of functions/params so if a function isn't include in Companion you can quickly an easily copy/paste it as a custom command or HTTP request.

If anyone has any suggestions, feedback, or things they would like to see in this then please let me know, as depending on how the final few bits I'm working on goes, and testing, I plan for this to be pulled to Companion in the next few weeks.
thanks 5 users thanked Dist for this useful post.
dmwkr on 2/25/2020(UTC), stevespaw on 3/1/2020(UTC), TobinT on 4/28/2020(UTC), billh2020 on 8/26/2020(UTC), chunnian on 11/9/2021(UTC)
cgarwood  
#2 Posted : Saturday, February 29, 2020 1:16:36 AM(UTC)
cgarwood

Rank: Member

Groups: Registered
Joined: 8/16/2017(UTC)
Posts: 25
Location: Lafayette IN

Was thanked: 8 time(s) in 3 post(s)
Looks great! Glad to see some additional features being added. Will definitely come in handy on my systems.
Dist  
#3 Posted : Friday, March 13, 2020 11:02:45 AM(UTC)
Dist

Rank: Advanced Member

Groups: Registered
Joined: 12/19/2019(UTC)
Posts: 40
United Kingdom

Was thanked: 23 time(s) in 16 post(s)
This revamp has now been pulled to Companion Core, so the latest version of Companion 2.0 will have this new vMix module!

Patch notes:

  • Added support for using either input ID or Title and switching at any time
  • Added Tally update on first load
  • Added Tally polling through API
  • Added Support for Audio busses C to G, and Mix 2 to 4, from vMix v23
  • Added Feedback for Overlays, Replay, Input/Bus Mute, Solo, Routing, Title text (including countdowns)
  • Added action to set/increment/decrement Title text
  • Added more presets
  • Restructured module code, allowing for easier maintaining of code and future upgrades


Some cool things specifically worth mentioning is title feedback! This can be static text, text from a data source, a countdown etc... and there's even feedback for video input time remaining (accurate to the 100ms, how fast a StreamDeck can technically update the display limits frame or ms accuracy).

Also, one of the new actions is an add/subtract/set a title, which makes things like score graphics a million times simpler to update.


Feature requests for vMix
Through working on this module I've come up with a few feature requests for vMix as there are things I would love to make features here but the vMix API lacks the functionality:

CutDirect for mix 2 to 4 would allow the preview/program buttons for those mixes to match that of Mix 1. Currently for Mix 1 you can do hot takes and the preview remains unchanged, for mix 2 to 4 this is not possible, the preview will always follow program.

Audio Bus Routing, currently the API shows what audio busses each input goes to, but it's not possible to see at all if one bus is sending to another. Suggested Solution: add `audiobusses="` param to each bus in `<audio>` other than master.

Instant Replay feedback. I'd love to be able to have feedback for things like number of events, total time of all events, or those selected, time remaining if they are being played etc... Suggested solution: inside the `<replay>` element that's currently in the API (there only exists a timecode in there atm), there needs to be `<events>` elements, and give each a `number=...`. inside these should be each event with a timestamp of the in, out, if it's being played, current position, which cameras are set to it etc... There's a wealth of information in the Instant Replay Controller that could be exposed through the API and greatly enhance control devices. I've also had a highly requested feature for a 'delete selected clip' action, but this isn't possible through a StreamDeck/Companion because the API doesn't have that function.

Transitions. It'd be cool if for the preset transitions, 1 to 4, it would default to Mix 1 (so would remain backwards compatible) but allowed for them to be used for Mix 2 to 4 with an optionally provided mix= param.
thanks 1 user thanked Dist for this useful post.
stevespaw on 3/13/2020(UTC)
JeffInHighDef  
#4 Posted : Thursday, March 25, 2021 1:30:42 AM(UTC)
JeffInHighDef

Rank: Newbie

Groups: Registered
Joined: 5/10/2020(UTC)
Posts: 2
United States
Location: Washington, DC

Where would I find this? I am using bitfocus companion and am interested in the video countdown timer that changes color on the button. Also, is there an overall vmix custom command list anywhere? I'd like to chnage tabs, and try some other stuff other stuff. Good job!
Dist  
#5 Posted : Thursday, March 25, 2021 9:48:11 AM(UTC)
Dist

Rank: Advanced Member

Groups: Registered
Joined: 12/19/2019(UTC)
Posts: 40
United Kingdom

Was thanked: 23 time(s) in 16 post(s)
You can add a countdown by adding the `Video - Video Timer` feedback to a button, which will append a countdown to the end of whatever button text you have. You can then set the feedback to change colour from default, to a second colour when under 30s remaining, and another when under 10s, or disabled colour changing if the input is set to loop.

As for custom commands, the commands available are the same ones listed if you open up the shortcut window in vMix. I've put together a full list myself which is available on my site here https://util.dist.dev/vmixapi as this can often be much more convenient to browse than vmix's own shortcuts menu.
thanks 3 users thanked Dist for this useful post.
mdiamond on 7/31/2021(UTC), nedmech on 1/19/2022(UTC), jpetrie on 5/27/2022(UTC)
Dazed  
#6 Posted : Tuesday, May 4, 2021 8:20:19 PM(UTC)
Dazed

Rank: Newbie

Groups: Registered
Joined: 10/17/2020(UTC)
Posts: 3
Germany
Location: Berlin

First of all many thanks for this last update. Needed those for sure :)

I got one resquest. Would be awesome if it is possible to add.

I would love to have an instance feedback on a button when a vMix-Call is connected or disconnected. Additionaly to have the caller previewed in the button would be nice.

Thx and keep up the nice work.

Greetz

Oliver
Dist  
#7 Posted : Wednesday, May 5, 2021 12:10:34 AM(UTC)
Dist

Rank: Advanced Member

Groups: Registered
Joined: 12/19/2019(UTC)
Posts: 40
United Kingdom

Was thanked: 23 time(s) in 16 post(s)
Thank you for your feedback!

Depending on if you're using the latest build, or the stable build, there may or may not already be an instance variable for call connection status, called `input_<INPUT_NUMBER>_call_connected`, so if your vMix instance in companion is called `vmix` the instance variable would be `$(vmix:input_5_call_connected)` if input 5 was your call, and that would update the text to show if that input is connected or not. In an upcoming update we also have a feedback for call connection status so you can change the colour based on if a call is connected or not, but this update is still some time away as it's a significant update.

As for having the caller previewed in the button, are you asking for the button to display the callers name, or do you want the button to actually display the call video? The former is something we can do, but previewing the call video (or any input) is not possible as the vMix API doesn't give any access to actually display anything graphical from an input onto the buttons.
Howlswolf  
#8 Posted : Thursday, July 1, 2021 4:36:13 AM(UTC)
Howlswolf

Rank: Advanced Member

Groups: Registered
Joined: 9/22/2020(UTC)
Posts: 44
Canada

Thanks: 1 times
Was thanked: 5 time(s) in 5 post(s)
Thanks alot for all the hard work.

Quick question: is it possible to replace the input number by the GUID in those variable ?

something like: $(vmix:input_91bee72b-34ed-4c0d-96e3-bd76481373f7_name)

I tried a bunch of different syntax and I cant get it to work...
Dist  
#9 Posted : Thursday, July 1, 2021 4:47:20 AM(UTC)
Dist

Rank: Advanced Member

Groups: Registered
Joined: 12/19/2019(UTC)
Posts: 40
United Kingdom

Was thanked: 23 time(s) in 16 post(s)
It's not currently possible to use the GUID of an input in an instance variable, but in the version that's currently in development we're adding a significant number of instance variables that can use either input name or number, but if there's a need for some people to be able to use GUID in the instance variable we'll test adding that too and as long as it's not detrimental to performance we can add it.
thanks 1 user thanked Dist for this useful post.
Howlswolf on 7/1/2021(UTC)
Howlswolf  
#10 Posted : Thursday, July 1, 2021 4:55:12 AM(UTC)
Howlswolf

Rank: Advanced Member

Groups: Registered
Joined: 9/22/2020(UTC)
Posts: 44
Canada

Thanks: 1 times
Was thanked: 5 time(s) in 5 post(s)
Wow thanks for the fast response !!!

I dont want to use GUID everywhere, but for this instance of pulling the name of an input, I would rather use GUID than Input Number, for everything else I stick with name, its easier to understand when you need to do changes.
I try to avoid Input numbers, its just too risky :)
Mollertom  
#11 Posted : Tuesday, July 13, 2021 9:21:17 AM(UTC)
Mollertom

Rank: Newbie

Groups: Registered
Joined: 5/16/2021(UTC)
Posts: 5
Canada

Hi There

Thanks so much for the work you have done with the vMix module, I use it all of the time.

If this is a good place to put feature requests for future updates I would like to add the following:

A function that could place the short name from a specific input into the title of a button.

My use-case is: each week I update a bunch of PTZ presets and rename them in vMix but it would be great if I did not have to also rename the buttons on the Streamdeck. Honestly, I am fine with it but I am trying to simplify the process as much a possible for other operators so they would only have to do it the once. Duplication by humans during a setup process does not always produce the expected results.

If for example the function allowed you to put in the GUID for that input and when the Companion button was pressed it updated the button name in Companion which of course is reflected on the Streamdeck.

Thanks again for your work on this
Tom
Dist  
#12 Posted : Wednesday, July 14, 2021 3:37:44 AM(UTC)
Dist

Rank: Advanced Member

Groups: Registered
Joined: 12/19/2019(UTC)
Posts: 40
United Kingdom

Was thanked: 23 time(s) in 16 post(s)
Originally Posted by: Mollertom Go to Quoted Post

Thanks so much for the work you have done with the vMix module, I use it all of the time.


You're welcome, I'm glad you it helps your production!


Originally Posted by: Mollertom Go to Quoted Post

A function that could place the short name from a specific input into the title of a button.

My use-case is: each week I update a bunch of PTZ presets and rename them in vMix but it would be great if I did not have to also rename the buttons on the Streamdeck. Honestly, I am fine with it but I am trying to simplify the process as much a possible for other operators so they would only have to do it the once. Duplication by humans during a setup process does not always produce the expected results.

If for example the function allowed you to put in the GUID for that input and when the Companion button was pressed it updated the button name in Companion which of course is reflected on the Streamdeck.


So from what it sounds like your needs are, the expansion of the instance variables in Companion that we are currently developing may be what you're looking for.

For example, in the current version of companion if your instance is labeled 'vmix', you could start typing the button text $(vmix: and it would show you all of the available variables, which all dynamically update.

For inputs it only currently supports input number, so for example $(vmix:input_1_name) when put as the text for a button would show what the name of input 1 is, and automatically update when it's changed. In the version currently in development it would also be possible to use the inputs name, or GUID, in place of the input number.

Using instance variables like this means the text should always reflect the current state of the inputs, and not need any user interaction or functions to update them.
thanks 1 user thanked Dist for this useful post.
MickeyMJJ on 7/21/2021(UTC)
Mollertom  
#13 Posted : Wednesday, July 14, 2021 9:20:16 AM(UTC)
Mollertom

Rank: Newbie

Groups: Registered
Joined: 5/16/2021(UTC)
Posts: 5
Canada

Thats terrific, thanks for the quick reply. I look forward to the next version and the ability to use the GUID will make it very useful.
hardayildiz  
#14 Posted : Tuesday, August 17, 2021 8:28:31 PM(UTC)
hardayildiz

Rank: Member

Groups: Registered
Joined: 1/20/2021(UTC)
Posts: 11
Location: Istanbul

Thanks: 8 times
Hello,

I'm beginner with Companion, i'm sorry in advance if the answer already exists here.

I want the companion page to be changed depending on the which input is in the output.

So if a specific input (in eg. Input number:5) is in the output, i want the companion to go to page 9.

I'm able to do this if i am sending the input to the output by using the companion. However, i need the companion page to change also when i send the input to the ouput via directly Vmix interface.

I'm using companion with Streamdeck XL to control an instance on cloud.

Do you have any suggestions?

Thank you all in advance,
Dist  
#15 Posted : Tuesday, August 17, 2021 9:12:55 PM(UTC)
Dist

Rank: Advanced Member

Groups: Registered
Joined: 12/19/2019(UTC)
Posts: 40
United Kingdom

Was thanked: 23 time(s) in 16 post(s)
If you're using one of the newer Companion builds there is a feature called 'Triggers' which would do what you need.

Triggers have a Condition, and an Action, so if you need to change pages based on vMix Program you would set a trigger with a condition that checks if the instance variable for vMix is input 5, and if it is you set the Action to change the page on Companion to 9. You would then need to set up triggers for each input that has it's own page, and whenever vMix is switched to that input (regardless of if it's changed through Companion, or someone interacting with the vMix UI) companion will change to the appropriate page.


In a future version of the vMix Companion module that's currently in development things will be even simpler, as it will eventually be possible to have all actions/feedbacks set to reference whatever is the current program output, rather than a specific input, which will allow doing the sort of thing you're doing all on a single page rather than needing a page for each input. This is still in development though and wont be released until later this year so until then using Companion Triggers is your best option.
thanks 1 user thanked Dist for this useful post.
hardayildiz on 8/17/2021(UTC)
hardayildiz  
#16 Posted : Wednesday, August 18, 2021 1:11:38 AM(UTC)
hardayildiz

Rank: Member

Groups: Registered
Joined: 1/20/2021(UTC)
Posts: 11
Location: Istanbul

Thanks: 8 times
Hi Dist,

Thank you very much for your prompt reply, i haven't notice the newer versions so far.

Currently it works as expected with version 2.2



hardayildiz  
#17 Posted : Sunday, August 22, 2021 2:51:03 AM(UTC)
hardayildiz

Rank: Member

Groups: Registered
Joined: 1/20/2021(UTC)
Posts: 11
Location: Istanbul

Thanks: 8 times
Hi Dist,

I have 2 questions;

- When is the beta version with Triggers is expected to go live with a stable version? (any apx date is fine)

- We noticed some extremely high CPU usages caused by Companion (beta version), is this something common (there is only one vmix instance added to it) ? We never saw 100% CPU usage with other apps incl. companion.

Do you have any workaround suggestion to avoid the beta versions?

thanks in advance
Dist  
#18 Posted : Sunday, August 22, 2021 3:32:56 AM(UTC)
Dist

Rank: Advanced Member

Groups: Registered
Joined: 12/19/2019(UTC)
Posts: 40
United Kingdom

Was thanked: 23 time(s) in 16 post(s)
I don't think there's an expected date yet for moving the beta version to stable, but really it's all just labelling as at this point it's recommended to use the beta builds as it uses a much newer version of NodeJS (the underlying environment that powers Companion), as well as numerous performance/stability/improvement updates that aren't in the 2.1.3 release. All of the updates to the beta builds still have to go through a testing process before they get included so despite being labelled as 'beta builds' the 2.2.x range should be solid.

I haven't seen anyone else mention having any CPU usage issues with any of the latest beta builds. Can you let us know what version you were using that was experiencing that, was it the web interface or the Companion app itself that was using high CPU, and also did you experience that high CPU usage with any specific module enabled or did it occur even if you disable all the modules that you were using?
thanks 1 user thanked Dist for this useful post.
hardayildiz on 9/20/2021(UTC)
hardayildiz  
#19 Posted : Friday, September 24, 2021 6:23:02 PM(UTC)
hardayildiz

Rank: Member

Groups: Registered
Joined: 1/20/2021(UTC)
Posts: 11
Location: Istanbul

Thanks: 8 times
Hello Dist,

It's an actually Companion question i have below;

I've done my setup for a Vmix instance on Companion.
I also have backup Vmix running and i want it to do same things while i am controlling the main one through Companion.
I added also backup Vmix as an instance to Companion.

I am looking for an easy way to make the button configurations also affect to the backup instance as well.

I know i can do this by adding actions again and again by selecting the backup instance this time. However, there are so many actions on each button, and so many buttons as well:)

Appreciate your help

By the way, sorry for late reply about the previous questions;
The version was: companion-2.2.0-3bad9b89-3508-mac-x64.dmg
It was the companion app itself with only Vmix module(s).
Dist  
#20 Posted : Friday, September 24, 2021 11:12:38 PM(UTC)
Dist

Rank: Advanced Member

Groups: Registered
Joined: 12/19/2019(UTC)
Posts: 40
United Kingdom

Was thanked: 23 time(s) in 16 post(s)
Currently there's no native feature in Companion or the vMix module to handle redundant connections to different vMix machines.

One of the ways I've managed to accomplish this in the past for a client of mine was to create a proxy server, so Companion would point to that proxy rather than directly to the vMix machine, and the proxy would forward commands and return data from any number of vMix instances. This had the benefit that in Companion you would only ever need 1 set of actions/feedbacks regardless of the number of redundant vMix servers. So a redundant solution is possible, but it's something that'd would a developer to work on if you want something specific for your needs created soon.

One of the things I eventually plan to do is make a free and open-source proxy that works exactly as I have mentioned, additionally including status displays and logging of each vMix server, but that's not an immediate priority for me so likely wont be ready until near the end of this year/early next year.
thanks 1 user thanked Dist for this useful post.
hardayildiz on 9/25/2021(UTC)
Users browsing this topic
3 Pages123>
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.