Advanced Scene Switcher

Advanced Scene Switcher 1.28.1

LexXxusTV

New Member
Muting and unmuting would not work.
Fading of audio channels didn't work.
Transitioning from one scene to another did not work.
Setting up the fader durations were not actual fader setting being adjusted but added to the audio file's play time.
Preview window in OBS would not update to new scene.
Scenes became unresponsive.
I'm sure there is more, I'm really tired so excuse me if I have missed some.
I'll let you know if I remember any more but for now...
1.20.4 is the gem for me I guess.

Cheers.
 

Warmuptill

Active Member
I have attached my settings file for you.
Cheers.
Thank you!

I can't spot any obvious issues with the configuration that would explain certain macros not running.
The setup you shared seems to be rather simple and is only switching between three scenes.
Unfortunately, using dummy scenes on my end I am not able to reproduce any issue of the scenes not being switched.

Here is a list of possible steps one might take to track down potential issues:

I spent an additional hour on it and find that the "With duration of" ______ seconds, sets the file for how long it will play?????????????
It should set the time of how long the transition is but it's not. In fade for a duration of should be the duration of the fade, not the duration of the file playing.
It get the main screen display in OBS doesn't show whats being put out and just stays stuck on the previous screen when it should show the new transition screen.
Sorry, I don't fully understand what you mean by file.
Are you using some special transition type that is misbehaving? (I guess your "Global Transition" is some non-default transition type)

If you are wondering why this setting in OBS does not change ...

Transition1.PNG


... then that is because the plugin is configured to only adjust transition overrides, but not the global transition duration due to this setting on the General tab:

Transition2.PNG


Muting and unmuting would not work.
Fading of audio channels didn't work.
Transitioning from one scene to another did not work.
Setting up the fader durations were not actual fader setting being adjusted but added to the audio file's play time.
Preview window in OBS would not update to new scene.
Scenes became unresponsive.
I'm sure there is more, I'm really tired so excuse me if I have missed some.
I'll let you know if I remember any more but for now...
1.20.4 is the gem for me I guess.
If you somehow manage to isolate the issue and track it down to a certain condition, action, or macro not working as intended please do let me know! At the moment I am at a bit of a loss in which area to investigate further unfortunately.

Sorry that I could not really be of much help :(
 

LexXxusTV

New Member
Thank you!

I can't spot any obvious issues with the configuration that would explain certain macros not running.
The setup you shared seems to be rather simple and is only switching between three scenes.
Unfortunately, using dummy scenes on my end I am not able to reproduce any issue of the scenes not being switched.

Here is a list of possible steps one might take to track down potential issues:


Sorry, I don't fully understand what you mean by file.
Are you using some special transition type that is misbehaving? (I guess your "Global Transition" is some non-default transition type)

If you are wondering why this setting in OBS does not change ...

View attachment 91658

... then that is because the plugin is configured to only adjust transition overrides, but not the global transition duration due to this setting on the General tab:

View attachment 91659


If you somehow manage to isolate the issue and track it down to a certain condition, action, or macro not working as intended please do let me know! At the moment I am at a bit of a loss in which area to investigate further unfortunately.

Sorry that I could not really be of much help :(
Our Discord call solved everything. Not sure how but you fixed it!
Thanks buddy!
 

khaver

Member
@Warmuptill I think that will work. Thanks.
I had to modify this a bit to get it to work. My "person at the podium" test uses "has changed" "For at least" 0.5 seconds. If there is someone at the podium and moving, the test status is true, and another macro, polling if the status is true, switches to a closeup camera after 8 seconds. If the person steps away, the test status is not true, and another macro polling "If not", switches immediately to a wide view of the podium area. If the person steps back to behind the podium, after 8 seconds, the scene switches to the closeup camera again. The reason for the 8 second delay switching to the closeup is so the scenes don't change from close to wide and back to close in rapid succession if the person steps away from the podium for just a brief moment.

Thanks again, @Warmuptill for your help, and a great plugin.
 

AaronD

Active Member
I had to modify this a bit to get it to work. My "person at the podium" test uses "has changed" "For at least" 0.5 seconds. If there is someone at the podium and moving, the test status is true, and another macro, polling if the status is true, switches to a closeup camera after 8 seconds. If the person steps away, the test status is not true, and another macro polling "If not", switches immediately to a wide view of the podium area. If the person steps back to behind the podium, after 8 seconds, the scene switches to the closeup camera again. The reason for the 8 second delay switching to the closeup is so the scenes don't change from close to wide and back to close in rapid succession if the person steps away from the podium for just a brief moment.

Thanks again, @Warmuptill for your help, and a great plugin.
That makes me want to see a recording of the result. And screenshots of the macros that do it. Descriptions can only go so far.
 

CodeYan

Member
Suggestion: Prefix the input fields with what the field corresponds to.
For example:
x _____ y ______
width _______ height _______
as it is right now, it is very confusing (especially since you don't really multiply the x and y coordinate, so there should be no "x" between the top two fields), and the only way to know is to use the select area.

1676520413480.png
 

khaver

Member
That makes me want to see a recording of the result. And screenshots of the macros that do it. Descriptions can only go so far.
Here are screen shots and a capture while testing the macro. Instead of a camera, I used a recording from an old service. The "Person at the podium" test is part of a complete automation of our church service. OBS also receives MIDI cues from our presentation software to change to certain scenes throughout the service and to start recording the sermon. Though we only record the sermon, the whole service is displayed on a TV in the foyer using an OBS program full screen projector. We have 2 camera, the one at the podium used for the wide and close shot, and the other a wide view of the whole stage shown during the worship songs.

Here is the Podium Match macro:
PodiumMatchMacro.jpg


Here's the area of the frame that is tested:
The source is a duplicate of the podium camera with a color correction filter added so I can make the stage behind the podium black.
PodiumMatchArea.jpg


Here are the macros that check the status of the Podium Match macro and change scenes accordingly:
AnnounceCloseMacro.jpg

AnnounceWideMacro.jpg


Here's a link to a condensed recording of a test I made: https://drive.google.com/file/d/1hKivlSqoGEYND6ko5c40yCIWoBWQiU9S/view?usp=sharing
 

AaronD

Active Member
Here are screen shots and a capture while testing the macro. Instead of a camera, I used a recording from an old service. The "Person at the podium" test is part of a complete automation of our church service. OBS also receives MIDI cues from our presentation software to change to certain scenes throughout the service and to start recording the sermon. Though we only record the sermon, the whole service is displayed on a TV in the foyer using an OBS program full screen projector. We have 2 camera, the one at the podium used for the wide and close shot, and the other a wide view of the whole stage shown during the worship songs.

Here is the Podium Match macro:
View attachment 91715

Here's the area of the frame that is tested:
The source is a duplicate of the podium camera with a color correction filter added so I can make the stage behind the podium black.
View attachment 91716

Here are the macros that check the status of the Podium Match macro and change scenes accordingly:
View attachment 91717
View attachment 91718

Here's a link to a condensed recording of a test I made: https://drive.google.com/file/d/1hKivlSqoGEYND6ko5c40yCIWoBWQiU9S/view?usp=sharing
Nice! Thank you!

I would imagine though, that the Announce Close macro would still false-trigger, just from someone walking past the podium. 8 seconds after they walk by, it would switch scenes. Does it not actually do that?
I would change that Wait action into a timer on the condition itself, in the same macro.

I can't come up with one at the moment, but I'll be thinking for a long time about how to incorporate this idea into our rig. We have PTZ cameras that I control manually with an app that I wrote, which means that I can write another one that can be called from the Run action in a macro to automate them, but I think it's distracting to move them "live", and we don't have duplicated cameras. Nor are they high enough resolution to keep them zoomed out and crop instead. (one scene has the full frame, and another is cropped, maybe several cropped differently)
I'm sure I'll come up with something... :-)
 

khaver

Member
...
I would change that Wait action into a timer on the condition itself, in the same macro.
...
I'll look into that. I never thought about someone just walking by the podium.

The duplicate of the camera source is made by @norihiro's asynchronous source duplication filter. It allows you to clone a source with the ability to add separate filters to it.
 
Last edited:

khaver

Member
On the Announce Close macro I add "For at least" 4 seconds, and changed the Wait action to 4 seconds. This "filters out" someone walking by and still waits 8 seconds total before the change to the close shot.

Thanks @AaronD for the suggestion.
 

AaronD

Active Member
On the Announce Close macro I add "For at least" 4 seconds, and changed the Wait action to 4 seconds. This "filters out" someone walking by and still waits 8 seconds total before the change to the close shot.

Thanks @AaronD for the suggestion.
I was thinking to put all 8 seconds in the timer, and not have the Wait at all, but yours works too. Require constant movement for 4 seconds, then guaranteed transition 4 seconds after that, even if they've left by then.
 

khaver

Member
I was thinking to put all 8 seconds in the timer, and not have the Wait at all, but yours works too. Require constant movement for 4 seconds, then guaranteed transition 4 seconds after that, even if they've left by then.
The full 8 seconds makes much better sense. Thanks. If there's movement at the podium for at least 8 seconds, it's more likely someone is there to speak longer. Although with Murphy's Law, there will be a time when someone will speak for 8.5 seconds and walk away, and the scene will switch to the closeup view of an empty podium. Automation will never be a substitute for an actual person switching scenes.
 

jegadk

Member
Hi.

Have a scene fade to black in 2000 ms
Have an fade out sound filter on my main sound that fade out in 1200ms
Setup a macro which enable filter fade out

Problem is that when change scene to fade to black it first fade to black, then enables the filter.

I want it to start fade out audio immediately

Any help.
 

Attachments

  • advanced scene switcher 01.png
    advanced scene switcher 01.png
    20.2 KB · Views: 17

Warmuptill

Active Member
Hi.

Have a scene fade to black in 2000 ms
Have an fade out sound filter on my main sound that fade out in 1200ms
Setup a macro which enable filter fade out

Problem is that when change scene to fade to black it first fade to black, then enables the filter.

I want it to start fade out audio immediately

Any help.
I think all you need to do is check this box :)

advanced scene switcher 01.png


Suggestion: Prefix the input fields with what the field corresponds to.
For example:
x _____ y ______
width _______ height _______
as it is right now, it is very confusing (especially since you don't really multiply the x and y coordinate, so there should be no "x" between the top two fields), and the only way to know is to use the select area.

View attachment 91677
I aggree - Thanks for the suggestion!

I have implemented the option to choose between a few different pattern matching algorithms offered by OpenCV in case you are interested.

Video.PNG


A build is available here:
 

AaronD

Active Member
Hi.

Have a scene fade to black in 2000 ms
Have an fade out sound filter on my main sound that fade out in 1200ms
Setup a macro which enable filter fade out

Problem is that when change scene to fade to black it first fade to black, then enables the filter.

I want it to start fade out audio immediately

Any help.
Like Warmuptill says, you may only need to check that box.

But another way to do it might be to trigger a macro *instead of* that scene switch, and then the macro does both the scene switch and the response to it. I use that concept a lot!
 

CodeYan

Member
I also noticed, selecting multiple macros, then clicking the delete button only removes the first one selected, not all of them. They aren't in a group.

I have implemented the option to choose between a few different pattern matching algorithms offered by OpenCV in case you are interested.
ooooh, thanks, will try soon.
 

Warmuptill

Active Member
I also noticed, selecting multiple macros, then clicking the delete button only removes the first one selected, not all of them. They aren't in a group.
Thanks for the hint!
That is something I have fixed in a separate branch.

In case you need a build with this functionality it is available here (but the video condition changes are not included):
 
Top