bitfocus / companion-module-studiocoast-vmix

Studiocoast vMix module for Bitfocus Companion
MIT License
32 stars 10 forks source link

Feedback: vmix: Video - Video Timer #208

Closed Smudi97 closed 1 year ago

Smudi97 commented 1 year ago

Not 100% sure if it's a bug but the behavior of the Feedback function changed from 2.4.2 to 3.0.0. More under "Expected behaviour"

To Reproduce Steps to reproduce the behaviour:

  1. Create a new Button
  2. set the Feedback to vmix: Video - Video Timer
  3. select a video input and start the video in vmix
  4. You'll notice that the color of the text on the button changes, but the text itself does not display the time remaining.

Expected behaviour in 2.4.2, when I used the Feedback: vmix: Video - Video Timer on a button it would actually display the time remaining on the video playing as the text on the button. This was extremely useful. I often use this in conjunction with a dynamic Input where, if I play a video, I simultaneously set it as the dynamic input and just have one button on my streamdeck always displaying the time remaining on the current Dynamic Input. I can't get this to work in 3.0.0 at the moment.

thedist commented 1 year ago

The Video Timer feedback no longer adding text to the button is by design, partly due to feedback in v3 not having the same access to button text as we did previously in v2.4 but also because there are better ways to do this in v3.

Companion v3 has what they call 'Expression Functions', which allows you to manipulate text on a button. This means you can use the $(vmix:input_X_remaining) variable, where X is the inputs name, number, or GUID to display the time remaining on the button, but then you can also use the msToTimestamp Expression Function (which you can read more about in the side panel on the left of the Companion Web UI) to turn that time remaining in to whatever format you find most suitable for your needs, be it mm:ss, hh:mm:ss, ss.ms, etc...

Smudi97 commented 1 year ago

Would that also work with a dynamic input? I sometimes work with a high number of different Videos and like to use Dynamic Inputs there, having one button to display remaining of whatever is on the dynamic input would be very useful.

thedist commented 1 year ago

I'll have to check when I'm next at my dev PC, it may be possible to do nested variables so that it's always getting the time remaining of the dynamic input, but if that's not possible then I'll add extra variables for the various dynamic inputs.

Smudi97 commented 1 year ago

Do you potentially have an update to this? As far as I can tell, the functionality is currently not achievable but I might well be missing something

thedist commented 1 year ago

The latest update includes all of the instance variables that inputs usually have to dynamic inputs.

For example: $(vmix:dynamic_input_1) - What's currently assigned to Dynamic Input 1 $(vmix:dynamic_input_1_name) - Name of the input currently on Dynamic Input 1 $(vmix:dynamic_input_1_remaining) - MS remaining on the input currently set as Dynamic Input 1 etc...