bitfocus / companion-module-jvc-ptz

MIT License
3 stars 3 forks source link

Sync tally with switcher #3

Closed JeffreyDavidsz closed 4 months ago

JeffreyDavidsz commented 4 years ago

https://github.com/bitfocus/companion-module-jvc-ptz/issues/2

validlogin commented 4 years ago

https://github.com/bitfocus/companion-module-panasonic-ptz/blob/master/index.js implements this, can be seen here: https://github.com/bitfocus/companion-module-panasonic-ptz/blob/master/index.js

Specifically lines 199-228, as well as 297-394..

I have a linux machine setup for compiling but I haven't done that in ages, it would take me a while to test this out...

JeffreyDavidsz commented 4 years ago

I can implement this. Do you have a switcher to check the values of variables? Just load the instance of the switcher and after its connected check the values of the variables in the instance config (if they have it). Let me know what the return value is. If the switcher does not provide tally in a variable let me know which switcher you use

validlogin commented 4 years ago

I'm not at the location with the switcher but the switcher is just a BlackMagic 1 M/E ATEM Switcher. If it's still needed I can get back to you with that information tomorrow :)

validlogin commented 4 years ago

Hi @JeffreyDavidsz,

I was able to check the dynamic variables from the ATEM switcher instance, these seem to be of value:

$(atem:pgm1_input) | Label of input active on program bus (M/E 1) | Cam1
and
$(atem:pvw1_input) | Label of input active on preview bus (M/E 1) | Cam1

Looks like the ATEM returns what camera is on preview and live by using the short code of the switcher.

There is also similar variables that use the long name.

However, I also found this bit in the ATEM switcher module here * Handle tally packets */ private processReceivedCommand(command: Commands.AbstractCommand) { if (command instanceof Commands.TallyBySourceCommand) { // The feedback holds a reference to the old object, so we need // to update it in place Object.assign(this.atemTally, command.properties) this.checkFeedbacks(FeedbackId.ProgramTally) this.checkFeedbacks(FeedbackId.PreviewTally) as seen here: https://github.com/bitfocus/companion-module-bmd-atem/blob/master/src/index.ts , starting at line 154. So maybe there is a specific tally variable? I didn't seem to find it in the dynamic variables listed in the instance settings.

JeffreyDavidsz commented 4 years ago

So I've added the tally to program, please test with the variable option. When it works I might be able to add preview tally also. You'll find it in the latest build

validlogin commented 4 years ago

Thank you so much for the quick work!! This is amazing progress :)

I was able to test this new feature out and the camera tally was able to switch to PGM as soon as it went to program, that seemed to work great!! I did notice something that might be able to be fixed early on - the program (live) status can be overwritten by a preview signal, but instead program should always override the preview status.

This is mainly a concern when the same camera is both on preview and program. It looks like manually setting the camera to preview will override the program status of the camera - in other words, if the camera is previewed after it goes live, the status of the camera will switch to Preview (despite being live)

I also noticed that if the tally light was set to preview and program at the same time, cutting/fading also wouldn’t make it go to a program status. Instead, it would remain on preview. Otherwise, the function works as intended:)

Additionally, if the camera is on program but then switched so that it is no longer on program, the tally function isn’t updated and the tally will remain in a program state.

Perhaps there needs to be a constant way to check the dynamic variable, so that it can be checked and updated regularly? Or maybe a method to ensure a program status always overrides the preview status? Just some possible fixes/suggestions:) I haven’t looked at the added code directly yet to see what other possibilities there are, but I will do that right now:) thank you so much!!

JeffreyDavidsz commented 4 years ago

This was a quick implementation/copy of the panasonic-ptz module. When using feedback I can check for PGM and ignore pvw. But when you manually set to pvw, then one would assume there's a reason for it?

validlogin commented 4 years ago

I guess that would work.

The main concern is that if there’s another feedback function that checks for preview, it’ll override the program output, which is why I tested it by manually switching the camera to tally to simulate that function (since the preview feedback wasn’t available) :)

If it works for the Panasonic module, I don’t see why it wouldn’t work here:)

validlogin commented 4 years ago

Looks like the PGM function works, is it hard to add the PVW option? I should be able to test the functions tomorrow:)

validlogin commented 4 years ago

Any update on this? We ran into some snags with connecting all the cameras to the network but now that is all finished:) We were wondering if the implementation/copy of the panasonic-ptz module could be finished, specifically adding the option to switch to the preview tally? Thank you so much for the quick work!! This is amazing progress :)

pberntson commented 3 years ago

is is possible to read the tally status from the camera and use that to trigger the button feedback?

validlogin commented 3 years ago

I feel that having a companion module that controls this is quite limited... a better solution would be to integrate JVC support into a solution such as Tally Arbiter. We’ve been using it for a few weeks now (with m5sticks) and they’ve been great. Might be worth asking if JVC cameras could be supported. They already support a few tally protocols and work with vMix, Atem, and several other switchers.

Here is the Tally Arbiter page. https://github.com/josephdadams/TallyArbiter

JeffreyDavidsz commented 2 years ago

@josephdadams can JVC be supported in Tally Arbiter?

josephdadams commented 2 years ago

You could trigger the tally the same way that Companion does by watching the variables, but you'd also have the same problem Companion has - that if you put it in pvw after it's in pgm, it would switch. The only real way to support it would be to develop a listener client for TA that has the logic in it to only do one or the other (or none). But @validlogin is welcome to submit a feature request for this on the TA repo

validlogin commented 2 years ago

@JeffreyDavidsz @josephdadams

We’ve moved on to different cameras (and for the JVCs, we usually use M5 atoms for tally) so we don’t have an immediate need for tally control on JVC cameras anymore. Although I’m sure others would find the feature useful. :)

Thanks for all that you two do!

dnmeid commented 4 months ago

This issue is stale for two years. Closing it now.