Advanced Scene Switcher

Advanced Scene Switcher 1.28.1

KiraRedpaw

New Member
The problem of the some of the macros immediately firing after starting to stream is caused by the fact that the scene switcher does not properly reset the duration modifiers you can add to condition when stopping the plugin.

So if the plugin is running, then stopped, and finally started up again the timers of the duration modifiers will compare the time between "stopped" and "finally started" instead of restarting from zero. (Hope that was worded somewhat coherent)

I have adjusted this behaviour in this build:
(Note you need to be logged into GitHub to be able to download it)


A few notes regarding your setup:
  • I think you can remove the "Stop" macro entirely and simply add the action to stop the stream to the "End" macro.
  • Your "Start" and "End" macro conditions could be true at the same time.
    I assume that you will not be playing either the "Starting music" or "Ending music" continuously, so you can run into the situation of both macros being executed at the same time.
  • The audio conditions checking if the volume of a particular source is below a certain threshold can and will be true even if the the audio source is not part of the currently active scene.
    So for example if you "Gaming" scene does not contain an instance of the "Ending music" source the "End" macro might still be executed.
    So you could add an additional condition checking if the audio source is currently showing on a particular scene.
Without really knowing your setup I would suggest to rework your "End" and "Start" macro to something similar to this:

View attachment 89400
View attachment 89401

You can of course adjust the "is showing" source condition with something that fits better to your setup. (E.g. checking if the current scene is / is not "Scene XYZ")

Hope that helps!
Let me know if you have any questions! :)
I will give this a try during my next stream and report back, if it does not work I will try your Advanced scene switcher download and try that. Thank you kindly.
 

Warmuptill

Active Member
Hi!
I want to ask about making a condition with "Date". Is there any way that I can make a condition only a minute of time?
Ex. I want to trigger a macro only when minute reach xx:30 by ignore an hour.

Thanks in advance
I implemented the functionality to match date patterns a few weeks ago, but it was not yet released.
i6TWAv2.png

The pattern supports regular expressions, so each "." in the above screenshot can represent any number.

A build with this change can be found here:
(Note you have to be logged into GitHub to be able to download it - let me know if that should be an issue)

And one more problem

Some macro was met every condition (Date and Scene) but there is no any action happened. Like it was skipped all the action I was set. Is anything I can solve this?

View attachment 89558

As you have enabled the "Repeat every ... on date match" the date will be shifted 30 minutes to the future once it matched.
Unfortunately the part showing the next match is cut off in the screenshot.
I assume that is what was confusing you.
 

pOpOmOmO

New Member
I implemented the functionality to match date patterns a few weeks ago, but it was not yet released.
i6TWAv2.png

The pattern supports regular expressions, so each "." in the above screenshot can represent any number.

A build with this change can be found here:
(Note you have to be logged into GitHub to be able to download it - let me know if that should be an issue)
I try Pattern function already. Work like I wanted. Great Work!!

As you have enabled the "Repeat every ... on date match" the date will be shifted 30 minutes to the future once it matched.
Unfortunately the part showing the next match is cut off in the screenshot.
I assume that is what was confusing you.
I try to figure it out this and seem like to find some solution.
There is nothing more than that in condition just only a check box "On repeat update...." and I tick it to make it repeat

And for the action just switch scene and adjust volume. no change anything, no pause.

I try to diagnose this problem and it seem like a Date condition will trigger an action once and skip once then it will back to do an action again in third times
Is this bug? or I set something wrong.
Here is what I can tell you that what is happening to me now. I try to remove something and test will get back to you soon
 
I was able to trigger a crash using the Video Matching conditional (match a source or part of one to an image file)

Steps I used to reproduce...

OBS v29 beta 2
AdvSS v1.19.2

While AdvSS is actively running and pinging for met conditions, create a new Macro.

Add the If Video condition, select a source, do NOT select a patter to match to
Enable "Perform check only in area"
Click the "Select Area" button
With the Select Area window up, i am able to trigger the crash via...
...scrolling within the window
...creating the detection area selection

Polling rate for the conditional check doesnt seem to matter, as ive gotten this crash to trigger at 50ms as well as 250ms.


UPDATE: Most consistent aspect seems to be that I dont have an image selected to match to. Almost like its bugging out due to not having something to match against, vs just gracefully returning false.

Warmuptill submitted a new resource:

Automatic Scene Switching - Switches to specified scenes depending on which window is in focus



Read more about this resource...
 
Last edited:

CharlieThunkman

New Member
Can I make a suggestion -- macro folders. I'm running 20 macros (with plans for more) which really says if the conditions of 1 result in true, play the next macro in the sequence. Putting them into virtual folders would allow for these macros to be organized and speed up the process of not having to scroll through the menu every time I go to add a new macro. Attached picture shows how I would group the current macros I'm using and a rough path of how they run (arrow points towards what macro(s) they interact with afterwards). I do recognize that the way current macros are programmed don't easily allow for folder-like manipulation but it would be a great for insane people like me.
Enable/Disable Macro => Red Macro ___ Counter => Green Scene order 1-6 but without changing the literal scene ; Scene Switch => Blue Scene 1-3 without changing the actual scene ; Yellow & Purple boxes runs exactly one of their functions based on conditions set
 

JennaGem

New Member
Hi!
I downloaded Advanced Scene Switcher and it was working well. I'm not sure what happened, but after a livestream to YouTube, a glitch occurred. Now, when I open up OBS, there is an Adv SS docking switch that pops up that says the switcher is active but I'm unable to click on it or press "stop." Once OBS opens, the switch disappears.

When I open the plugin for Adv SS in OBS, it says it's inactive. When I try to run a new macro, it doesn't switch scenes. I've uninstalled & reinstalled the plug in, and also uninstalled and reinstalled OBS on my macbook pro but the switch is still there upon the loading of OBS and thus the plugin isn't working, even when I add a new macro.

I've searched the forums for info. but can't land on anything that specifically covers this - if anyone has any direction, I'd be so grateful.
 

onlyhalfhuman

New Member
Which step do you have problems with and what do you want me to elaborate on further? (note that this plugin will only work for 64 bit versions of OBS on windows since that is the version the person i made the plugin for uses)
i cant seem to get my scenes to go back to the first one? am i missing something? it goes through the 4 scenes but wont go back to the first,....
 

AaronD

Active Member
I can't get 4 simple cameras to just loop. Built the macro sequence, no problem. It runs thru then stops when it's done.
A single macro is not meant to loop. It's supposed to be a simple "if this, then do that" sort of thing.

What you could do though, is set up N similar macros for N different scenes:
  • If Scene 1 (only on change)
    • Wait
    • Switch to Scene 2
  • If Scene 2 (only on change)
    • Wait
    • Switch to Scene 3
  • ...
  • If Scene N (only on change)
    • Wait
    • Switch to Scene 1
This also allows you to add more conditions to each one, either instead of or in addition to the Wait action, so that the loop timing depends on more than just a timer.
And once you have that, you could duplicate a macro so that the same trigger scene with different additional logic can do something different.
Etc.
 

Warmuptill

Active Member
I can't get 4 simple cameras to just loop. Built the macro sequence, no problem. It runs thru then stops when it's done.
yeah im dealing with the same thing, just commented,....
Mabe this example can help?
Let me know if you have questions!

Hi!
I downloaded Advanced Scene Switcher and it was working well. I'm not sure what happened, but after a livestream to YouTube, a glitch occurred. Now, when I open up OBS, there is an Adv SS docking switch that pops up that says the switcher is active but I'm unable to click on it or press "stop." Once OBS opens, the switch disappears.

When I open the plugin for Adv SS in OBS, it says it's inactive. When I try to run a new macro, it doesn't switch scenes. I've uninstalled & reinstalled the plug in, and also uninstalled and reinstalled OBS on my macbook pro but the switch is still there upon the loading of OBS and thus the plugin isn't working, even when I add a new macro.

I've searched the forums for info. but can't land on anything that specifically covers this - if anyone has any direction, I'd be so grateful.
Can you please share the settings you are using and describe the scenario in more detail when you would expect a scene switch to happen?
The dock being visible at startup is not necessarily an issue.

Can I make a suggestion -- macro folders. I'm running 20 macros (with plans for more) which really says if the conditions of 1 result in true, play the next macro in the sequence. Putting them into virtual folders would allow for these macros to be organized and speed up the process of not having to scroll through the menu every time I go to add a new macro. Attached picture shows how I would group the current macros I'm using and a rough path of how they run (arrow points towards what macro(s) they interact with afterwards). I do recognize that the way current macros are programmed don't easily allow for folder-like manipulation but it would be a great for insane people like me. View attachment 89652
Thanks for the suggestion!
That is something I want to implement - I am just not sure when I will get around to it.

I was able to trigger a crash using the Video Matching conditional (match a source or part of one to an image file)

Steps I used to reproduce...

OBS v29 beta 2
AdvSS v1.19.2

While AdvSS is actively running and pinging for met conditions, create a new Macro.

Add the If Video condition, select a source, do NOT select a patter to match to
Enable "Perform check only in area"
Click the "Select Area" button
With the Select Area window up, i am able to trigger the crash via...
...scrolling within the window
...creating the detection area selection

Polling rate for the conditional check doesnt seem to matter, as ive gotten this crash to trigger at 50ms as well as 250ms.


UPDATE: Most consistent aspect seems to be that I dont have an image selected to match to. Almost like its bugging out due to not having something to match against, vs just gracefully returning false.
Thanks for reporting the problem!
I will try to look into it.
 

Warmuptill

Active Member
I was able to trigger a crash using the Video Matching conditional (match a source or part of one to an image file)

Steps I used to reproduce...

OBS v29 beta 2
AdvSS v1.19.2

While AdvSS is actively running and pinging for met conditions, create a new Macro.

Add the If Video condition, select a source, do NOT select a patter to match to
Enable "Perform check only in area"
Click the "Select Area" button
With the Select Area window up, i am able to trigger the crash via...
...scrolling within the window
...creating the detection area selection

Polling rate for the conditional check doesnt seem to matter, as ive gotten this crash to trigger at 50ms as well as 250ms.


UPDATE: Most consistent aspect seems to be that I dont have an image selected to match to. Almost like its bugging out due to not having something to match against, vs just gracefully returning false.
A build containing a fix for the crashes will be available here in a few minutes:
You will have to be logged into GitHub to be able to download it - let me know if that should be a problem for you.
I would appreciate if you could give this a try and report back if the issue is really solved on your end as well.
 

AaronD

Active Member
@Warmuptill How much of a pain would it be to support both versions of OBS? v27 and before, AND v28 and after?

It appears that NVIDIA has abandoned their older hardware - stopped releasing drivers for them - including mine, and OBS v28 removed support for the older drivers:

It still works just fine...so long as I don't try to stream or record. So I didn't notice that problem lurking in the background as I was testing the new features that I requested.

Thanks!
 

Warmuptill

Active Member
@Warmuptill How much of a pain would it be to support both versions of OBS? v27 and before, AND v28 and after?

It appears that NVIDIA has abandoned their older hardware - stopped releasing drivers for them - including mine, and OBS v28 removed support for the older drivers:

It still works just fine...so long as I don't try to stream or record. So I didn't notice that problem lurking in the background as I was testing the new features that I requested.

Thanks!
The plugin can be built for older OBS versions.
I will try to set up a branch for OBS 27 build tomorrow or the day after.
 

AaronD

Active Member
The plugin can be built for older OBS versions.
I will try to set up a branch for OBS 27 build tomorrow or the day after.
Woohoo! Thank you!

I was afraid that some of the hooks that you rely on now, wouldn't exist in v27, so you'd have to work around that just to support older hardware. But if it works, that'd be awesome!
 

thepoison606

New Member
Hey Till and ASS community,

it would be great to have the option to give a weighting to the random selection. For example i'd like to set that in 70% of the cases Macro 1 gets used, in 20% of the cases Macro 2 and in 10% of the cases Macro 3.

Any chance to get that implemented? Or any other workaround for this sue case? :)

Other than that: the plugin is insanely good. Such a great tool, thanks a ton for that!!

All the best
Daniel
 

ottawafro

Member
Hey Till and ASS community,

it would be great to have the option to give a weighting to the random selection. For example i'd like to set that in 70% of the cases Macro 1 gets used, in 20% of the cases Macro 2 and in 10% of the cases Macro 3.

Any chance to get that implemented? Or any other workaround for this sue case? :)

Other than that: the plugin is insanely good. Such a great tool, thanks a ton for that!!

All the best
Daniel
Thinking off the top of my head.

Workaround might be to add 10 macros contained in the random selection ; 7 of which perform the function of Macro1 ( duplicate 6 times current macro ) ; 2 macros doing the function of Macro2 ( duplicate 1 time current macro ) and have 1 of Macro 3 ...
 

Warmuptill

Active Member
Hey Till and ASS community,

it would be great to have the option to give a weighting to the random selection. For example i'd like to set that in 70% of the cases Macro 1 gets used, in 20% of the cases Macro 2 and in 10% of the cases Macro 3.

Any chance to get that implemented? Or any other workaround for this sue case? :)

Other than that: the plugin is insanely good. Such a great tool, thanks a ton for that!!

All the best
Daniel
Thanks for the suggestion - I added it to the todo list.
The workaround suggested by @ottawafro should work in the meantime.

Woohoo! Thank you!

I was afraid that some of the hooks that you rely on now, wouldn't exist in v27, so you'd have to work around that just to support older hardware. But if it works, that'd be awesome!
OBS 27 build is done, but I did not test it:
Let me know if you run into any issues.
 

AaronD

Active Member
OBS 27 build is done, but I did not test it:
Let me know if you run into any issues.
I got OBS 28 to work! Thanks for the effort anyway.

What I was seeing before was actually a problem with FFMPEG, not OBS, which was solved by updating the NVIDIA graphics driver from 390 to 470. That then killed the laptop screen, which required a BIOS setting to fix.

A little bit more tweaking also got OBS 28 to work. Details here:
 
Top